diff --git a/.circleci/config.yml b/.circleci/config.yml index bac4aacfc953..0bea79326b8c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -60,7 +60,6 @@ jobs: name: Lint command: | meteor npm run lint - meteor npm run stylelint - run: name: Unit Test diff --git a/.docker-mongo/entrypoint.sh b/.docker-mongo/entrypoint.sh index 89a347637ac1..f86035acba54 100644 --- a/.docker-mongo/entrypoint.sh +++ b/.docker-mongo/entrypoint.sh @@ -1,5 +1,35 @@ #!/bin/bash +echo """ + +  +  +  +    +       +         +            +            +            +          +          +           +           +           +        +              +            +         +         +     +        +   + + + + +""" + echo """ ██████╗ ██████╗ ██████╗██╗ ██╗███████╗████████╗ ██████╗██╗ ██╗ █████╗ ████████╗ ██████╗ ██████╗ ███████╗██╗ ██╗██╗███████╗██╗ ██╗ ██╔══██╗██╔═══██╗██╔════╝██║ ██╔╝██╔════╝╚══██╔══╝██╔════╝██║ ██║██╔══██╗╚══██╔══╝ ██╔══██╗██╔══██╗██╔════╝██║ ██║██║██╔════╝██║ ██║ diff --git a/.docker/Dockerfile.rhel b/.docker/Dockerfile.rhel index 0add6570487e..7abbbd4f9847 100644 --- a/.docker/Dockerfile.rhel +++ b/.docker/Dockerfile.rhel @@ -1,6 +1,6 @@ FROM registry.access.redhat.com/rhscl/nodejs-8-rhel7 -ENV RC_VERSION 0.68.5 +ENV RC_VERSION 0.70.4 MAINTAINER buildmaster@rocket.chat diff --git a/.eslintignore b/.eslintignore index e02dd5e6756b..f8e66c28c01d 100644 --- a/.eslintignore +++ b/.eslintignore @@ -6,13 +6,13 @@ packages/rocketchat-emoji-emojione/generateEmojiIndex.js packages/rocketchat-favico/favico.js packages/rocketchat-katex/client/katex/katex.min.js packages/rocketchat-livechat/.app/node_modules +packages/rocketchat-livechat/.app/.meteor packages/rocketchat-livechat/assets/rocketchat-livechat.min.js packages/rocketchat-livechat/assets/rocket-livechat.js packages/rocketchat-theme/client/minicolors/jquery.minicolors.js packages/rocketchat-ui/client/lib/customEventPolyfill.js packages/rocketchat-ui/client/lib/Modernizr.js packages/rocketchat-ui/client/lib/recorderjs/recorder.js -packages/rocketchat-ui/client/lib/textarea-autogrow.js packages/rocketchat-videobridge/client/public/external_api.js packages/rocketchat-theme/client/vendor/ packages/tap-i18n/lib/tap_i18next/tap_i18next-1.7.3.js @@ -21,3 +21,4 @@ public/livechat/ public/mp3-realtime-worker.js public/lame.min.js !.scripts +!packages/rocketchat-livechat/.app diff --git a/.eslintrc b/.eslintrc index 32ba25020b8a..7a4aeb6d2fd6 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,93 +1,5 @@ { - "parserOptions": { - "sourceType": "module", - "ecmaVersion": 2017, - "ecmaFeatures": { - "experimentalObjectRestSpread" : true - } - }, - "env": { - "browser": true, - "commonjs": true, - "es6": true, - "node": true, - "jquery": true - }, - "rules": { - "no-multi-spaces": 2, - "no-eval": 2, - "no-extend-native": 2, - "no-multi-str": 2, - "no-use-before-define": 2, - "no-const-assign": 2, - "no-cond-assign": 2, - "no-constant-condition": 2, - "no-control-regex": 2, - "no-debugger": 2, - "no-delete-var": 2, - "no-dupe-keys": 2, - "no-dupe-args": 2, - "no-dupe-class-members": 2, - "no-duplicate-case": 2, - "no-empty": 2, - "no-empty-character-class": 2, - "no-ex-assign": 2, - "no-extra-boolean-cast": 2, - "no-extra-semi": 2, - "no-fallthrough": 2, - "no-func-assign": 2, - "no-inner-declarations": [2, "functions"], - "no-invalid-regexp": 2, - "no-irregular-whitespace": 2, - "no-mixed-spaces-and-tabs": 2, - "no-sparse-arrays": 2, - "no-negated-in-lhs": 2, - "no-obj-calls": 2, - "no-octal": 2, - "no-redeclare": 2, - "no-regex-spaces": 2, - "no-undef": 2, - "no-unreachable": 2, - "no-unused-vars": [2, { - "vars": "all", - "args": "after-used" - }], - "no-void": 2, - "no-var": 2, - "one-var": [2, "never"], - "no-lonely-if": 2, - "no-trailing-spaces": 2, - "complexity": [1, 31], - "space-in-parens": [2, "never"], - "space-before-function-paren": [2, "never"], - "space-before-blocks": [2, "always"], - "indent": [2, "tab", {"SwitchCase": 1}], - "eol-last": [2, "always"], - "comma-dangle": [2, "never"], - "keyword-spacing": 2, - "block-spacing": 2, - "brace-style": [2, "1tbs", { "allowSingleLine": true }], - "computed-property-spacing": 2, - "comma-spacing": 2, - "comma-style": 2, - "guard-for-in": 2, - "wrap-iife": 2, - "block-scoped-var": 2, - "curly": [2, "all"], - "eqeqeq": [2, "allow-null"], - "new-cap": [2, { - "capIsNewExceptions": ["Match.Optional", "Match.Maybe", "Match.OneOf", "Match.Where", "Match.ObjectIncluding", "Push.Configure", "SHA256"] - }], - "use-isnan": 2, - "valid-typeof": 2, - "linebreak-style": [2, "unix"], - "prefer-template": 2, - "template-curly-spacing": [2, "always"], - "quotes": [2, "single"], - "semi": [2, "always"], - "prefer-const": 2, - "object-shorthand": 2 - }, + "extends": ["@rocket.chat/eslint-config"], "globals": { "__meteor_runtime_config__" : false, "AccountBox" : false, @@ -118,6 +30,7 @@ "LivechatDepartment" : false, "LivechatDepartmentAgents" : false, "livechatManagerRoutes" : true, + "LivechatMonitoring" : false, "LivechatPageVisited" : false, "LivechatTrigger" : false, "Logger" : false, diff --git a/.github/bot-config.yml b/.github/bot-config.yml index 2d181373504f..8df57f4e966d 100644 --- a/.github/bot-config.yml +++ b/.github/bot-config.yml @@ -5,6 +5,7 @@ whitelist: - TwizzyDizzy - theorenck - JSzaszvari + - reetp labels: - "Contributions: welcome" - "Contributions: only core team" diff --git a/.github/history.json b/.github/history.json index 3e518da8ec91..5113ce28f65f 100644 --- a/.github/history.json +++ b/.github/history.json @@ -17819,6 +17819,2080 @@ ] } ] + }, + "0.69.0-rc.0": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "11852", + "title": "Release 0.68.5", + "userLogin": "sampaiodiego", + "contributors": [ + "renatobecker", + "sampaiodiego" + ] + }, + { + "pr": "11613", + "title": "[FIX] `Jump to message` search result action", + "userLogin": "tassoevan", + "contributors": [ + "tassoevan" + ] + }, + { + "pr": "11597", + "title": "[FIX] HipChat importer wasn’t compatible with latest exports", + "userLogin": "rodrigok", + "contributors": [ + "rodrigok", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "10700", + "title": "[FIX] Delete removed user's subscriptions", + "userLogin": "Hudell", + "milestone": "0.69.0", + "contributors": [ + "Hudell", + "MarcosSpessatto" + ] + }, + { + "pr": "11837", + "title": "[NEW] Beta support for Big Blue Button video conferencing system", + "userLogin": "rodrigok", + "milestone": "0.69.0", + "contributors": [ + "ggazzo", + "rodrigok" + ] + }, + { + "pr": "11011", + "title": "[FIX] LiveChat switch department not working", + "userLogin": "renatobecker", + "milestone": "Short-term", + "contributors": [ + "renatobecker", + "ggazzo", + "web-flow", + "sampaiodiego" + ] + }, + { + "pr": "10269", + "title": "[NEW] Slackbridge: send attachment notifications", + "userLogin": "Hudell", + "milestone": "0.69.0", + "contributors": [ + "kable-wilmoth", + "Hudell", + "web-flow" + ] + }, + { + "pr": "11796", + "title": "[FIX] Some assets were pointing to nonexistent path", + "userLogin": "rodrigok", + "milestone": "0.69.0", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11733", + "title": "[IMPROVE] Start storing Livechat department within rooms", + "userLogin": "renatobecker", + "milestone": "0.69.0", + "contributors": [ + "renatobecker", + "web-flow" + ] + }, + { + "pr": "11638", + "title": "[NEW] Personal access tokens for users to create API tokens", + "userLogin": "MarcosSpessatto", + "milestone": "0.69.0", + "contributors": [ + "MarcosSpessatto", + "sampaiodiego", + "ggazzo" + ] + }, + { + "pr": "11522", + "title": "[FIX] Revoked `view-d-room` permission logics", + "userLogin": "Hudell", + "milestone": "0.69.0", + "contributors": [ + "Hudell", + "web-flow" + ] + }, + { + "pr": "11821", + "title": "[FIX] REST `im.members` endpoint not working without sort parameter", + "userLogin": "MarcosSpessatto", + "milestone": "0.69.0", + "contributors": [ + "MarcosSpessatto" + ] + }, + { + "pr": "11697", + "title": "[NEW] REST endpoint to manage server assets", + "userLogin": "MarcosSpessatto", + "milestone": "0.69.0", + "contributors": [ + "MarcosSpessatto" + ] + }, + { + "pr": "10217", + "title": "[NEW] Setting to enable/disable slack bridge reactions", + "userLogin": "Hudell", + "milestone": "0.69.0", + "contributors": [ + "kable-wilmoth", + "Hudell", + "web-flow" + ] + }, + { + "pr": "11691", + "title": "Fixed deutsch message pruning translations", + "userLogin": "TheReal1604", + "milestone": "0.69.0", + "contributors": [ + "TheReal1604", + "engelgabriel", + "web-flow" + ] + }, + { + "pr": "11794", + "title": "Fixed the Finnish translation and removed some profanities", + "userLogin": "jukper", + "milestone": "0.69.0", + "contributors": [ + "jukper" + ] + }, + { + "pr": "11834", + "title": "[FIX] Livechat rooms starting with two unread message counter", + "userLogin": "renatobecker", + "milestone": "0.69.0", + "contributors": [ + "renatobecker" + ] + }, + { + "pr": "11551", + "title": "[FIX] Results pagination on /directory REST endpoint", + "userLogin": "MarcosSpessatto", + "milestone": "0.69.0", + "contributors": [ + "MarcosSpessatto", + "sampaiodiego" + ] + }, + { + "pr": "11838", + "title": "LingoHub based on develop", + "userLogin": "engelgabriel", + "milestone": "0.69.0", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11778", + "title": "[FIX] re-adding margin to menu icon on header", + "userLogin": "rssilva", + "milestone": "0.69.0", + "contributors": [ + "rssilva" + ] + }, + { + "pr": "11797", + "title": "[FIX] minor fixes in hungarian i18n ", + "userLogin": "Atisom", + "contributors": [ + "Atisom", + "web-flow" + ] + }, + { + "pr": "11836", + "title": "[FIX] permissions name no break", + "userLogin": "ggazzo", + "contributors": [ + "ggazzo", + "web-flow" + ] + }, + { + "pr": "11657", + "title": "[FIX] Searching by `undefined` via REST when using `query` param", + "userLogin": "MarcosSpessatto", + "milestone": "0.69.0", + "contributors": [ + "MarcosSpessatto" + ] + }, + { + "pr": "11781", + "title": "[FIX] Fix permalink of message when running system with subdir", + "userLogin": "ura14h", + "milestone": "0.69.0", + "contributors": [ + "ura14h", + "web-flow", + "tassoevan", + "ggazzo" + ] + }, + { + "pr": "11543", + "title": "[FIX] Fix links in `onTableItemClick` of the directroy page", + "userLogin": "ura14h", + "milestone": "0.69.0", + "contributors": [ + "ura14h", + "web-flow", + "ggazzo" + ] + }, + { + "pr": "11830", + "title": "[FIX] Livechat open room method", + "userLogin": "renatobecker", + "milestone": "0.69.0", + "contributors": [ + "renatobecker" + ] + }, + { + "pr": "11473", + "title": "[NEW] Rich message text and image buttons", + "userLogin": "ubarsaiyan", + "milestone": "0.69.0", + "contributors": [ + "ubarsaiyan", + "ggazzo", + "rodrigok", + "web-flow" + ] + }, + { + "pr": "11802", + "title": "[FIX] App's i18nAlert is only being displayed as \"i18nAlert\"", + "userLogin": "graywolf336", + "milestone": "0.69.0", + "contributors": [ + "graywolf336" + ] + }, + { + "pr": "11627", + "title": "[FIX] Removed hardcoded values.", + "userLogin": "Hudell", + "milestone": "0.69.0", + "contributors": [ + "Hudell", + "web-flow", + "sampaiodiego" + ] + }, + { + "pr": "9749", + "title": "[NEW] Setting to block unauthenticated access to avatars", + "userLogin": "Hudell", + "milestone": "Short-term", + "contributors": [ + "Hudell", + "web-flow", + "sampaiodiego" + ] + }, + { + "pr": "11643", + "title": "[FIX] SAML is flooding logfile", + "userLogin": "Hudell", + "milestone": "0.69.0", + "contributors": [ + "Hudell", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "11809", + "title": " [FIX] directory search table not clickable lines", + "userLogin": "tassoevan", + "milestone": "0.69.0", + "contributors": [ + "tassoevan", + "ggazzo", + "web-flow" + ] + }, + { + "pr": "11814", + "title": "Regression: Fix livechat code issues after new lint rules", + "userLogin": "sampaiodiego", + "milestone": "0.69.0", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "11816", + "title": "Do not remove package-lock.json of livechat package", + "userLogin": "rodrigok", + "milestone": "0.69.0", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11815", + "title": "Run eslint and unit tests on pre-push hook", + "userLogin": "rodrigok", + "milestone": "0.69.0", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11474", + "title": "[FIX] REST endpoints to update user not respecting some settings", + "userLogin": "MarcosSpessatto", + "milestone": "0.69.0", + "contributors": [ + "MarcosSpessatto", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "11779", + "title": "[NEW] Setting to set a JS/CSS CDN", + "userLogin": "geekgonecrazy", + "milestone": "0.69.0", + "contributors": [ + "geekgonecrazy", + "web-flow" + ] + }, + { + "pr": "11804", + "title": "Additional eslint rules ", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "11807", + "title": "[FIX] Apply Cordova fix in lazy-loaded images sources", + "userLogin": "tassoevan", + "milestone": "0.69.0", + "contributors": [ + "tassoevan", + "ggazzo", + "web-flow" + ] + }, + { + "pr": "11800", + "title": "Add new eslint rules (automatically fixed)", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "8602", + "title": "[NEW] Make font of unread items bolder for better contrast", + "userLogin": "ausminternet", + "milestone": "0.69.0", + "contributors": [ + "ausminternet", + "ggazzo", + "web-flow" + ] + }, + { + "pr": "11775", + "title": "[FIX] Cannot set property 'input' of undefined", + "userLogin": "ggazzo", + "milestone": "0.69.0", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "11644", + "title": "[IMPROVE] Escape parameters before send them to email template", + "userLogin": "tassoevan", + "milestone": "0.69.0", + "contributors": [ + "tassoevan", + "web-flow" + ] + }, + { + "pr": "11784", + "title": "[IMPROVE] Warn about push settings that need server restart", + "userLogin": "tassoevan", + "milestone": "0.69.0", + "contributors": [ + "tassoevan" + ] + }, + { + "pr": "11687", + "title": "[FIX] Missing twitter:image and og:image tags", + "userLogin": "engelgabriel", + "milestone": "0.69.0", + "contributors": [ + "engelgabriel", + "web-flow" + ] + }, + { + "pr": "11674", + "title": "[IMPROVE] Role tag UI", + "userLogin": "timkinnane", + "milestone": "0.69.0", + "contributors": [ + "timkinnane" + ] + }, + { + "pr": "11703", + "title": "[FIX] Return room ID for groups where user joined", + "userLogin": "timkinnane", + "contributors": [ + "timkinnane" + ] + }, + { + "pr": "11670", + "title": "[FIX] \"User is typing\" not working in new Livechat session", + "userLogin": "renatobecker", + "milestone": "0.69.0", + "contributors": [ + "renatobecker" + ] + }, + { + "pr": "11682", + "title": "[FIX] wrong create date of channels and users on directory view", + "userLogin": "gsperezb", + "milestone": "0.69.0", + "contributors": [ + "gsperezb", + "ggazzo", + "web-flow" + ] + }, + { + "pr": "11730", + "title": "[FIX] Escape meta data before inject in head tag", + "userLogin": "tassoevan", + "milestone": "0.69.0", + "contributors": [ + "tassoevan" + ] + }, + { + "pr": "11761", + "title": "[FIX] minor fixes in i18n", + "userLogin": "Atisom", + "milestone": "0.69.0", + "contributors": [ + "Atisom", + "web-flow" + ] + }, + { + "pr": "11467", + "title": "[FIX] Code tag duplicating characters", + "userLogin": "vynmera", + "milestone": "0.69.0", + "contributors": [ + "vynmera", + "web-flow" + ] + }, + { + "pr": "11139", + "title": "[FIX] Custom sound uploader not working in Firefox and IE", + "userLogin": "vynmera", + "milestone": "0.69.0", + "contributors": [ + "vynmera" + ] + }, + { + "pr": "11728", + "title": "[FIX] Fixing timeAgo function on directory", + "userLogin": "rssilva", + "milestone": "0.69.0", + "contributors": [ + "rssilva" + ] + }, + { + "pr": "11578", + "title": "[FIX] Render Attachment Pretext When Markdown Specified", + "userLogin": "glstewart17", + "milestone": "0.69.0", + "contributors": [ + "glstewart17" + ] + }, + { + "pr": "11686", + "title": "[IMPROVE] Messagebox fix performance", + "userLogin": "ggazzo", + "milestone": "0.69.0", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "11740", + "title": "[FIX] Message attachments was not respecting sort and lost spacing", + "userLogin": "ggazzo", + "milestone": "0.69.0", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "11662", + "title": "[IMPROVE] Add template tag #{userdn} to filter LDAP group member format", + "userLogin": "crazy-max", + "milestone": "0.69.0", + "contributors": [ + "crazy-max" + ] + }, + { + "pr": "11719", + "title": "[FIX] Default server language not being applied", + "userLogin": "sampaiodiego", + "milestone": "0.68.4", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "11709", + "title": "[FIX] Closed connections being storing on db", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "11708", + "title": "[FIX] Broken logo on setup wizard", + "userLogin": "sampaiodiego", + "milestone": "0.68.4", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "11646", + "title": "[FIX] Regression in prune by user, and update lastMessage", + "userLogin": "vynmera", + "milestone": "0.68.4", + "contributors": [ + "vynmera", + "ggazzo" + ] + }, + { + "pr": "11626", + "title": "[FIX] Login logo now centered on small screens", + "userLogin": "wreiske", + "milestone": "0.69.0", + "contributors": [ + "wreiske", + "web-flow" + ] + }, + { + "pr": "11667", + "title": "[FIX] Push notifications stuck after db failure", + "userLogin": "sampaiodiego", + "milestone": "0.69.0", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "11684", + "title": "[IMPROVE] Add nyan rocket on Rocket.Chat preview Docker image", + "userLogin": "ggazzo", + "contributors": [ + "ggazzo", + "web-flow" + ] + }, + { + "pr": "11645", + "title": "[IMPROVE] Reducing `saveUser` code complexity", + "userLogin": "Hudell", + "contributors": [ + "Hudell" + ] + }, + { + "pr": "11642", + "title": "[FIX] SAML login not working when user has multiple emails", + "userLogin": "Hudell", + "milestone": "0.68.3", + "contributors": [ + "Hudell", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "11635", + "title": "[FIX] Prune translation on room info panel", + "userLogin": "sampaiodiego", + "milestone": "0.68.3", + "contributors": [ + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "11631", + "title": "[FIX] Prune translations in German", + "userLogin": "rndmh3ro", + "milestone": "0.68.3", + "contributors": [ + "rndmh3ro", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "11625", + "title": "[FIX] User info APIs not returning customFields correctly", + "userLogin": "MarcosSpessatto", + "milestone": "0.68.3", + "contributors": [ + "MarcosSpessatto", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "11639", + "title": "[FIX] Missing chat history for users without permission `preview-c-room`", + "userLogin": "Hudell", + "milestone": "0.68.3", + "contributors": [ + "Hudell" + ] + }, + { + "pr": "11544", + "title": "[FIX] Incorrect migration version in v130.js", + "userLogin": "c0dzilla", + "contributors": [ + "c0dzilla", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "11597", + "title": "[FIX] HipChat importer wasn’t compatible with latest exports", + "userLogin": "rodrigok", + "contributors": [ + "rodrigok", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "11613", + "title": "[FIX] `Jump to message` search result action", + "userLogin": "tassoevan", + "contributors": [ + "tassoevan" + ] + }, + { + "pr": "11606", + "title": "Merge master into develop & Set version to 0.69.0-develop", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "11590", + "title": "Regression: Fix purge message's translations", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego" + ] + } + ] + }, + "0.69.0-rc.1": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "11835", + "title": "App engine merge", + "userLogin": "rodrigok", + "milestone": "0.69.0", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11864", + "title": "[NEW] Internal marketplace for apps", + "userLogin": "rodrigok", + "milestone": "0.69.0", + "contributors": [ + "gdelavald", + "rssilva", + "rodrigok", + "ggazzo" + ] + }, + { + "pr": "11878", + "title": "[FIX] Translations were not unique per app allowing conflicts among apps", + "userLogin": "rodrigok", + "milestone": "0.69.0", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11861", + "title": "Regression: role tag background, unread item font and message box autogrow", + "userLogin": "ggazzo", + "contributors": [ + "ggazzo", + "sampaiodiego" + ] + } + ] + }, + "0.69.0": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "11852", + "title": "Release 0.68.5", + "userLogin": "sampaiodiego", + "contributors": [ + "renatobecker", + "sampaiodiego" + ] + }, + { + "pr": "11613", + "title": "[FIX] `Jump to message` search result action", + "userLogin": "tassoevan", + "contributors": [ + "tassoevan" + ] + }, + { + "pr": "11597", + "title": "[FIX] HipChat importer wasn’t compatible with latest exports", + "userLogin": "rodrigok", + "contributors": [ + "rodrigok", + "sampaiodiego", + "web-flow" + ] + } + ] + }, + "0.69.1": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "11892", + "title": "[FIX] Hipchat import was failing when importing messages from a non existent user", + "userLogin": "rodrigok", + "milestone": "0.69.1", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11910", + "title": "[FIX] Hipchat importer was not importing users without emails and uploaded files", + "userLogin": "rodrigok", + "milestone": "0.69.1", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11893", + "title": " [FIX] App updates were not being shown correctly", + "userLogin": "rodrigok", + "milestone": "0.69.1", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11853", + "title": "[FIX] Duplicated message buttons", + "userLogin": "ubarsaiyan", + "milestone": "0.69.1", + "contributors": [ + "ubarsaiyan", + "web-flow" + ] + } + ] + }, + "0.69.2": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "11812", + "title": "[NEW] Include room name in stream for bots", + "userLogin": "timkinnane", + "milestone": "0.69.2", + "contributors": [ + "timkinnane", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "12022", + "title": "[FIX] Reset password link error if already logged in", + "userLogin": "rodrigok", + "milestone": "0.69.2", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11992", + "title": "[FIX] Apps: setting with 'code' type only saving last line", + "userLogin": "cardoso", + "milestone": "0.69.2", + "contributors": [ + "cardoso" + ] + }, + { + "pr": "11955", + "title": "[FIX] Update user information not possible by admin if disabled to users", + "userLogin": "kaiiiiiiiii", + "milestone": "0.69.2", + "contributors": [ + "kaiiiiiiiii" + ] + }, + { + "pr": "12025", + "title": "[FIX] Hidden admin sidenav on embedded layout", + "userLogin": "ggazzo", + "milestone": "0.69.2", + "contributors": [ + "ggazzo" + ] + } + ] + }, + "0.70.0-rc.0": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "11184", + "title": "[NEW] Allow multiple subcommands in MIGRATION_VERSION env variable", + "userLogin": "arch119", + "contributors": [ + null, + "arch119", + "web-flow" + ] + }, + { + "pr": "10094", + "title": "[NEW] Support for end to end encryption", + "userLogin": "mrinaldhar", + "milestone": "Short-term", + "contributors": [ + "mrinaldhar" + ] + }, + { + "pr": "11936", + "title": "LingoHub based on develop", + "userLogin": "engelgabriel", + "contributors": [ + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "12083", + "title": "[IMPROVE] Cache livechat get agent trigger call", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "12097", + "title": "[FIX] Livechat agent joining on pick from guest pool", + "userLogin": "mrsimpson", + "contributors": [ + "mrsimpson" + ] + }, + { + "pr": "12107", + "title": "[IMPROVE] BigBlueButton joinViaHtml5 and video icon on sidebar", + "userLogin": "ggazzo", + "milestone": "0.70.0", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "11238", + "title": "[NEW] Livechat Analytics and Reports", + "userLogin": "pkgodara", + "milestone": "0.70.0", + "contributors": [ + "pkgodara", + "web-flow" + ] + }, + { + "pr": "12115", + "title": "Better organize package.json", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "12114", + "title": "Fix using wrong variable", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "11993", + "title": "[NEW] Apps: Add handlers for message updates", + "userLogin": "cardoso", + "contributors": [ + "cardoso", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "11780", + "title": "[FIX] Apps: Add missing reactions and actions properties to app message object", + "userLogin": "geekgonecrazy", + "contributors": [ + "geekgonecrazy", + "web-flow" + ] + }, + { + "pr": "10588", + "title": "[NEW] Livechat notifications on new incoming inquiries for guest-pool", + "userLogin": "mrsimpson", + "contributors": [ + "mrsimpson" + ] + }, + { + "pr": "11742", + "title": "[FIX] Broken slack compatible webhook", + "userLogin": "geekgonecrazy", + "milestone": "0.70.0", + "contributors": [ + "geekgonecrazy", + "web-flow", + "sampaiodiego" + ] + }, + { + "pr": "11965", + "title": "[NEW] Customizable default directory view", + "userLogin": "ohmonster", + "milestone": "0.70.0", + "contributors": [ + "ohmonster", + "web-flow", + "sampaiodiego" + ] + }, + { + "pr": "12047", + "title": "[NEW] Blockstack as decentralized auth provider", + "userLogin": "rodrigok", + "milestone": "0.70.0", + "contributors": [ + "geekgonecrazy", + "web-flow", + "timkinnane" + ] + }, + { + "pr": "11900", + "title": "[NEW] Livechat REST endpoints", + "userLogin": "renatobecker", + "milestone": "0.70.0", + "contributors": [ + "renatobecker", + "web-flow", + "sampaiodiego" + ] + }, + { + "pr": "12043", + "title": "[FIX] Changing Mentions.userMentionRegex pattern to include
tag", + "userLogin": "rssilva", + "milestone": "0.70.0", + "contributors": [ + "rssilva", + "ggazzo", + "web-flow" + ] + }, + { + "pr": "11902", + "title": "[FIX] Double output of message actions", + "userLogin": "timkinnane", + "milestone": "0.70.0", + "contributors": [ + "timkinnane", + "web-flow", + "ggazzo" + ] + }, + { + "pr": "11785", + "title": "[FIX] Login error message not obvious if user not activated", + "userLogin": "crazy-max", + "milestone": "0.70.0", + "contributors": [ + "crazy-max", + "web-flow" + ] + }, + { + "pr": "11909", + "title": "[NEW] REST endpoints to get moderators from groups and channels", + "userLogin": "MarcosSpessatto", + "milestone": "0.70.0", + "contributors": [ + "MarcosSpessatto" + ] + }, + { + "pr": "11169", + "title": "[NEW] User preference for 24- or 12-hour clock", + "userLogin": "vynmera", + "milestone": "0.70.0", + "contributors": [ + "vynmera", + "ggazzo" + ] + }, + { + "pr": "11919", + "title": "[FIX] Adding scroll bar to read receipts modal", + "userLogin": "rssilva", + "milestone": "0.70.0", + "contributors": [ + "rssilva", + "ggazzo", + "web-flow" + ] + }, + { + "pr": "11946", + "title": "[FIX] Fixing translation on 'yesterday' word when calling timeAgo function", + "userLogin": "rssilva", + "milestone": "0.70.0", + "contributors": [ + "rssilva" + ] + }, + { + "pr": "12018", + "title": "[FIX] Fixing spacement between tags and words on some labels", + "userLogin": "rssilva", + "milestone": "0.70.0", + "contributors": [ + "rssilva" + ] + }, + { + "pr": "12031", + "title": "[FIX] video message recording, issue #11651", + "userLogin": "flaviogrossi", + "milestone": "0.70.0", + "contributors": [ + "flaviogrossi" + ] + }, + { + "pr": "11999", + "title": "[FIX] Prevent form submission in Files List search", + "userLogin": "tassoevan", + "milestone": "0.70.0", + "contributors": [ + "tassoevan" + ] + }, + { + "pr": "11905", + "title": "[NEW] REST endpoint to set groups' announcement", + "userLogin": "MarcosSpessatto", + "milestone": "0.70.0", + "contributors": [ + "MarcosSpessatto" + ] + }, + { + "pr": "12079", + "title": "[FIX] Re-add the eye-off icon", + "userLogin": "MIKI785", + "contributors": [ + "MIKI785" + ] + }, + { + "pr": "12068", + "title": "[NEW] Livechat trigger option to run only once", + "userLogin": "edzluhan", + "contributors": [ + "edzluhan" + ] + }, + { + "pr": "12044", + "title": "[IMPROVE] Use eslint-config package", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "11953", + "title": "[FIX] Internal error when cross-origin with CORS is disabled", + "userLogin": "MarcosSpessatto", + "milestone": "0.70.0", + "contributors": [ + "MarcosSpessatto" + ] + }, + { + "pr": "11967", + "title": "[FIX] Message reaction in GraphQL API", + "userLogin": "MarcosSpessatto", + "milestone": "0.70.0", + "contributors": [ + "MarcosSpessatto" + ] + }, + { + "pr": "11863", + "title": "[FIX] Direct messages leaking into logs", + "userLogin": "Hudell", + "milestone": "0.70.0", + "contributors": [ + "Hudell" + ] + }, + { + "pr": "11991", + "title": "Fix the style lint", + "userLogin": "rodrigok", + "milestone": "0.70.0", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11855", + "title": "[NEW] REST endpoints to create roles and assign roles to users", + "userLogin": "aferreira44", + "milestone": "0.70.0", + "contributors": [ + "aferreira44", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "12025", + "title": "[FIX] Hidden admin sidenav on embedded layout", + "userLogin": "ggazzo", + "milestone": "0.69.2", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "11955", + "title": "[FIX] Update user information not possible by admin if disabled to users", + "userLogin": "kaiiiiiiiii", + "milestone": "0.69.2", + "contributors": [ + "kaiiiiiiiii" + ] + }, + { + "pr": "11992", + "title": "[FIX] Apps: setting with 'code' type only saving last line", + "userLogin": "cardoso", + "milestone": "0.69.2", + "contributors": [ + "cardoso" + ] + }, + { + "pr": "12022", + "title": "[FIX] Reset password link error if already logged in", + "userLogin": "rodrigok", + "milestone": "0.69.2", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11879", + "title": "[FIX] Wrong build path in install.sh", + "userLogin": "geekgonecrazy", + "milestone": "0.69.0", + "contributors": [ + "geekgonecrazy", + "web-flow" + ] + }, + { + "pr": "11857", + "title": "[FIX] Permission check on joinRoom for private room", + "userLogin": "timkinnane", + "contributors": [ + "timkinnane", + "web-flow" + ] + }, + { + "pr": "11812", + "title": "[NEW] Include room name in stream for bots", + "userLogin": "timkinnane", + "milestone": "0.69.2", + "contributors": [ + "timkinnane", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "9984", + "title": "[NEW] Informal German translations", + "userLogin": "mrsimpson", + "contributors": [ + "mrsimpson", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "11562", + "title": "[FIX] Close popover on shortcuts and writing", + "userLogin": "MartinSchoeler", + "contributors": [ + "MartinSchoeler" + ] + }, + { + "pr": "11351", + "title": "[BREAK] Update the default port of the Prometheus exporter", + "userLogin": "thaiphv", + "milestone": "0.70.0", + "contributors": [ + "thaiphv", + "web-flow" + ] + }, + { + "pr": "11872", + "title": "[FIX] Typo in a configuration key for SlackBridge excluded bot names", + "userLogin": "TobiasKappe", + "milestone": "0.70.0", + "contributors": [ + "TobiasKappe" + ] + }, + { + "pr": "11921", + "title": "Merge master into develop & Set version to 0.70.0-develop", + "userLogin": "sampaiodiego", + "contributors": [ + "engelgabriel", + "sampaiodiego", + "tassoevan", + "rodrigok", + "web-flow", + "c0dzilla", + "Hudell", + "rndmh3ro", + "MarcosSpessatto", + "vynmera", + "renatobecker", + "ubarsaiyan" + ] + }, + { + "pr": "11853", + "title": "[FIX] Duplicated message buttons", + "userLogin": "ubarsaiyan", + "milestone": "0.69.1", + "contributors": [ + "ubarsaiyan", + "web-flow" + ] + }, + { + "pr": "11893", + "title": " [FIX] App updates were not being shown correctly", + "userLogin": "rodrigok", + "milestone": "0.69.1", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11910", + "title": "[FIX] Hipchat importer was not importing users without emails and uploaded files", + "userLogin": "rodrigok", + "milestone": "0.69.1", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11892", + "title": "[FIX] Hipchat import was failing when importing messages from a non existent user", + "userLogin": "rodrigok", + "milestone": "0.69.1", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "12026", + "title": "Release 0.69.2", + "userLogin": "sampaiodiego", + "contributors": [ + "ggazzo", + "sampaiodiego", + "timkinnane", + "rodrigok", + "cardoso", + "kaiiiiiiiii" + ] + }, + { + "pr": "11812", + "title": "[NEW] Include room name in stream for bots", + "userLogin": "timkinnane", + "milestone": "0.69.2", + "contributors": [ + "timkinnane", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "12022", + "title": "[FIX] Reset password link error if already logged in", + "userLogin": "rodrigok", + "milestone": "0.69.2", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11992", + "title": "[FIX] Apps: setting with 'code' type only saving last line", + "userLogin": "cardoso", + "milestone": "0.69.2", + "contributors": [ + "cardoso" + ] + }, + { + "pr": "11955", + "title": "[FIX] Update user information not possible by admin if disabled to users", + "userLogin": "kaiiiiiiiii", + "milestone": "0.69.2", + "contributors": [ + "kaiiiiiiiii" + ] + }, + { + "pr": "12025", + "title": "[FIX] Hidden admin sidenav on embedded layout", + "userLogin": "ggazzo", + "milestone": "0.69.2", + "contributors": [ + "ggazzo" + ] + } + ] + }, + "0.70.0-rc.1": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "12138", + "title": "Regression: fix message box autogrow", + "userLogin": "ggazzo", + "milestone": "0.70.0", + "contributors": [ + "ggazzo" + ] + }, + { + "pr": "12122", + "title": "Regression: Modal height", + "userLogin": "ggazzo", + "milestone": "0.70.0", + "contributors": [ + "ggazzo", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "12124", + "title": "Fix: Change wording on e2e to make a little more clear", + "userLogin": "geekgonecrazy", + "milestone": "0.70.0", + "contributors": [ + "geekgonecrazy" + ] + } + ] + }, + "0.70.0-rc.2": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "12154", + "title": "[FIX] Real Name on Direct Messages ", + "userLogin": "ggazzo", + "milestone": "0.70.0", + "contributors": [ + "ggazzo", + "sampaiodiego" + ] + }, + { + "pr": "12038", + "title": "[FIX] Position of popover component on mobile", + "userLogin": "ggazzo", + "milestone": "0.70.0", + "contributors": [ + "ggazzo", + "web-flow", + "sampaiodiego" + ] + }, + { + "pr": "12168", + "title": "[FIX] Duplicate email and auto-join on mentions", + "userLogin": "sampaiodiego", + "milestone": "0.70.0", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "12172", + "title": "Improve: Moved the e2e password request to an alert instead of a popup", + "userLogin": "Hudell", + "milestone": "0.70.0", + "contributors": [ + "Hudell", + "rodrigok", + "web-flow" + ] + }, + { + "pr": "12169", + "title": "New: Option to change E2E key", + "userLogin": "Hudell", + "milestone": "0.70.0", + "contributors": [ + "Hudell", + "rodrigok", + "web-flow" + ] + }, + { + "pr": "12173", + "title": "Improve: Decrypt last message", + "userLogin": "rodrigok", + "milestone": "0.70.0", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "12102", + "title": "[FIX] Horizontal scroll on user info tab", + "userLogin": "rssilva", + "milestone": "0.70.0", + "contributors": [ + "rssilva" + ] + }, + { + "pr": "12140", + "title": "[FIX] Markdown ampersand escape on links", + "userLogin": "rssilva", + "milestone": "0.70.0", + "contributors": [ + "rssilva" + ] + }, + { + "pr": "11938", + "title": "[NEW] Apps: API provider", + "userLogin": "rodrigok", + "milestone": "0.70.0", + "contributors": [ + "rodrigok", + "geekgonecrazy", + "web-flow" + ] + }, + { + "pr": "12170", + "title": "[FIX] Saving user preferences", + "userLogin": "sampaiodiego", + "milestone": "0.70.0", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "12139", + "title": "Fix: e2e password visible on always-on alert message.", + "userLogin": "Hudell", + "milestone": "0.70.0", + "contributors": [ + "Hudell", + "geekgonecrazy", + "web-flow" + ] + }, + { + "pr": "12159", + "title": "[FIX] Apps being able to see hidden settings", + "userLogin": "graywolf336", + "contributors": [ + "graywolf336", + "web-flow" + ] + }, + { + "pr": "12112", + "title": "[FIX] Allow user with \"bulk-register-user\" permission to send invitations", + "userLogin": "mrsimpson", + "contributors": [ + "mrsimpson", + "web-flow", + "geekgonecrazy" + ] + } + ] + }, + "0.70.0-rc.3": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "12196", + "title": "Improve: Expose apps enable setting at `General > Apps`", + "userLogin": "rodrigok", + "milestone": "0.70.0", + "contributors": [ + "rodrigok", + "sampaiodiego" + ] + }, + { + "pr": "12188", + "title": "Fix: Message changing order when been edited with apps enabled", + "userLogin": "rodrigok", + "milestone": "0.70.0", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "12009", + "title": "[BREAK][IMPROVE] New emails design", + "userLogin": "ggazzo", + "milestone": "0.70.0", + "contributors": [ + "ggazzo", + "web-flow", + "sampaiodiego" + ] + }, + { + "pr": "11906", + "title": "[FIX] IRC Federation no longer working", + "userLogin": "Hudell", + "milestone": "0.70.0", + "contributors": [ + "Hudell", + "geekgonecrazy", + "web-flow" + ] + }, + { + "pr": "12191", + "title": "Improve: E2E setting description and alert", + "userLogin": "rodrigok", + "contributors": [ + "rodrigok", + "geekgonecrazy", + "web-flow" + ] + }, + { + "pr": "12189", + "title": "[NEW] Apps are enabled by default now", + "userLogin": "rodrigok", + "milestone": "0.70.0", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "12184", + "title": "[NEW] Add Livechat Analytics permission", + "userLogin": "renatobecker", + "milestone": "0.70.0", + "contributors": [ + "renatobecker" + ] + }, + { + "pr": "12192", + "title": "Improve: Do not start E2E Encryption when accessing admin as embedded", + "userLogin": "rodrigok", + "milestone": "0.70.0", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11679", + "title": "[NEW] WebDAV Integration (User file provider)", + "userLogin": "karakayasemi", + "milestone": "0.70.0", + "contributors": [ + "karakayasemi", + "ggazzo", + "web-flow", + "sampaiodiego" + ] + }, + { + "pr": "12187", + "title": "Fix: Add e2e doc to the alert", + "userLogin": "geekgonecrazy", + "milestone": "0.70.0", + "contributors": [ + "geekgonecrazy", + "web-flow" + ] + }, + { + "pr": "11565", + "title": "[FIX] Files list missing from popover menu when owner of room", + "userLogin": "tassoevan", + "milestone": "Short-term", + "contributors": [ + "tassoevan", + "web-flow", + "geekgonecrazy" + ] + }, + { + "pr": "11927", + "title": "[FIX] Not able to set per-channel retention policies if no global policy is set for this channel type", + "userLogin": "vynmera", + "contributors": [ + "vynmera", + "web-flow", + "geekgonecrazy" + ] + }, + { + "pr": "12126", + "title": "[FIX] app engine verbose log typo", + "userLogin": "williamriancho", + "contributors": [ + "williamriancho", + "web-flow", + "geekgonecrazy" + ] + } + ] + }, + "0.70.0-rc.4": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "12195", + "title": "Improve: Switch e2e doc to target _blank", + "userLogin": "geekgonecrazy", + "contributors": [ + "geekgonecrazy", + "web-flow" + ] + }, + { + "pr": "12175", + "title": "Improve: Rename E2E methods", + "userLogin": "Hudell", + "contributors": [ + "Hudell", + "rodrigok", + "web-flow", + "geekgonecrazy" + ] + } + ] + }, + "0.70.0": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "12026", + "title": "Release 0.69.2", + "userLogin": "sampaiodiego", + "contributors": [ + "ggazzo", + "sampaiodiego", + "timkinnane", + "rodrigok", + "cardoso", + "kaiiiiiiiii" + ] + }, + { + "pr": "11812", + "title": "[NEW] Include room name in stream for bots", + "userLogin": "timkinnane", + "milestone": "0.69.2", + "contributors": [ + "timkinnane", + "sampaiodiego", + "web-flow" + ] + }, + { + "pr": "12022", + "title": "[FIX] Reset password link error if already logged in", + "userLogin": "rodrigok", + "milestone": "0.69.2", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "11992", + "title": "[FIX] Apps: setting with 'code' type only saving last line", + "userLogin": "cardoso", + "milestone": "0.69.2", + "contributors": [ + "cardoso" + ] + }, + { + "pr": "11955", + "title": "[FIX] Update user information not possible by admin if disabled to users", + "userLogin": "kaiiiiiiiii", + "milestone": "0.69.2", + "contributors": [ + "kaiiiiiiiii" + ] + }, + { + "pr": "12025", + "title": "[FIX] Hidden admin sidenav on embedded layout", + "userLogin": "ggazzo", + "milestone": "0.69.2", + "contributors": [ + "ggazzo" + ] + } + ] + }, + "0.70.1-rc.0": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "12264", + "title": "Merge master into develop & Set version to 0.71.0-develop", + "userLogin": "sampaiodiego", + "contributors": [ + "ggazzo", + "sampaiodiego", + "timkinnane", + "rodrigok", + "cardoso", + "kaiiiiiiiii", + "web-flow" + ] + }, + { + "pr": "12254", + "title": "[FIX] E2E data not cleared on logout", + "userLogin": "Hudell", + "milestone": "0.70.1", + "contributors": [ + "Hudell" + ] + }, + { + "pr": "12232", + "title": "[FIX] E2E password request not closing after entering password", + "userLogin": "Hudell", + "milestone": "0.70.1", + "contributors": [ + "Hudell" + ] + }, + { + "pr": "12263", + "title": "[FIX] Message editing was duplicating reply quotes", + "userLogin": "rodrigok", + "milestone": "0.70.1", + "contributors": [ + "rodrigok" + ] + }, + { + "pr": "12257", + "title": "[FIX] Livechat integration with RDStation", + "userLogin": "sampaiodiego", + "milestone": "0.70.1", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "12233", + "title": "Regression: fix modal submit", + "userLogin": "ggazzo", + "milestone": "0.70.1", + "contributors": [ + "ggazzo", + "sampaiodiego" + ] + }, + { + "pr": "12255", + "title": "[FIX] Livechat triggers being registered twice after setting department via API", + "userLogin": "edzluhan", + "milestone": "0.70.1", + "contributors": [ + "edzluhan" + ] + }, + { + "pr": "12242", + "title": "[FIX] Livechat CRM integration running when disabled ", + "userLogin": "renatobecker", + "milestone": "0.70.1", + "contributors": [ + "renatobecker" + ] + }, + { + "pr": "12241", + "title": "[FIX] Emails' logo and links", + "userLogin": "ggazzo", + "contributors": [ + "ggazzo", + "sampaiodiego" + ] + }, + { + "pr": "12240", + "title": "[FIX] Set default action for Setup Wizard form submit", + "userLogin": "tassoevan", + "milestone": "0.71.0", + "contributors": [ + "tassoevan" + ] + }, + { + "pr": "12227", + "title": "Add reetp to the issues' bot whitelist", + "userLogin": "theorenck", + "contributors": [ + "theorenck", + "web-flow" + ] + } + ] + }, + "0.70.1-rc.1": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "12268", + "title": "Fix: Remove semver satisfies from Apps details that is already done my marketplace", + "userLogin": "sampaiodiego", + "milestone": "0.70.1", + "contributors": [ + "sampaiodiego" + ] + } + ] + }, + "0.70.1": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "12270", + "title": "Release 0.70.1", + "userLogin": "sampaiodiego", + "contributors": [ + "theorenck", + "rodrigok", + "tassoevan", + "ggazzo", + "sampaiodiego", + "renatobecker", + "edzluhan", + "web-flow", + "Hudell" + ] + } + ] + }, + "0.70.2": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "12272", + "title": "[FIX] E2E alert shows up when encryption is disabled", + "userLogin": "Hudell", + "milestone": "0.70.2", + "contributors": [ + "Hudell" + ] + } + ] + }, + "0.70.3": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "12276", + "title": "Release 0.70.2", + "userLogin": "sampaiodiego", + "contributors": [ + "Hudell", + "sampaiodiego" + ] + }, + { + "pr": "12272", + "title": "[FIX] E2E alert shows up when encryption is disabled", + "userLogin": "Hudell", + "milestone": "0.70.2", + "contributors": [ + "Hudell" + ] + } + ] + }, + "0.70.4": { + "node_version": "8.11.3", + "npm_version": "5.6.0", + "pull_requests": [ + { + "pr": "12283", + "title": "[FIX] Modal confirm on enter", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego" + ] + }, + { + "pr": "12298", + "title": "Fix: Add wizard opt-in fields", + "userLogin": "sampaiodiego", + "contributors": [ + "sampaiodiego" + ] + } + ] } } } \ No newline at end of file diff --git a/.meteor/packages b/.meteor/packages index 6996816e2a22..702f4f075fc8 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -97,6 +97,7 @@ rocketchat:mapview rocketchat:markdown rocketchat:mentions rocketchat:mentions-flextab +rocketchat:message-action rocketchat:message-attachments rocketchat:message-mark-as-unread rocketchat:message-pin @@ -154,6 +155,7 @@ rocketchat:ui-vrecord rocketchat:user-data-download rocketchat:version rocketchat:videobridge +rocketchat:webdav rocketchat:webrtc rocketchat:wordpress rocketchat:nrr @@ -184,12 +186,15 @@ ostrio:cookies pauli:accounts-linkedin percolate:synced-cron raix:handlebar-helpers -raix:push +rocketchat:push raix:ui-dropped-event steffo:meteor-accounts-saml todda00:friendly-slugs yasaricli:slugify yasinuslu:blaze-meta +rocketchat:e2e + +rocketchat:blockstack rocketchat:version-check rocketchat:search @@ -203,3 +208,6 @@ assistify:threading assistify:migrations assistify:configuration overture8:wordcloud2 + +rocketchat:bigbluebutton +rocketchat:mailmessages diff --git a/.meteor/versions b/.meteor/versions index b9a877bbbfdb..c5b14715df98 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -74,7 +74,7 @@ konecty:change-case@2.3.0 konecty:delayed-task@1.0.0 konecty:mongo-counter@0.0.5_3 konecty:multiple-instances-status@1.1.0 -konecty:user-presence@2.1.0 +konecty:user-presence@2.2.0 launch-screen@1.1.1 less@2.7.12 livedata@1.0.18 @@ -121,7 +121,6 @@ promise@0.10.2 raix:eventemitter@0.1.3 raix:eventstate@0.0.4 raix:handlebar-helpers@0.2.5 -raix:push@3.3.0 raix:ui-dropped-event@0.0.7 random@1.1.0 rate-limit@1.0.9 @@ -139,6 +138,8 @@ rocketchat:assets@0.0.1 rocketchat:authorization@0.0.1 rocketchat:autolinker@0.0.1 rocketchat:autotranslate@0.0.1 +rocketchat:bigbluebutton@0.0.1 +rocketchat:blockstack@0.0.1 rocketchat:bot-helpers@0.0.1 rocketchat:cas@1.0.0 rocketchat:channel-settings@0.0.1 @@ -150,6 +151,7 @@ rocketchat:custom-oauth@1.0.0 rocketchat:custom-sounds@1.0.0 rocketchat:dolphin@0.0.2 rocketchat:drupal@0.0.1 +rocketchat:e2e@0.0.1 rocketchat:emoji@1.0.0 rocketchat:emoji-custom@1.0.0 rocketchat:emoji-emojione@0.0.1 @@ -187,10 +189,12 @@ rocketchat:livestream@0.0.5 rocketchat:logger@0.0.1 rocketchat:login-token@1.0.0 rocketchat:mailer@0.0.1 +rocketchat:mailmessages@0.0.1 rocketchat:mapview@0.0.1 rocketchat:markdown@0.0.2 rocketchat:mentions@0.0.1 rocketchat:mentions-flextab@0.0.1 +rocketchat:message-action@0.0.1 rocketchat:message-attachments@0.0.1 rocketchat:message-mark-as-unread@0.0.1 rocketchat:message-pin@0.0.1 @@ -204,6 +208,7 @@ rocketchat:oauth2-server-config@1.0.0 rocketchat:oembed@0.0.1 rocketchat:otr@0.0.1 rocketchat:postcss@1.0.0 +rocketchat:push@3.3.1 rocketchat:push-notifications@0.0.1 rocketchat:reactions@0.0.1 rocketchat:retention-policy@0.0.1 @@ -252,6 +257,7 @@ rocketchat:user-data-download@1.0.0 rocketchat:version@1.0.0 rocketchat:version-check@0.0.1 rocketchat:videobridge@0.2.0 +rocketchat:webdav@0.0.1 rocketchat:webrtc@0.0.1 rocketchat:wordpress@0.0.1 routepolicy@1.0.13 diff --git a/.sandstorm/sandstorm-pkgdef.capnp b/.sandstorm/sandstorm-pkgdef.capnp index e7254c531a56..a4bef3751335 100644 --- a/.sandstorm/sandstorm-pkgdef.capnp +++ b/.sandstorm/sandstorm-pkgdef.capnp @@ -19,9 +19,9 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Rocket.Chat"), - appVersion = 94, # Increment this for every release. + appVersion = 110, # Increment this for every release. - appMarketingVersion = (defaultText = "0.68.5"), + appMarketingVersion = (defaultText = "0.70.4"), # Human-readable representation of appVersion. Should match the way you # identify versions of your app in documentation and marketing. diff --git a/.scripts/logs.js b/.scripts/logs.js index 77ff6412e1da..be65d91454b5 100644 --- a/.scripts/logs.js +++ b/.scripts/logs.js @@ -22,7 +22,7 @@ let historyData = (() => { octokit.authenticate({ type: 'token', - token: process.env.GITHUB_TOKEN + token: process.env.GITHUB_TOKEN, }); const owner = 'RocketChat'; const repo = 'Rocket.Chat'; @@ -31,8 +31,8 @@ function promiseRetryRateLimit(promiseFn, retryWait = 60000) { return new Promise((resolve, reject) => { function exec() { promiseFn() - .then(data => resolve(data)) - .catch(error => { + .then((data) => resolve(data)) + .catch((error) => { if (error.headers['x-ratelimit-remaining'] === '0') { let reset = error.headers['x-ratelimit-reset']; if (reset) { @@ -56,13 +56,13 @@ function getPRInfo(number, commit) { process.exit(1); } - return promiseRetryRateLimit(() => octokit.pullRequests.get({owner, repo, number})) + return promiseRetryRateLimit(() => octokit.pullRequests.get({ owner, repo, number })) .catch(onError) - .then(pr => { + .then((pr) => { const info = { pr: number, title: pr.data.title, - userLogin: pr.data.user.login + userLogin: pr.data.user.login, }; // data.author_association: 'CONTRIBUTOR', @@ -70,12 +70,12 @@ function getPRInfo(number, commit) { info.milestone = pr.data.milestone.title; } - return promiseRetryRateLimit(() => octokit.pullRequests.getCommits({owner, repo, number})) + return promiseRetryRateLimit(() => octokit.pullRequests.getCommits({ owner, repo, number })) .catch(onError) - .then(commits => { - info.contributors = _.unique(_.flatten(commits.data.map(i => { + .then((commits) => { + info.contributors = _.unique(_.flatten(commits.data.map((i) => { if (!i.author || !i.committer) { - return; + return null; } return [i.author.login, i.committer.login]; @@ -94,7 +94,7 @@ function getPRNumeberFromMessage(message, item) { const number = match[2] || match[4]; if (!/^\d+$/.test(number)) { - console.error('Invalid number', {number, message}); + console.error('Invalid number', { number, message }); process.exit(1); } @@ -108,17 +108,17 @@ function getPullRequests(from, to) { date: '%ai', message: '%s', author_name: '%aN', - author_email: '%ae' + author_email: '%ae', }; return git.log(logParams).then((log) => { const items = log.all - .filter(item => /^(\*\s)[0-9a-z]+$/.test(item.hash)) - .map(item => { + .filter((item) => /^(\*\s)[0-9a-z]+$/.test(item.hash)) + .map((item) => { item.hash = item.hash.replace(/^(\*\s)/, ''); return item; }) - .filter(item => commitRegex.test(item.message)); + .filter((item) => commitRegex.test(item.message)); const data = []; @@ -126,7 +126,7 @@ function getPullRequests(from, to) { const bar = new ProgressBar(' [:bar] :current/:total :percent :etas', { total: items.length, incomplete: ' ', - width: 20 + width: 20, }); function process() { @@ -137,18 +137,16 @@ function getPullRequests(from, to) { const partItems = items.splice(0, 10); bar.tick(partItems.length); - const promises = partItems.map(item => { - return getPRInfo(getPRNumeberFromMessage(item.message, item), item); - }); + const promises = partItems.map((item) => getPRInfo(getPRNumeberFromMessage(item.message, item), item)); - return Promise.all(promises).then(result => { + return Promise.all(promises).then((result) => { data.push(..._.compact(result)); if (items.length) { setTimeout(process, 100); } else { resolve(data); } - }).catch(error => reject(error)); + }).catch((error) => reject(error)); } process(); @@ -158,7 +156,7 @@ function getPullRequests(from, to) { function getTags() { return git.tags().then((tags) => { - tags = tags.all.filter(tag => /^\d+\.\d+\.\d+(-rc\.\d+)?$/.test(tag)); + tags = tags.all.filter((tag) => /^\d+\.\d+\.\d+(-rc\.\d+)?$/.test(tag)); tags = tags.sort((a, b) => { if (semver.gt(a, b)) { @@ -173,13 +171,11 @@ function getTags() { tags.push('HEAD'); return tags - .map((item, index) => { - return { - tag: item, - before: index ? tags[--index] : null - }; - }) - .filter(item => item.tag === 'HEAD' || semver.gte(item.tag, minTag)) + .map((item, index) => ({ + tag: item, + before: index ? tags[--index] : null, + })) + .filter((item) => item.tag === 'HEAD' || semver.gte(item.tag, minTag)) .reduce((value, item) => { value[item.tag] = item; return value; @@ -188,14 +184,14 @@ function getTags() { } function getMissingTags() { - return getTags().then(tags => { + return getTags().then((tags) => { const missingTags = _.difference(Object.keys(tags), Object.keys(historyData)); missingTags.push('HEAD'); return _.pick(tags, missingTags); }); } -getMissingTags().then(missingTags => { +getMissingTags().then((missingTags) => { console.log('Missing tags:'); console.log(JSON.stringify(Object.keys(missingTags), null, 2)); missingTags = Object.values(missingTags); @@ -209,10 +205,10 @@ getMissingTags().then(missingTags => { const from = item.before; const to = item.tag; console.log('Fetching data for tag:', to, `(from ${ from })`); - getPullRequests(from, to).then(prs => { + getPullRequests(from, to).then((prs) => { // console.log(' ', prs.length, 'item(s) found'); historyData = Object.assign(historyData, { - [to]: prs + [to]: prs, }); fs.writeFileSync(historyDataFile, JSON.stringify(historyData, null, 2)); loadMissingTag(); diff --git a/.scripts/md.js b/.scripts/md.js index b9e29e5ae6be..6f927f192cc2 100644 --- a/.scripts/md.js +++ b/.scripts/md.js @@ -2,7 +2,7 @@ const path = require('path'); const fs = require('fs'); const semver = require('semver'); const _ = require('underscore'); -const execSync = require('child_process').execSync; +const { execSync } = require('child_process'); const historyDataFile = path.join(__dirname, '../.github/history.json'); const historyManualDataFile = path.join(__dirname, '../.github/history-manual.json'); @@ -30,14 +30,14 @@ const nonContributors = [ 'rodrigok', 'renatobecker', 'sampaiodiego', - 'SeanPackham' + 'SeanPackham', ]; const GroupNames = { FIX: '### 🐛 Bug fixes', NEW: '### 🎉 New features', BREAK: '### ⚠️ BREAKING CHANGES', - MINOR: '🔍 Minor changes' + MINOR: '🔍 Minor changes', }; const SummaryNameEmoticons = { @@ -45,7 +45,7 @@ const SummaryNameEmoticons = { NEW: '🎉', BREAK: '️️️⚠️', NOGROUP: '🔍', - contributor: '👩‍💻👨‍💻' + contributor: '👩‍💻👨‍💻', }; const historyData = (() => { @@ -64,7 +64,7 @@ const historyManualData = (() => { } })(); -Object.keys(historyManualData).forEach(tag => { +Object.keys(historyManualData).forEach((tag) => { historyData[tag] = historyData[tag] || []; historyData[tag].unshift(...historyManualData[tag]); }); @@ -74,10 +74,10 @@ function groupPRs(prs) { BREAK: [], NEW: [], FIX: [], - NOGROUP: [] + NOGROUP: [], }; - prs.forEach(pr => { + prs.forEach((pr) => { const match = pr.title.match(/\[(FIX|NEW|BREAK)\]\s*(.+)/); if (match) { pr.title = match[2]; @@ -98,26 +98,26 @@ function getLatestCommitDate() { return execSync('git log --date=short --format=\'%ad\' -1').toString().replace(/\n/, ''); } -Object.keys(historyData).forEach(tag => { +Object.keys(historyData).forEach((tag) => { historyData[tag] = { prs: historyData[tag], - rcs: [] + rcs: [], }; }); -Object.keys(historyData).forEach(tag => { +Object.keys(historyData).forEach((tag) => { if (/-rc/.test(tag)) { const mainTag = tag.replace(/-rc.*/, ''); historyData[mainTag] = historyData[mainTag] || { noMainRelease: true, prs: [], - rcs: [] + rcs: [], }; if (historyData[mainTag].noMainRelease) { historyData[mainTag].rcs.push({ tag, - prs: historyData[tag].prs + prs: historyData[tag].prs, }); } else { historyData[mainTag].prs.push(...historyData[tag].prs); @@ -132,7 +132,7 @@ const file = []; function getSummary(contributors, groupedPRs) { const summary = []; - Object.keys(groupedPRs).forEach(group => { + Object.keys(groupedPRs).forEach((group) => { if (groupedPRs[group].length) { summary.push(`${ groupedPRs[group].length } ${ SummaryNameEmoticons[group] }`); } @@ -153,7 +153,7 @@ function renderPRs(prs) { const data = []; const groupedPRs = groupPRs(prs); - Object.keys(groupedPRs).forEach(group => { + Object.keys(groupedPRs).forEach((group) => { const prs = groupedPRs[group]; if (!prs.length) { return; @@ -166,10 +166,10 @@ function renderPRs(prs) { } else { data.push(`\n${ groupName }\n`); } - prs.forEach(pr => { + prs.forEach((pr) => { let contributors = _.compact(_.difference(pr.contributors, nonContributors)) .sort() - .map(contributor => `[@${ contributor }](https://github.com/${ contributor })`) + .map((contributor) => `[@${ contributor }](https://github.com/${ contributor })`) .join(' & '); if (contributors) { @@ -184,21 +184,19 @@ function renderPRs(prs) { } }); - const contributors = _.compact(_.difference(prs.reduce((value, pr) => { - return _.unique(value.concat(pr.contributors)); - }, []), nonContributors)); + const contributors = _.compact(_.difference(prs.reduce((value, pr) => _.unique(value.concat(pr.contributors)), []), nonContributors)); if (contributors.length) { // TODO: Improve list like https://gist.github.com/paulmillr/2657075/ data.push('\n### 👩‍💻👨‍💻 Contributors 😍\n'); - contributors.sort().forEach(contributor => { + contributors.sort().forEach((contributor) => { data.push(`- [@${ contributor }](https://github.com/${ contributor })`); }); } return { data, - summary: getSummary(contributors, groupedPRs) + summary: getSummary(contributors, groupedPRs), }; } @@ -219,8 +217,8 @@ function sort(a, b) { return 0; } -Object.keys(historyData).sort(sort).forEach(tag => { - const {prs, rcs} = historyData[tag]; +Object.keys(historyData).sort(sort).forEach((tag) => { + const { prs, rcs } = historyData[tag]; if (!prs.length && !rcs.length) { return; @@ -228,7 +226,7 @@ Object.keys(historyData).sort(sort).forEach(tag => { const tagDate = tag === 'HEAD' ? getLatestCommitDate() : getTagDate(tag); - const {data, summary} = renderPRs(prs); + const { data, summary } = renderPRs(prs); const tagText = tag === 'HEAD' ? 'Next' : tag; @@ -242,8 +240,8 @@ Object.keys(historyData).sort(sort).forEach(tag => { file.push(...data); if (Array.isArray(rcs)) { - rcs.reverse().forEach(rc => { - const {data, summary} = renderPRs(rc.prs); + rcs.reverse().forEach((rc) => { + const { data, summary } = renderPRs(rc.prs); if (historyData[tag].noMainRelease) { const tagDate = getTagDate(rc.tag); diff --git a/.scripts/set-version.js b/.scripts/set-version.js index 74e98540c618..5a7f89653fc7 100644 --- a/.scripts/set-version.js +++ b/.scripts/set-version.js @@ -26,33 +26,29 @@ const files = [ './.circleci/update-releases.sh', './.docker/Dockerfile', './.docker/Dockerfile.rhel', - './packages/rocketchat-lib/rocketchat.info' + './packages/rocketchat-lib/rocketchat.info', ]; -const readFile = (file) => { - return new Promise((resolve, reject) => { - fs.readFile(file, 'utf8', (error, result) => { - if (error) { - return reject(error); - } - resolve(result); - }); +const readFile = (file) => new Promise((resolve, reject) => { + fs.readFile(file, 'utf8', (error, result) => { + if (error) { + return reject(error); + } + resolve(result); }); -}; -const writeFile = (file, data) => { - return new Promise((resolve, reject) => { - fs.writeFile(file, data, 'utf8', (error, result) => { - if (error) { - return reject(error); - } - resolve(result); - }); +}); +const writeFile = (file, data) => new Promise((resolve, reject) => { + fs.writeFile(file, data, 'utf8', (error, result) => { + if (error) { + return reject(error); + } + resolve(result); }); -}; +}); let selectedVersion; git.status() - .then(status => { + .then((status) => { if (status.current === 'release-candidate') { return semver.inc(pkgJson.version, 'prerelease', 'rc'); } @@ -64,63 +60,59 @@ git.status() } return Promise.reject(`No release action for branch ${ status.current }`); }) - .then(nextVersion => inquirer.prompt([{ + .then((nextVersion) => inquirer.prompt([{ type: 'list', message: `The current version is ${ pkgJson.version }. Update to version:`, name: 'version', choices: [ nextVersion, - 'custom' - ] + 'custom', + ], }])) - .then(answers => { + .then((answers) => { if (answers.version === 'custom') { return inquirer.prompt([{ name: 'version', - message: 'Enter your custom version:' + message: 'Enter your custom version:', }]); } return answers; }) .then(({ version }) => { selectedVersion = version; - return Promise.all(files.map(file => { - return readFile(file) - .then(data => { - return writeFile(file, data.replace(pkgJson.version, version)); - }); - })); + return Promise.all(files.map((file) => readFile(file) + .then((data) => writeFile(file, data.replace(pkgJson.version, version))))); }) - .then(() => { + .then(() => // execSync('conventional-changelog --config .github/changelog.js -i HISTORY.md -s'); - return inquirer.prompt([{ + inquirer.prompt([{ type: 'confirm', message: 'Commit files?', - name: 'commit' - }]); - }) - .then(answers => { + name: 'commit', + }]) + ) + .then((answers) => { if (!answers.commit) { return Promise.reject(answers); } return git.status(); }) - .then(status => inquirer.prompt([{ + .then((status) => inquirer.prompt([{ type: 'checkbox', message: 'Select files to commit?', name: 'files', - choices: status.files.map(file => { return {name: `${ file.working_dir } ${ file.path }`, checked: true}; }) + choices: status.files.map((file) => ({ name: `${ file.working_dir } ${ file.path }`, checked: true })), }])) - .then(answers => answers.files.length && git.add(answers.files.map(file => file.slice(2)))) + .then((answers) => answers.files.length && git.add(answers.files.map((file) => file.slice(2)))) .then(() => git.commit(`Bump version to ${ selectedVersion }`)) .then(() => inquirer.prompt([{ type: 'confirm', message: `Add tag ${ selectedVersion }?`, - name: 'tag' + name: 'tag', }])) - .then(answers => answers.tag && git.addTag(selectedVersion)) + .then((answers) => answers.tag && git.addTag(selectedVersion)) .catch((error) => { console.error(error); }); diff --git a/.scripts/start.js b/.scripts/start.js index d1c60c96c127..369696c4b1cc 100644 --- a/.scripts/start.js +++ b/.scripts/start.js @@ -3,7 +3,7 @@ const path = require('path'); const fs = require('fs'); const extend = require('util')._extend; -const exec = require('child_process').exec; +const { exec } = require('child_process'); const processes = []; const baseDir = path.resolve(__dirname, '..'); @@ -12,8 +12,8 @@ const srcDir = path.resolve(baseDir); const appOptions = { env: { PORT: 3000, - ROOT_URL: 'http://localhost:3000' - } + ROOT_URL: 'http://localhost:3000', + }, }; function startProcess(opts, callback) { @@ -38,7 +38,7 @@ function startProcess(opts, callback) { } if (opts.logFile) { - const logStream = fs.createWriteStream(opts.logFile, {flags: 'a'}); + const logStream = fs.createWriteStream(opts.logFile, { flags: 'a' }); proc.stdout.pipe(logStream); proc.stderr.pipe(logStream); } @@ -60,8 +60,8 @@ function startApp(callback) { waitForMessage: appOptions.waitForMessage, options: { cwd: srcDir, - env: extend(appOptions.env, process.env) - } + env: extend(appOptions.env, process.env), + }, }, callback); } @@ -73,9 +73,9 @@ function startChimp() { env: Object.assign({}, process.env, { NODE_PATH: `${ process.env.NODE_PATH + path.delimiter + srcDir + - path.delimiter + srcDir }/node_modules` - }) - } + path.delimiter + srcDir }/node_modules`, + }), + }, }); } diff --git a/.snapcraft/resources/backupdb b/.snapcraft/resources/backupdb new file mode 100755 index 000000000000..b457d325e543 --- /dev/null +++ b/.snapcraft/resources/backupdb @@ -0,0 +1,40 @@ +#!/bin/bash + +if [[ ${EUID} != 0 ]]; then + echo "[-] This task must be run with 'sudo'." + exit 1 +fi + +if $(ps x | grep "node ${SNAP}/main.js" | grep -qv "grep"); then + echo "[-] Please shutdown Rocket.Chat first to get a clean backup" + echo "[-] Use 'sudo systemctl stop snap.rocketchat-server.rocketchat-server'" +fi + +TIMESTAMP=$(date +"%Y%m%d.%H%M") +BACKUP_DIR="${SNAP_COMMON}/backup" + +if [[ ! -d ${BACKUP_DIR} ]]; then + mkdir ${BACKUP_DIR} +fi + +if [[ -d ${BACKUP_DIR}/dump ]]; then + rm -rf ${BACKUP_DIR}/dump +fi + +if [[ -f ${BACKUP_DIR}/rocketchat_backup_${TIMESTAMP}.tar.gz ]]; then + rm -f ${BACKUP_DIR}/rocketchat_backup_${TIMESTAMP}.tar.gz +fi + +if [[ -f ${BACKUP_DIR}/backup_${TIMESTAMP}.log ]]; then + rm -f ${BACKUP_DIR}/backup_${TIMESTAMP}.log +fi + +echo "[*] Creating backup file..." +mkdir ${BACKUP_DIR}/dump +echo "[*] Dumping database with \"mongodump -d parties -o ${BACKUP_DIR}/dump\"" > "${BACKUP_DIR}/backup_${TIMESTAMP}.log" +mongodump -d parties -o ${BACKUP_DIR}/dump &>> "${BACKUP_DIR}/backup_${TIMESTAMP}.log" +echo "[*] Packing archive with \"tar czvf ${BACKUP_DIR}/rocketchat_backup_${TIMESTAMP}.tar.gz ${BACKUP_DIR}/dump\"" >> "${BACKUP_DIR}/backup_${TIMESTAMP}.log" +tar czvf ${BACKUP_DIR}/rocketchat_backup_${TIMESTAMP}.tar.gz -C ${BACKUP_DIR} dump &>> "${BACKUP_DIR}/backup_${TIMESTAMP}.log" +rm -rf ${BACKUP_DIR}/dump + +echo "[+] A backup of your data can be found at ${BACKUP_DIR}/rocketchat_backup_${TIMESTAMP}.tar.gz" diff --git a/.snapcraft/resources/rcbackup b/.snapcraft/resources/rcbackup deleted file mode 100755 index fe7dbfe04d04..000000000000 --- a/.snapcraft/resources/rcbackup +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -rm -rf $SNAP_DATA/dump -rm $SNAP_DATA/backup.tgz -mkdir $SNAP_DATA/dump -mongodump -d parties -o $SNAP_DATA/dump -tar zcvf $SNAP_DATA/backup.tgz $SNAP_DATA/dump -echo "A backup of your data can be found at $SNAP_DATA/backup.tgz" diff --git a/.snapcraft/resources/restoredb b/.snapcraft/resources/restoredb index 0a204e837709..731cc8bbfcb0 100755 --- a/.snapcraft/resources/restoredb +++ b/.snapcraft/resources/restoredb @@ -1,72 +1,88 @@ -#! /bin/bash +#!/bin/bash -if [[ ${EUID} != 0 ]] -then +function warn { + echo "[!] ${1}" + echo "[*] Check ${RESTORE_DIR}/${LOG_NAME} for details." +} + +function abort { + echo "[!] ${1}" + echo "[*] Check ${RESTORE_DIR}/${LOG_NAME} for details." + echo "[-] Restore aborted!" + exit 1 +} + +if [[ ${EUID} != 0 ]]; then echo "[-] This task must be run with 'sudo'." - exit + exit 1 fi -backup_file=${1} -if [[ ! -f ${backup_file} ]] -then - echo "[-] Usage: snap run rocketchat-server.restoredb ${SNAP_COMMON}/backup_file.tgz" - exit +echo "*** ATTENTION ***" +echo "* Your current database WILL BE DROPPED prior to the restore!" +echo "* Do you want to continue?" + +select yn in "Yes" "No"; do + case $yn in + Yes ) break;; + No ) exit 1;; + esac +done + +if $(ps x | grep "node ${SNAP}/main.js" | grep -qv "grep"); then + echo "[-] Please shutdown Rocket.Chat first to restore a clean backup" + echo "[-] Use 'sudo systemctl stop snap.rocketchat-server.rocketchat-server'" + echo "[-] Backup aborted!" + exit 1 fi -cd ${backup_file%/*} -if [[ -z $(pwd | grep "${SNAP_COMMON}") ]] -then - echo "[-] Backup file must be within ${SNAP_COMMON}." - exit +TIMESTAMP=$(date +"%Y%m%d.%H%M") +RESTORE_DIR="${SNAP_COMMON}/restore" +DATA_DIR="${RESTORE_DIR}/dump/parties" +LOG_NAME="restore_${TIMESTAMP}.log" + +if [[ ! -d ${RESTORE_DIR} ]]; then + mkdir ${RESTORE_DIR} fi -function ask_backup { - echo -n "\ -*** ATTENTION *** -* Your current database WILL BE DROPPED prior to the restore! -* Would you like to make a backup of the current database before proceeding? -* (y/n/Q)> " - - read choice - [[ "${choice,,}" = n* ]] && return - [[ "${choice,,}" = y* ]] && backupdb && return - exit -} +if [[ -d ${RESTORE_DIR}/dump ]]; then + rm -rf ${RESTORE_DIR}/dump +fi -function warn { - echo "[!] ${1}" - echo "[*] Check ${restore_dir}/${log_name} for details." -} +if [[ -f ${RESTORE_DIR}/${LOG_NAME} ]]; then + rm -f ${RESTORE_DIR}/${LOG_NAME} +fi -function abort { - echo "[!] ${1}" - echo "[*] Check ${restore_dir}/${log_name} for details." - echo "[-] Restore aborted!" - exit -} +BACKUP_FILE=${1} +if [[ ! -f ${BACKUP_FILE} ]]; then + echo "[-] Usage: sudo snap run rocketchat-server.restoredb ${SNAP_COMMON}/rocketchat_backup_{TIMESTAMP}.tar.gz" + exit 1 +fi + +if ! $(echo "${BACKUP_FILE}" | grep -q "${SNAP_COMMON}"); then + echo "[-] Backup file must be within ${SNAP_COMMON}." + exit 1 +fi -mongo parties --eval "db.getCollectionNames()" | grep "\[ \]" >> /dev/null || ask_backup echo "[*] Extracting backup file..." -restore_dir="${SNAP_COMMON}/restore" -log_name="extraction.log" -mkdir -p ${restore_dir} -cd ${restore_dir} -tar --no-same-owner --overwrite -zxvf ${backup_file} &> "${restore_dir}/${log_name}" -[[ $? != 0 ]] && abort "Failed to extract backup files to ${restore_dir}!" +echo "[*] Extracting backup file with \"tar --no-same-owner --overwrite -xzvf ${BACKUP_FILE}\"" &> "${RESTORE_DIR}/${LOG_NAME}" +cd ${RESTORE_DIR} +tar --no-same-owner --overwrite -xzvf ${BACKUP_FILE} &>> "${RESTORE_DIR}/${LOG_NAME}" \ + || abort "Failed to extract backup files to ${RESTORE_DIR}!" + +if [ $(ls -l ${DATA_DIR} | wc -l) -le 1 ]; then + abort "No restore data found within ${DATA_DIR}!" +fi echo "[*] Restoring data..." -data_dir=$(tail "${restore_dir}/${log_name}" | grep parties/. | head -n 1) -[[ -z ${data_dir} ]] && abort "Restore data not found within ${backup_file}! - Please check that your backup file contains the backup data within the \"parties\" directory." -data_dir=$(dirname ${data_dir}) -log_name="mongorestore.log" -mongorestore --db parties --noIndexRestore --drop ${data_dir} &> "${restore_dir}/${log_name}" -[[ $? != 0 ]] && abort "Failed to execute mongorestore from ${data_dir}!" -# If mongorestore.log only has a few lines, it likely didn't find the dump files -log_lines=$(wc -l < "${restore_dir}/${log_name}") -[[ ${log_lines} -lt 24 ]] && warn "Little or no restore data found within ${backup_file}! - Please check that your backup file contains all the backup data within the \"parties\" directory." +echo "[*] Restoring data with \"mongorestore --db parties --noIndexRestore --drop ${DATA_DIR}\"" &>> "${RESTORE_DIR}/${LOG_NAME}" +mongorestore --db parties --noIndexRestore --drop ${DATA_DIR} &>> "${RESTORE_DIR}/${LOG_NAME}" \ + || abort "Failed to execute mongorestore from ${DATA_DIR}!" +if [ $(cat ${RESTORE_DIR}/${LOG_NAME} | grep $(date +%Y) | wc -l) -lt 24 ]; then + warn "Little or no data could be restored from the backup!" +fi + echo "[*] Preparing database..." -log_name="mongoprepare.log" -mongo parties --eval "db.repairDatabase()" --verbose &> "${restore_dir}/${log_name}" -[[ $? != 0 ]] && abort "Failed to prepare database for usage!" -echo "[+] Restore completed! Please restart the snap.rocketchat services to verify." +echo "[*] Preparing database with \"mongo parties --eval 'db.repairDatabase()' --verbose\"" &>> "${RESTORE_DIR}/${LOG_NAME}" +mongo parties --eval "db.repairDatabase()" --verbose &>> "${RESTORE_DIR}/${LOG_NAME}" \ + || abort "Failed to prepare database for usage!" + +echo "[+] Restore completed! Please with 'sudo systemctl restart snap.rocketchat-server.rocketchat-server' to verify." diff --git a/.snapcraft/snapcraft.yaml b/.snapcraft/snapcraft.yaml index 60c6b5b05bdb..50354f7afa7f 100644 --- a/.snapcraft/snapcraft.yaml +++ b/.snapcraft/snapcraft.yaml @@ -32,10 +32,10 @@ apps: command: env LC_ALL=C restoredb plugs: [network] backupdb: - command: env LC_ALL=c rcbackup + command: env LC_ALL=C backupdb plugs: [network] initcaddy: - command: env LC_ALL=c initcaddy + command: env LC_ALL=C initcaddy parts: node: plugin: dump @@ -77,7 +77,7 @@ parts: plugin: dump source: resources/ organize: - rcbackup: bin/rcbackup + backupdb: bin/backupdb restoredb: bin/restoredb startmongo: bin/startmongo startRocketChat: bin/startRocketChat diff --git a/.stylelintrc b/.stylelintrc index 9aa65ea7a9a4..0b2488ab89f3 100644 --- a/.stylelintrc +++ b/.stylelintrc @@ -47,7 +47,6 @@ "declaration-colon-space-after": "always-single-line", "declaration-colon-space-before": "never", "font-family-no-duplicate-names": true, - "function-calc-no-unspaced-operator": true, "function-comma-newline-after": "always-multi-line", "function-comma-space-after": "always-single-line", "function-comma-space-before": "never", diff --git a/.travis.yml b/.travis.yml index fb956d945ea3..b602c51213ae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -53,7 +53,6 @@ before_script: mongo --eval 'rs.initiate({_id:"rs0", members: [{"_id":1, "host":"localhost:27017"}]})' - meteor npm run lint - meteor npm run testunit -- meteor npm run stylelint - travis_retry meteor build --headless /tmp/build - mkdir /tmp/build-test - tar -xf /tmp/build/Rocket.Chat.tar.gz -C /tmp/build-test/ diff --git a/.travis/snap.sh b/.travis/snap.sh index 37d09b66f6f9..80507f5b2a76 100755 --- a/.travis/snap.sh +++ b/.travis/snap.sh @@ -17,7 +17,7 @@ elif [[ $TRAVIS_TAG ]]; then RC_VERSION=$TRAVIS_TAG else CHANNEL=edge - RC_VERSION=0.68.5 + RC_VERSION=0.70.4 fi echo "Preparing to trigger a snap release for $CHANNEL channel" diff --git a/HISTORY.md b/HISTORY.md index 433b87def473..892576396b87 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -28,6 +28,589 @@ Reason for this quite unusual behavior is that we wanted to return closer to the Assistify.Chat is now based on Rocket.Chat 0.68.5! +# 0.69.2 +`2018-09-11 · 1 🎉 · 4 🐛 · 6 👩‍💻👨‍💻` + +### Engine versions +- Node: `8.11.3` +- NPM: `5.6.0` + +### 🎉 New features + +- Include room name in stream for bots ([#11812](https://github.com/RocketChat/Rocket.Chat/pull/11812)) + +### 🐛 Bug fixes + +- Reset password link error if already logged in ([#12022](https://github.com/RocketChat/Rocket.Chat/pull/12022)) +- Apps: setting with 'code' type only saving last line ([#11992](https://github.com/RocketChat/Rocket.Chat/pull/11992)) +- Update user information not possible by admin if disabled to users ([#11955](https://github.com/RocketChat/Rocket.Chat/pull/11955) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) +- Hidden admin sidenav on embedded layout ([#12025](https://github.com/RocketChat/Rocket.Chat/pull/12025)) + +### 👩‍💻👨‍💻 Contributors 😍 + +- [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) + +### 👩‍💻👨‍💻 Core Team 🤓 + +- [@cardoso](https://github.com/cardoso) +- [@ggazzo](https://github.com/ggazzo) +- [@rodrigok](https://github.com/rodrigok) +- [@sampaiodiego](https://github.com/sampaiodiego) +- [@timkinnane](https://github.com/timkinnane) + +# 0.69.1 +`2018-08-31 · 4 🐛 · 2 👩‍💻👨‍💻` + +### Engine versions +- Node: `8.11.3` +- NPM: `5.6.0` + +### 🐛 Bug fixes + +- Hipchat import was failing when importing messages from a non existent user ([#11892](https://github.com/RocketChat/Rocket.Chat/pull/11892)) +- Hipchat importer was not importing users without emails and uploaded files ([#11910](https://github.com/RocketChat/Rocket.Chat/pull/11910)) +- App updates were not being shown correctly ([#11893](https://github.com/RocketChat/Rocket.Chat/pull/11893)) +- Duplicated message buttons ([#11853](https://github.com/RocketChat/Rocket.Chat/pull/11853) by [@ubarsaiyan](https://github.com/ubarsaiyan)) + +### 👩‍💻👨‍💻 Contributors 😍 + +- [@ubarsaiyan](https://github.com/ubarsaiyan) + +### 👩‍💻👨‍💻 Core Team 🤓 + +- [@rodrigok](https://github.com/rodrigok) + +# 0.69.0 +`2018-08-28 · 10 🎉 · 8 🚀 · 35 🐛 · 13 🔍 · 25 👩‍💻👨‍💻` + +### Engine versions +- Node: `8.11.3` +- NPM: `5.6.0` + +### 🎉 New features + +- Beta support for Big Blue Button video conferencing system ([#11837](https://github.com/RocketChat/Rocket.Chat/pull/11837)) +- Slackbridge: send attachment notifications ([#10269](https://github.com/RocketChat/Rocket.Chat/pull/10269) by [@kable-wilmoth](https://github.com/kable-wilmoth)) +- Personal access tokens for users to create API tokens ([#11638](https://github.com/RocketChat/Rocket.Chat/pull/11638)) +- REST endpoint to manage server assets ([#11697](https://github.com/RocketChat/Rocket.Chat/pull/11697)) +- Setting to enable/disable slack bridge reactions ([#10217](https://github.com/RocketChat/Rocket.Chat/pull/10217) by [@kable-wilmoth](https://github.com/kable-wilmoth)) +- Rich message text and image buttons ([#11473](https://github.com/RocketChat/Rocket.Chat/pull/11473) by [@ubarsaiyan](https://github.com/ubarsaiyan)) +- Setting to block unauthenticated access to avatars ([#9749](https://github.com/RocketChat/Rocket.Chat/pull/9749)) +- Setting to set a JS/CSS CDN ([#11779](https://github.com/RocketChat/Rocket.Chat/pull/11779)) +- Make font of unread items bolder for better contrast ([#8602](https://github.com/RocketChat/Rocket.Chat/pull/8602) by [@ausminternet](https://github.com/ausminternet)) +- Internal marketplace for apps ([#11864](https://github.com/RocketChat/Rocket.Chat/pull/11864) by [@gdelavald](https://github.com/gdelavald)) + +### 🚀 Improvements + +- Start storing Livechat department within rooms ([#11733](https://github.com/RocketChat/Rocket.Chat/pull/11733)) +- Escape parameters before send them to email template ([#11644](https://github.com/RocketChat/Rocket.Chat/pull/11644)) +- Warn about push settings that need server restart ([#11784](https://github.com/RocketChat/Rocket.Chat/pull/11784)) +- Role tag UI ([#11674](https://github.com/RocketChat/Rocket.Chat/pull/11674)) +- Messagebox fix performance ([#11686](https://github.com/RocketChat/Rocket.Chat/pull/11686)) +- Add template tag #{userdn} to filter LDAP group member format ([#11662](https://github.com/RocketChat/Rocket.Chat/pull/11662) by [@crazy-max](https://github.com/crazy-max)) +- Add nyan rocket on Rocket.Chat preview Docker image ([#11684](https://github.com/RocketChat/Rocket.Chat/pull/11684)) +- Reducing `saveUser` code complexity ([#11645](https://github.com/RocketChat/Rocket.Chat/pull/11645)) + +### 🐛 Bug fixes + +- Delete removed user's subscriptions ([#10700](https://github.com/RocketChat/Rocket.Chat/pull/10700)) +- LiveChat switch department not working ([#11011](https://github.com/RocketChat/Rocket.Chat/pull/11011)) +- Some assets were pointing to nonexistent path ([#11796](https://github.com/RocketChat/Rocket.Chat/pull/11796)) +- Revoked `view-d-room` permission logics ([#11522](https://github.com/RocketChat/Rocket.Chat/pull/11522)) +- REST `im.members` endpoint not working without sort parameter ([#11821](https://github.com/RocketChat/Rocket.Chat/pull/11821)) +- Livechat rooms starting with two unread message counter ([#11834](https://github.com/RocketChat/Rocket.Chat/pull/11834)) +- Results pagination on /directory REST endpoint ([#11551](https://github.com/RocketChat/Rocket.Chat/pull/11551)) +- re-adding margin to menu icon on header ([#11778](https://github.com/RocketChat/Rocket.Chat/pull/11778)) +- minor fixes in hungarian i18n ([#11797](https://github.com/RocketChat/Rocket.Chat/pull/11797) by [@Atisom](https://github.com/Atisom)) +- permissions name no break ([#11836](https://github.com/RocketChat/Rocket.Chat/pull/11836)) +- Searching by `undefined` via REST when using `query` param ([#11657](https://github.com/RocketChat/Rocket.Chat/pull/11657)) +- Fix permalink of message when running system with subdir ([#11781](https://github.com/RocketChat/Rocket.Chat/pull/11781) by [@ura14h](https://github.com/ura14h)) +- Fix links in `onTableItemClick` of the directroy page ([#11543](https://github.com/RocketChat/Rocket.Chat/pull/11543) by [@ura14h](https://github.com/ura14h)) +- App's i18nAlert is only being displayed as "i18nAlert" ([#11802](https://github.com/RocketChat/Rocket.Chat/pull/11802)) +- Removed hardcoded values. ([#11627](https://github.com/RocketChat/Rocket.Chat/pull/11627)) +- SAML is flooding logfile ([#11643](https://github.com/RocketChat/Rocket.Chat/pull/11643)) +- directory search table not clickable lines ([#11809](https://github.com/RocketChat/Rocket.Chat/pull/11809)) +- REST endpoints to update user not respecting some settings ([#11474](https://github.com/RocketChat/Rocket.Chat/pull/11474)) +- Apply Cordova fix in lazy-loaded images sources ([#11807](https://github.com/RocketChat/Rocket.Chat/pull/11807)) +- Cannot set property 'input' of undefined ([#11775](https://github.com/RocketChat/Rocket.Chat/pull/11775)) +- Missing twitter:image and og:image tags ([#11687](https://github.com/RocketChat/Rocket.Chat/pull/11687)) +- Return room ID for groups where user joined ([#11703](https://github.com/RocketChat/Rocket.Chat/pull/11703)) +- "User is typing" not working in new Livechat session ([#11670](https://github.com/RocketChat/Rocket.Chat/pull/11670)) +- wrong create date of channels and users on directory view ([#11682](https://github.com/RocketChat/Rocket.Chat/pull/11682) by [@gsperezb](https://github.com/gsperezb)) +- Escape meta data before inject in head tag ([#11730](https://github.com/RocketChat/Rocket.Chat/pull/11730)) +- minor fixes in i18n ([#11761](https://github.com/RocketChat/Rocket.Chat/pull/11761) by [@Atisom](https://github.com/Atisom)) +- Code tag duplicating characters ([#11467](https://github.com/RocketChat/Rocket.Chat/pull/11467) by [@vynmera](https://github.com/vynmera)) +- Custom sound uploader not working in Firefox and IE ([#11139](https://github.com/RocketChat/Rocket.Chat/pull/11139) by [@vynmera](https://github.com/vynmera)) +- Fixing timeAgo function on directory ([#11728](https://github.com/RocketChat/Rocket.Chat/pull/11728)) +- Render Attachment Pretext When Markdown Specified ([#11578](https://github.com/RocketChat/Rocket.Chat/pull/11578) by [@glstewart17](https://github.com/glstewart17)) +- Message attachments was not respecting sort and lost spacing ([#11740](https://github.com/RocketChat/Rocket.Chat/pull/11740)) +- Closed connections being storing on db ([#11709](https://github.com/RocketChat/Rocket.Chat/pull/11709)) +- Login logo now centered on small screens ([#11626](https://github.com/RocketChat/Rocket.Chat/pull/11626) by [@wreiske](https://github.com/wreiske)) +- Push notifications stuck after db failure ([#11667](https://github.com/RocketChat/Rocket.Chat/pull/11667)) +- Translations were not unique per app allowing conflicts among apps ([#11878](https://github.com/RocketChat/Rocket.Chat/pull/11878)) + +
+🔍 Minor changes + +- Release 0.68.5 ([#11852](https://github.com/RocketChat/Rocket.Chat/pull/11852)) +- Release 0.68.5 ([#11852](https://github.com/RocketChat/Rocket.Chat/pull/11852)) +- Fixed deutsch message pruning translations ([#11691](https://github.com/RocketChat/Rocket.Chat/pull/11691) by [@TheReal1604](https://github.com/TheReal1604)) +- Fixed the Finnish translation and removed some profanities ([#11794](https://github.com/RocketChat/Rocket.Chat/pull/11794) by [@jukper](https://github.com/jukper)) +- LingoHub based on develop ([#11838](https://github.com/RocketChat/Rocket.Chat/pull/11838)) +- Regression: Fix livechat code issues after new lint rules ([#11814](https://github.com/RocketChat/Rocket.Chat/pull/11814)) +- Do not remove package-lock.json of livechat package ([#11816](https://github.com/RocketChat/Rocket.Chat/pull/11816)) +- Run eslint and unit tests on pre-push hook ([#11815](https://github.com/RocketChat/Rocket.Chat/pull/11815)) +- Additional eslint rules ([#11804](https://github.com/RocketChat/Rocket.Chat/pull/11804)) +- Add new eslint rules (automatically fixed) ([#11800](https://github.com/RocketChat/Rocket.Chat/pull/11800)) +- Merge master into develop & Set version to 0.69.0-develop ([#11606](https://github.com/RocketChat/Rocket.Chat/pull/11606)) +- App engine merge ([#11835](https://github.com/RocketChat/Rocket.Chat/pull/11835)) +- Regression: role tag background, unread item font and message box autogrow ([#11861](https://github.com/RocketChat/Rocket.Chat/pull/11861)) + +
+ +### 👩‍💻👨‍💻 Contributors 😍 + +- [@Atisom](https://github.com/Atisom) +- [@TheReal1604](https://github.com/TheReal1604) +- [@ausminternet](https://github.com/ausminternet) +- [@crazy-max](https://github.com/crazy-max) +- [@gdelavald](https://github.com/gdelavald) +- [@glstewart17](https://github.com/glstewart17) +- [@gsperezb](https://github.com/gsperezb) +- [@jukper](https://github.com/jukper) +- [@kable-wilmoth](https://github.com/kable-wilmoth) +- [@ubarsaiyan](https://github.com/ubarsaiyan) +- [@ura14h](https://github.com/ura14h) +- [@vynmera](https://github.com/vynmera) +- [@wreiske](https://github.com/wreiske) + +### 👩‍💻👨‍💻 Core Team 🤓 + +- [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) +- [@engelgabriel](https://github.com/engelgabriel) +- [@geekgonecrazy](https://github.com/geekgonecrazy) +- [@ggazzo](https://github.com/ggazzo) +- [@graywolf336](https://github.com/graywolf336) +- [@renatobecker](https://github.com/renatobecker) +- [@rodrigok](https://github.com/rodrigok) +- [@rssilva](https://github.com/rssilva) +- [@sampaiodiego](https://github.com/sampaiodiego) +- [@tassoevan](https://github.com/tassoevan) +- [@timkinnane](https://github.com/timkinnane) + +# 0.70.4 +`2018-10-09 · 1 🐛 · 1 🔍 · 1 👩‍💻👨‍💻` + +### Engine versions +- Node: `8.11.3` +- NPM: `5.6.0` + +### 🐛 Bug fixes + +- Modal confirm on enter ([#12283](https://github.com/RocketChat/Rocket.Chat/pull/12283)) + +
+🔍 Minor changes + +- Fix: Add wizard opt-in fields ([#12298](https://github.com/RocketChat/Rocket.Chat/pull/12298)) + +
+ +### 👩‍💻👨‍💻 Core Team 🤓 + +- [@sampaiodiego](https://github.com/sampaiodiego) + +# 0.70.3 +`2018-10-08 · 1 🔍 · 2 👩‍💻👨‍💻` + +### Engine versions +- Node: `8.11.3` +- NPM: `5.6.0` + +
+🔍 Minor changes + +- Release 0.70.2 ([#12276](https://github.com/RocketChat/Rocket.Chat/pull/12276)) + +
+ +### 👩‍💻👨‍💻 Core Team 🤓 + +- [@Hudell](https://github.com/Hudell) +- [@sampaiodiego](https://github.com/sampaiodiego) + +# 0.70.2 +`2018-10-05 · 1 🐛 · 1 👩‍💻👨‍💻` + +### Engine versions +- Node: `8.11.3` +- NPM: `5.6.0` + +### 🐛 Bug fixes + +- E2E alert shows up when encryption is disabled ([#12272](https://github.com/RocketChat/Rocket.Chat/pull/12272)) + +### 👩‍💻👨‍💻 Core Team 🤓 + +- [@Hudell](https://github.com/Hudell) + +# 0.70.1 +`2018-10-05 · 8 🐛 · 5 🔍 · 11 👩‍💻👨‍💻` + +### Engine versions +- Node: `8.11.3` +- NPM: `5.6.0` + +### 🐛 Bug fixes + +- E2E data not cleared on logout ([#12254](https://github.com/RocketChat/Rocket.Chat/pull/12254)) +- E2E password request not closing after entering password ([#12232](https://github.com/RocketChat/Rocket.Chat/pull/12232)) +- Message editing was duplicating reply quotes ([#12263](https://github.com/RocketChat/Rocket.Chat/pull/12263)) +- Livechat integration with RDStation ([#12257](https://github.com/RocketChat/Rocket.Chat/pull/12257)) +- Livechat triggers being registered twice after setting department via API ([#12255](https://github.com/RocketChat/Rocket.Chat/pull/12255) by [@edzluhan](https://github.com/edzluhan)) +- Livechat CRM integration running when disabled ([#12242](https://github.com/RocketChat/Rocket.Chat/pull/12242)) +- Emails' logo and links ([#12241](https://github.com/RocketChat/Rocket.Chat/pull/12241)) +- Set default action for Setup Wizard form submit ([#12240](https://github.com/RocketChat/Rocket.Chat/pull/12240)) + +
+🔍 Minor changes + +- Release 0.70.1 ([#12270](https://github.com/RocketChat/Rocket.Chat/pull/12270) by [@edzluhan](https://github.com/edzluhan)) +- Merge master into develop & Set version to 0.71.0-develop ([#12264](https://github.com/RocketChat/Rocket.Chat/pull/12264) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) +- Regression: fix modal submit ([#12233](https://github.com/RocketChat/Rocket.Chat/pull/12233)) +- Add reetp to the issues' bot whitelist ([#12227](https://github.com/RocketChat/Rocket.Chat/pull/12227)) +- Fix: Remove semver satisfies from Apps details that is already done my marketplace ([#12268](https://github.com/RocketChat/Rocket.Chat/pull/12268)) + +
+ +### 👩‍💻👨‍💻 Contributors 😍 + +- [@edzluhan](https://github.com/edzluhan) +- [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) + +### 👩‍💻👨‍💻 Core Team 🤓 + +- [@Hudell](https://github.com/Hudell) +- [@cardoso](https://github.com/cardoso) +- [@ggazzo](https://github.com/ggazzo) +- [@renatobecker](https://github.com/renatobecker) +- [@rodrigok](https://github.com/rodrigok) +- [@sampaiodiego](https://github.com/sampaiodiego) +- [@tassoevan](https://github.com/tassoevan) +- [@theorenck](https://github.com/theorenck) +- [@timkinnane](https://github.com/timkinnane) + +# 0.70.0 +`2018-09-28 · 2 ️️️⚠️ · 18 🎉 · 3 🚀 · 31 🐛 · 21 🔍 · 33 👩‍💻👨‍💻` + +### Engine versions +- Node: `8.11.3` +- NPM: `5.6.0` + +### ⚠️ BREAKING CHANGES + +- Update the default port of the Prometheus exporter ([#11351](https://github.com/RocketChat/Rocket.Chat/pull/11351) by [@thaiphv](https://github.com/thaiphv)) +- [IMPROVE] New emails design ([#12009](https://github.com/RocketChat/Rocket.Chat/pull/12009)) + +### 🎉 New features + +- Allow multiple subcommands in MIGRATION_VERSION env variable ([#11184](https://github.com/RocketChat/Rocket.Chat/pull/11184) by [@arch119](https://github.com/arch119)) +- Support for end to end encryption ([#10094](https://github.com/RocketChat/Rocket.Chat/pull/10094)) +- Livechat Analytics and Reports ([#11238](https://github.com/RocketChat/Rocket.Chat/pull/11238) by [@pkgodara](https://github.com/pkgodara)) +- Apps: Add handlers for message updates ([#11993](https://github.com/RocketChat/Rocket.Chat/pull/11993)) +- Livechat notifications on new incoming inquiries for guest-pool ([#10588](https://github.com/RocketChat/Rocket.Chat/pull/10588)) +- Customizable default directory view ([#11965](https://github.com/RocketChat/Rocket.Chat/pull/11965) by [@ohmonster](https://github.com/ohmonster)) +- Blockstack as decentralized auth provider ([#12047](https://github.com/RocketChat/Rocket.Chat/pull/12047)) +- Livechat REST endpoints ([#11900](https://github.com/RocketChat/Rocket.Chat/pull/11900)) +- REST endpoints to get moderators from groups and channels ([#11909](https://github.com/RocketChat/Rocket.Chat/pull/11909)) +- User preference for 24- or 12-hour clock ([#11169](https://github.com/RocketChat/Rocket.Chat/pull/11169) by [@vynmera](https://github.com/vynmera)) +- REST endpoint to set groups' announcement ([#11905](https://github.com/RocketChat/Rocket.Chat/pull/11905)) +- Livechat trigger option to run only once ([#12068](https://github.com/RocketChat/Rocket.Chat/pull/12068) by [@edzluhan](https://github.com/edzluhan)) +- REST endpoints to create roles and assign roles to users ([#11855](https://github.com/RocketChat/Rocket.Chat/pull/11855) by [@aferreira44](https://github.com/aferreira44)) +- Informal German translations ([#9984](https://github.com/RocketChat/Rocket.Chat/pull/9984)) +- Apps: API provider ([#11938](https://github.com/RocketChat/Rocket.Chat/pull/11938)) +- Apps are enabled by default now ([#12189](https://github.com/RocketChat/Rocket.Chat/pull/12189)) +- Add Livechat Analytics permission ([#12184](https://github.com/RocketChat/Rocket.Chat/pull/12184)) +- WebDAV Integration (User file provider) ([#11679](https://github.com/RocketChat/Rocket.Chat/pull/11679) by [@karakayasemi](https://github.com/karakayasemi)) + +### 🚀 Improvements + +- Cache livechat get agent trigger call ([#12083](https://github.com/RocketChat/Rocket.Chat/pull/12083)) +- BigBlueButton joinViaHtml5 and video icon on sidebar ([#12107](https://github.com/RocketChat/Rocket.Chat/pull/12107)) +- Use eslint-config package ([#12044](https://github.com/RocketChat/Rocket.Chat/pull/12044)) + +### 🐛 Bug fixes + +- Livechat agent joining on pick from guest pool ([#12097](https://github.com/RocketChat/Rocket.Chat/pull/12097)) +- Apps: Add missing reactions and actions properties to app message object ([#11780](https://github.com/RocketChat/Rocket.Chat/pull/11780)) +- Broken slack compatible webhook ([#11742](https://github.com/RocketChat/Rocket.Chat/pull/11742)) +- Changing Mentions.userMentionRegex pattern to include
tag ([#12043](https://github.com/RocketChat/Rocket.Chat/pull/12043) by [@rssilva](https://github.com/rssilva)) +- Double output of message actions ([#11902](https://github.com/RocketChat/Rocket.Chat/pull/11902)) +- Login error message not obvious if user not activated ([#11785](https://github.com/RocketChat/Rocket.Chat/pull/11785) by [@crazy-max](https://github.com/crazy-max)) +- Adding scroll bar to read receipts modal ([#11919](https://github.com/RocketChat/Rocket.Chat/pull/11919) by [@rssilva](https://github.com/rssilva)) +- Fixing translation on 'yesterday' word when calling timeAgo function ([#11946](https://github.com/RocketChat/Rocket.Chat/pull/11946) by [@rssilva](https://github.com/rssilva)) +- Fixing spacement between tags and words on some labels ([#12018](https://github.com/RocketChat/Rocket.Chat/pull/12018) by [@rssilva](https://github.com/rssilva)) +- video message recording, issue #11651 ([#12031](https://github.com/RocketChat/Rocket.Chat/pull/12031) by [@flaviogrossi](https://github.com/flaviogrossi)) +- Prevent form submission in Files List search ([#11999](https://github.com/RocketChat/Rocket.Chat/pull/11999)) +- Re-add the eye-off icon ([#12079](https://github.com/RocketChat/Rocket.Chat/pull/12079) by [@MIKI785](https://github.com/MIKI785)) +- Internal error when cross-origin with CORS is disabled ([#11953](https://github.com/RocketChat/Rocket.Chat/pull/11953)) +- Message reaction in GraphQL API ([#11967](https://github.com/RocketChat/Rocket.Chat/pull/11967)) +- Direct messages leaking into logs ([#11863](https://github.com/RocketChat/Rocket.Chat/pull/11863)) +- Wrong build path in install.sh ([#11879](https://github.com/RocketChat/Rocket.Chat/pull/11879)) +- Permission check on joinRoom for private room ([#11857](https://github.com/RocketChat/Rocket.Chat/pull/11857)) +- Close popover on shortcuts and writing ([#11562](https://github.com/RocketChat/Rocket.Chat/pull/11562)) +- Typo in a configuration key for SlackBridge excluded bot names ([#11872](https://github.com/RocketChat/Rocket.Chat/pull/11872) by [@TobiasKappe](https://github.com/TobiasKappe)) +- Real Name on Direct Messages ([#12154](https://github.com/RocketChat/Rocket.Chat/pull/12154)) +- Position of popover component on mobile ([#12038](https://github.com/RocketChat/Rocket.Chat/pull/12038)) +- Duplicate email and auto-join on mentions ([#12168](https://github.com/RocketChat/Rocket.Chat/pull/12168)) +- Horizontal scroll on user info tab ([#12102](https://github.com/RocketChat/Rocket.Chat/pull/12102) by [@rssilva](https://github.com/rssilva)) +- Markdown ampersand escape on links ([#12140](https://github.com/RocketChat/Rocket.Chat/pull/12140) by [@rssilva](https://github.com/rssilva)) +- Saving user preferences ([#12170](https://github.com/RocketChat/Rocket.Chat/pull/12170)) +- Apps being able to see hidden settings ([#12159](https://github.com/RocketChat/Rocket.Chat/pull/12159)) +- Allow user with "bulk-register-user" permission to send invitations ([#12112](https://github.com/RocketChat/Rocket.Chat/pull/12112)) +- IRC Federation no longer working ([#11906](https://github.com/RocketChat/Rocket.Chat/pull/11906)) +- Files list missing from popover menu when owner of room ([#11565](https://github.com/RocketChat/Rocket.Chat/pull/11565)) +- Not able to set per-channel retention policies if no global policy is set for this channel type ([#11927](https://github.com/RocketChat/Rocket.Chat/pull/11927) by [@vynmera](https://github.com/vynmera)) +- app engine verbose log typo ([#12126](https://github.com/RocketChat/Rocket.Chat/pull/12126) by [@williamriancho](https://github.com/williamriancho)) + +
+🔍 Minor changes + +- Release 0.69.2 ([#12026](https://github.com/RocketChat/Rocket.Chat/pull/12026) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) +- LingoHub based on develop ([#11936](https://github.com/RocketChat/Rocket.Chat/pull/11936)) +- Better organize package.json ([#12115](https://github.com/RocketChat/Rocket.Chat/pull/12115)) +- Fix using wrong variable ([#12114](https://github.com/RocketChat/Rocket.Chat/pull/12114)) +- Fix the style lint ([#11991](https://github.com/RocketChat/Rocket.Chat/pull/11991)) +- Merge master into develop & Set version to 0.70.0-develop ([#11921](https://github.com/RocketChat/Rocket.Chat/pull/11921) by [@c0dzilla](https://github.com/c0dzilla) & [@rndmh3ro](https://github.com/rndmh3ro) & [@ubarsaiyan](https://github.com/ubarsaiyan) & [@vynmera](https://github.com/vynmera)) +- Release 0.69.2 ([#12026](https://github.com/RocketChat/Rocket.Chat/pull/12026) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) +- Regression: fix message box autogrow ([#12138](https://github.com/RocketChat/Rocket.Chat/pull/12138)) +- Regression: Modal height ([#12122](https://github.com/RocketChat/Rocket.Chat/pull/12122)) +- Fix: Change wording on e2e to make a little more clear ([#12124](https://github.com/RocketChat/Rocket.Chat/pull/12124)) +- Improve: Moved the e2e password request to an alert instead of a popup ([#12172](https://github.com/RocketChat/Rocket.Chat/pull/12172)) +- New: Option to change E2E key ([#12169](https://github.com/RocketChat/Rocket.Chat/pull/12169)) +- Improve: Decrypt last message ([#12173](https://github.com/RocketChat/Rocket.Chat/pull/12173)) +- Fix: e2e password visible on always-on alert message. ([#12139](https://github.com/RocketChat/Rocket.Chat/pull/12139)) +- Improve: Expose apps enable setting at `General > Apps` ([#12196](https://github.com/RocketChat/Rocket.Chat/pull/12196)) +- Fix: Message changing order when been edited with apps enabled ([#12188](https://github.com/RocketChat/Rocket.Chat/pull/12188)) +- Improve: E2E setting description and alert ([#12191](https://github.com/RocketChat/Rocket.Chat/pull/12191)) +- Improve: Do not start E2E Encryption when accessing admin as embedded ([#12192](https://github.com/RocketChat/Rocket.Chat/pull/12192)) +- Fix: Add e2e doc to the alert ([#12187](https://github.com/RocketChat/Rocket.Chat/pull/12187)) +- Improve: Switch e2e doc to target _blank ([#12195](https://github.com/RocketChat/Rocket.Chat/pull/12195)) +- Improve: Rename E2E methods ([#12175](https://github.com/RocketChat/Rocket.Chat/pull/12175)) + +
+ +### 👩‍💻👨‍💻 Contributors 😍 + +- [@MIKI785](https://github.com/MIKI785) +- [@TobiasKappe](https://github.com/TobiasKappe) +- [@aferreira44](https://github.com/aferreira44) +- [@arch119](https://github.com/arch119) +- [@c0dzilla](https://github.com/c0dzilla) +- [@crazy-max](https://github.com/crazy-max) +- [@edzluhan](https://github.com/edzluhan) +- [@flaviogrossi](https://github.com/flaviogrossi) +- [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) +- [@karakayasemi](https://github.com/karakayasemi) +- [@ohmonster](https://github.com/ohmonster) +- [@pkgodara](https://github.com/pkgodara) +- [@rndmh3ro](https://github.com/rndmh3ro) +- [@rssilva](https://github.com/rssilva) +- [@thaiphv](https://github.com/thaiphv) +- [@ubarsaiyan](https://github.com/ubarsaiyan) +- [@vynmera](https://github.com/vynmera) +- [@williamriancho](https://github.com/williamriancho) + +### 👩‍💻👨‍💻 Core Team 🤓 + +- [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) +- [@MartinSchoeler](https://github.com/MartinSchoeler) +- [@cardoso](https://github.com/cardoso) +- [@engelgabriel](https://github.com/engelgabriel) +- [@geekgonecrazy](https://github.com/geekgonecrazy) +- [@ggazzo](https://github.com/ggazzo) +- [@graywolf336](https://github.com/graywolf336) +- [@mrinaldhar](https://github.com/mrinaldhar) +- [@mrsimpson](https://github.com/mrsimpson) +- [@renatobecker](https://github.com/renatobecker) +- [@rodrigok](https://github.com/rodrigok) +- [@sampaiodiego](https://github.com/sampaiodiego) +- [@tassoevan](https://github.com/tassoevan) +- [@timkinnane](https://github.com/timkinnane) + +# 0.69.2 +`2018-09-11 · 1 🎉 · 4 🐛 · 6 👩‍💻👨‍💻` + +### Engine versions +- Node: `8.11.3` +- NPM: `5.6.0` + +### 🎉 New features + +- Include room name in stream for bots ([#11812](https://github.com/RocketChat/Rocket.Chat/pull/11812)) + +### 🐛 Bug fixes + +- Reset password link error if already logged in ([#12022](https://github.com/RocketChat/Rocket.Chat/pull/12022)) +- Apps: setting with 'code' type only saving last line ([#11992](https://github.com/RocketChat/Rocket.Chat/pull/11992)) +- Update user information not possible by admin if disabled to users ([#11955](https://github.com/RocketChat/Rocket.Chat/pull/11955) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) +- Hidden admin sidenav on embedded layout ([#12025](https://github.com/RocketChat/Rocket.Chat/pull/12025)) + +### 👩‍💻👨‍💻 Contributors 😍 + +- [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) + +### 👩‍💻👨‍💻 Core Team 🤓 + +- [@cardoso](https://github.com/cardoso) +- [@ggazzo](https://github.com/ggazzo) +- [@rodrigok](https://github.com/rodrigok) +- [@sampaiodiego](https://github.com/sampaiodiego) +- [@timkinnane](https://github.com/timkinnane) + +# 0.69.1 +`2018-08-31 · 4 🐛 · 2 👩‍💻👨‍💻` + +### Engine versions +- Node: `8.11.3` +- NPM: `5.6.0` + +### 🐛 Bug fixes + +- Hipchat import was failing when importing messages from a non existent user ([#11892](https://github.com/RocketChat/Rocket.Chat/pull/11892)) +- Hipchat importer was not importing users without emails and uploaded files ([#11910](https://github.com/RocketChat/Rocket.Chat/pull/11910)) +- App updates were not being shown correctly ([#11893](https://github.com/RocketChat/Rocket.Chat/pull/11893)) +- Duplicated message buttons ([#11853](https://github.com/RocketChat/Rocket.Chat/pull/11853) by [@ubarsaiyan](https://github.com/ubarsaiyan)) + +### 👩‍💻👨‍💻 Contributors 😍 + +- [@ubarsaiyan](https://github.com/ubarsaiyan) + +### 👩‍💻👨‍💻 Core Team 🤓 + +- [@rodrigok](https://github.com/rodrigok) + +# 0.69.0 +`2018-08-28 · 10 🎉 · 8 🚀 · 35 🐛 · 13 🔍 · 25 👩‍💻👨‍💻` + +### Engine versions +- Node: `8.11.3` +- NPM: `5.6.0` + +### 🎉 New features + +- Beta support for Big Blue Button video conferencing system ([#11837](https://github.com/RocketChat/Rocket.Chat/pull/11837)) +- Slackbridge: send attachment notifications ([#10269](https://github.com/RocketChat/Rocket.Chat/pull/10269) by [@kable-wilmoth](https://github.com/kable-wilmoth)) +- Personal access tokens for users to create API tokens ([#11638](https://github.com/RocketChat/Rocket.Chat/pull/11638)) +- REST endpoint to manage server assets ([#11697](https://github.com/RocketChat/Rocket.Chat/pull/11697)) +- Setting to enable/disable slack bridge reactions ([#10217](https://github.com/RocketChat/Rocket.Chat/pull/10217) by [@kable-wilmoth](https://github.com/kable-wilmoth)) +- Rich message text and image buttons ([#11473](https://github.com/RocketChat/Rocket.Chat/pull/11473) by [@ubarsaiyan](https://github.com/ubarsaiyan)) +- Setting to block unauthenticated access to avatars ([#9749](https://github.com/RocketChat/Rocket.Chat/pull/9749)) +- Setting to set a JS/CSS CDN ([#11779](https://github.com/RocketChat/Rocket.Chat/pull/11779)) +- Make font of unread items bolder for better contrast ([#8602](https://github.com/RocketChat/Rocket.Chat/pull/8602) by [@ausminternet](https://github.com/ausminternet)) +- Internal marketplace for apps ([#11864](https://github.com/RocketChat/Rocket.Chat/pull/11864) by [@gdelavald](https://github.com/gdelavald) & [@rssilva](https://github.com/rssilva)) + +### 🚀 Improvements + +- Start storing Livechat department within rooms ([#11733](https://github.com/RocketChat/Rocket.Chat/pull/11733)) +- Escape parameters before send them to email template ([#11644](https://github.com/RocketChat/Rocket.Chat/pull/11644)) +- Warn about push settings that need server restart ([#11784](https://github.com/RocketChat/Rocket.Chat/pull/11784)) +- Role tag UI ([#11674](https://github.com/RocketChat/Rocket.Chat/pull/11674)) +- Messagebox fix performance ([#11686](https://github.com/RocketChat/Rocket.Chat/pull/11686)) +- Add template tag #{userdn} to filter LDAP group member format ([#11662](https://github.com/RocketChat/Rocket.Chat/pull/11662) by [@crazy-max](https://github.com/crazy-max)) +- Add nyan rocket on Rocket.Chat preview Docker image ([#11684](https://github.com/RocketChat/Rocket.Chat/pull/11684)) +- Reducing `saveUser` code complexity ([#11645](https://github.com/RocketChat/Rocket.Chat/pull/11645)) + +### 🐛 Bug fixes + +- Delete removed user's subscriptions ([#10700](https://github.com/RocketChat/Rocket.Chat/pull/10700)) +- LiveChat switch department not working ([#11011](https://github.com/RocketChat/Rocket.Chat/pull/11011)) +- Some assets were pointing to nonexistent path ([#11796](https://github.com/RocketChat/Rocket.Chat/pull/11796)) +- Revoked `view-d-room` permission logics ([#11522](https://github.com/RocketChat/Rocket.Chat/pull/11522)) +- REST `im.members` endpoint not working without sort parameter ([#11821](https://github.com/RocketChat/Rocket.Chat/pull/11821)) +- Livechat rooms starting with two unread message counter ([#11834](https://github.com/RocketChat/Rocket.Chat/pull/11834)) +- Results pagination on /directory REST endpoint ([#11551](https://github.com/RocketChat/Rocket.Chat/pull/11551)) +- re-adding margin to menu icon on header ([#11778](https://github.com/RocketChat/Rocket.Chat/pull/11778) by [@rssilva](https://github.com/rssilva)) +- minor fixes in hungarian i18n ([#11797](https://github.com/RocketChat/Rocket.Chat/pull/11797) by [@Atisom](https://github.com/Atisom)) +- permissions name no break ([#11836](https://github.com/RocketChat/Rocket.Chat/pull/11836)) +- Searching by `undefined` via REST when using `query` param ([#11657](https://github.com/RocketChat/Rocket.Chat/pull/11657)) +- Fix permalink of message when running system with subdir ([#11781](https://github.com/RocketChat/Rocket.Chat/pull/11781) by [@ura14h](https://github.com/ura14h)) +- Fix links in `onTableItemClick` of the directroy page ([#11543](https://github.com/RocketChat/Rocket.Chat/pull/11543) by [@ura14h](https://github.com/ura14h)) +- App's i18nAlert is only being displayed as "i18nAlert" ([#11802](https://github.com/RocketChat/Rocket.Chat/pull/11802)) +- Removed hardcoded values. ([#11627](https://github.com/RocketChat/Rocket.Chat/pull/11627)) +- SAML is flooding logfile ([#11643](https://github.com/RocketChat/Rocket.Chat/pull/11643)) +- directory search table not clickable lines ([#11809](https://github.com/RocketChat/Rocket.Chat/pull/11809)) +- REST endpoints to update user not respecting some settings ([#11474](https://github.com/RocketChat/Rocket.Chat/pull/11474)) +- Apply Cordova fix in lazy-loaded images sources ([#11807](https://github.com/RocketChat/Rocket.Chat/pull/11807)) +- Cannot set property 'input' of undefined ([#11775](https://github.com/RocketChat/Rocket.Chat/pull/11775)) +- Missing twitter:image and og:image tags ([#11687](https://github.com/RocketChat/Rocket.Chat/pull/11687)) +- Return room ID for groups where user joined ([#11703](https://github.com/RocketChat/Rocket.Chat/pull/11703)) +- "User is typing" not working in new Livechat session ([#11670](https://github.com/RocketChat/Rocket.Chat/pull/11670)) +- wrong create date of channels and users on directory view ([#11682](https://github.com/RocketChat/Rocket.Chat/pull/11682) by [@gsperezb](https://github.com/gsperezb)) +- Escape meta data before inject in head tag ([#11730](https://github.com/RocketChat/Rocket.Chat/pull/11730)) +- minor fixes in i18n ([#11761](https://github.com/RocketChat/Rocket.Chat/pull/11761) by [@Atisom](https://github.com/Atisom)) +- Code tag duplicating characters ([#11467](https://github.com/RocketChat/Rocket.Chat/pull/11467) by [@vynmera](https://github.com/vynmera)) +- Custom sound uploader not working in Firefox and IE ([#11139](https://github.com/RocketChat/Rocket.Chat/pull/11139) by [@vynmera](https://github.com/vynmera)) +- Fixing timeAgo function on directory ([#11728](https://github.com/RocketChat/Rocket.Chat/pull/11728) by [@rssilva](https://github.com/rssilva)) +- Render Attachment Pretext When Markdown Specified ([#11578](https://github.com/RocketChat/Rocket.Chat/pull/11578) by [@glstewart17](https://github.com/glstewart17)) +- Message attachments was not respecting sort and lost spacing ([#11740](https://github.com/RocketChat/Rocket.Chat/pull/11740)) +- Closed connections being storing on db ([#11709](https://github.com/RocketChat/Rocket.Chat/pull/11709)) +- Login logo now centered on small screens ([#11626](https://github.com/RocketChat/Rocket.Chat/pull/11626) by [@wreiske](https://github.com/wreiske)) +- Push notifications stuck after db failure ([#11667](https://github.com/RocketChat/Rocket.Chat/pull/11667)) +- Translations were not unique per app allowing conflicts among apps ([#11878](https://github.com/RocketChat/Rocket.Chat/pull/11878)) + +
+🔍 Minor changes + +- Release 0.68.5 ([#11852](https://github.com/RocketChat/Rocket.Chat/pull/11852)) +- Release 0.68.5 ([#11852](https://github.com/RocketChat/Rocket.Chat/pull/11852)) +- Fixed deutsch message pruning translations ([#11691](https://github.com/RocketChat/Rocket.Chat/pull/11691) by [@TheReal1604](https://github.com/TheReal1604)) +- Fixed the Finnish translation and removed some profanities ([#11794](https://github.com/RocketChat/Rocket.Chat/pull/11794) by [@jukper](https://github.com/jukper)) +- LingoHub based on develop ([#11838](https://github.com/RocketChat/Rocket.Chat/pull/11838)) +- Regression: Fix livechat code issues after new lint rules ([#11814](https://github.com/RocketChat/Rocket.Chat/pull/11814)) +- Do not remove package-lock.json of livechat package ([#11816](https://github.com/RocketChat/Rocket.Chat/pull/11816)) +- Run eslint and unit tests on pre-push hook ([#11815](https://github.com/RocketChat/Rocket.Chat/pull/11815)) +- Additional eslint rules ([#11804](https://github.com/RocketChat/Rocket.Chat/pull/11804)) +- Add new eslint rules (automatically fixed) ([#11800](https://github.com/RocketChat/Rocket.Chat/pull/11800)) +- Merge master into develop & Set version to 0.69.0-develop ([#11606](https://github.com/RocketChat/Rocket.Chat/pull/11606)) +- App engine merge ([#11835](https://github.com/RocketChat/Rocket.Chat/pull/11835)) +- Regression: role tag background, unread item font and message box autogrow ([#11861](https://github.com/RocketChat/Rocket.Chat/pull/11861)) + +
+ +### 👩‍💻👨‍💻 Contributors 😍 + +- [@Atisom](https://github.com/Atisom) +- [@TheReal1604](https://github.com/TheReal1604) +- [@ausminternet](https://github.com/ausminternet) +- [@crazy-max](https://github.com/crazy-max) +- [@gdelavald](https://github.com/gdelavald) +- [@glstewart17](https://github.com/glstewart17) +- [@gsperezb](https://github.com/gsperezb) +- [@jukper](https://github.com/jukper) +- [@kable-wilmoth](https://github.com/kable-wilmoth) +- [@rssilva](https://github.com/rssilva) +- [@ubarsaiyan](https://github.com/ubarsaiyan) +- [@ura14h](https://github.com/ura14h) +- [@vynmera](https://github.com/vynmera) +- [@wreiske](https://github.com/wreiske) + +### 👩‍💻👨‍💻 Core Team 🤓 + +- [@Hudell](https://github.com/Hudell) +- [@MarcosSpessatto](https://github.com/MarcosSpessatto) +- [@engelgabriel](https://github.com/engelgabriel) +- [@geekgonecrazy](https://github.com/geekgonecrazy) +- [@ggazzo](https://github.com/ggazzo) +- [@graywolf336](https://github.com/graywolf336) +- [@renatobecker](https://github.com/renatobecker) +- [@rodrigok](https://github.com/rodrigok) +- [@sampaiodiego](https://github.com/sampaiodiego) +- [@tassoevan](https://github.com/tassoevan) +- [@timkinnane](https://github.com/timkinnane) + # 0.68.5 `2018-08-23 · 1 🐛 · 1 👩‍💻👨‍💻` @@ -206,7 +789,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Only escape HTML from details in toast error messages ([#11459](https://github.com/RocketChat/Rocket.Chat/pull/11459)) - broadcast channel reply ([#11462](https://github.com/RocketChat/Rocket.Chat/pull/11462)) - Fixed svg for older chrome browsers bug #11414 ([#11416](https://github.com/RocketChat/Rocket.Chat/pull/11416) by [@tpDBL](https://github.com/tpDBL)) -- Wrap custom fields in user profile to new line ([#10119](https://github.com/RocketChat/Rocket.Chat/pull/10119) by [@PhpXp](https://github.com/PhpXp)) +- Wrap custom fields in user profile to new line ([#10119](https://github.com/RocketChat/Rocket.Chat/pull/10119) by [@PhpXp](https://github.com/PhpXp) & [@karlprieb](https://github.com/karlprieb)) - Record popup ([#11349](https://github.com/RocketChat/Rocket.Chat/pull/11349))
@@ -232,6 +815,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@PhpXp](https://github.com/PhpXp) - [@arminfelder](https://github.com/arminfelder) - [@arungalva](https://github.com/arungalva) +- [@karlprieb](https://github.com/karlprieb) - [@soundstorm](https://github.com/soundstorm) - [@tpDBL](https://github.com/tpDBL) - [@vynmera](https://github.com/vynmera) @@ -246,7 +830,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@engelgabriel](https://github.com/engelgabriel) - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) -- [@karlprieb](https://github.com/karlprieb) - [@renatobecker](https://github.com/renatobecker) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -406,7 +989,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Button to remove closed LiveChat rooms ([#10301](https://github.com/RocketChat/Rocket.Chat/pull/10301)) - Update katex to v0.9.0 ([#8402](https://github.com/RocketChat/Rocket.Chat/pull/8402) by [@pitamar](https://github.com/pitamar)) - WebDAV(Nextcloud/ownCloud) Storage Server Option ([#11027](https://github.com/RocketChat/Rocket.Chat/pull/11027) by [@karakayasemi](https://github.com/karakayasemi)) -- Don't ask me again checkbox on hide room modal ([#10973](https://github.com/RocketChat/Rocket.Chat/pull/10973)) +- Don't ask me again checkbox on hide room modal ([#10973](https://github.com/RocketChat/Rocket.Chat/pull/10973) by [@karlprieb](https://github.com/karlprieb)) - Add input to set time for avatar cache control ([#10958](https://github.com/RocketChat/Rocket.Chat/pull/10958)) - Command /hide to hide channels ([#10727](https://github.com/RocketChat/Rocket.Chat/pull/10727) by [@mikaelmello](https://github.com/mikaelmello)) - Do not wait method calls response on websocket before next method call ([#11087](https://github.com/RocketChat/Rocket.Chat/pull/11087)) @@ -422,8 +1005,8 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 🚀 Improvements -- Listing of apps in the admin page ([#11166](https://github.com/RocketChat/Rocket.Chat/pull/11166) by [@gdelavald](https://github.com/gdelavald)) -- UI design for Tables and tabs component on Directory ([#11026](https://github.com/RocketChat/Rocket.Chat/pull/11026)) +- Listing of apps in the admin page ([#11166](https://github.com/RocketChat/Rocket.Chat/pull/11166) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) +- UI design for Tables and tabs component on Directory ([#11026](https://github.com/RocketChat/Rocket.Chat/pull/11026) by [@karlprieb](https://github.com/karlprieb)) - User mentions ([#11001](https://github.com/RocketChat/Rocket.Chat/pull/11001) by [@vynmera](https://github.com/vynmera)) ### 🐛 Bug fixes @@ -458,7 +1041,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Message_AllowedMaxSize fails for emoji sequences ([#10431](https://github.com/RocketChat/Rocket.Chat/pull/10431) by [@c0dzilla](https://github.com/c0dzilla)) - Can't access the `/account/profile` ([#11089](https://github.com/RocketChat/Rocket.Chat/pull/11089)) - Idle time limit wasn’t working as expected ([#11084](https://github.com/RocketChat/Rocket.Chat/pull/11084)) -- Rooms list sorting by activity multiple re-renders and case sensitive sorting alphabetically ([#9959](https://github.com/RocketChat/Rocket.Chat/pull/9959) by [@JoseRenan](https://github.com/JoseRenan)) +- Rooms list sorting by activity multiple re-renders and case sensitive sorting alphabetically ([#9959](https://github.com/RocketChat/Rocket.Chat/pull/9959) by [@JoseRenan](https://github.com/JoseRenan) & [@karlprieb](https://github.com/karlprieb)) - Notification not working for group mentions and not respecting ignored users ([#11024](https://github.com/RocketChat/Rocket.Chat/pull/11024)) - Overlapping of search text and cancel search icon (X) ([#10294](https://github.com/RocketChat/Rocket.Chat/pull/10294) by [@taeven](https://github.com/taeven)) - Link previews not being removed from messages after removed on editing ([#11063](https://github.com/RocketChat/Rocket.Chat/pull/11063)) @@ -488,11 +1071,11 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! 🔍 Minor changes - Merge master into develop & Set version to 0.66.0-develop ([#11277](https://github.com/RocketChat/Rocket.Chat/pull/11277) by [@brylie](https://github.com/brylie) & [@stuartpb](https://github.com/stuartpb)) -- Regression: Directory css ([#11206](https://github.com/RocketChat/Rocket.Chat/pull/11206)) +- Regression: Directory css ([#11206](https://github.com/RocketChat/Rocket.Chat/pull/11206) by [@karlprieb](https://github.com/karlprieb)) - LingoHub based on develop ([#11208](https://github.com/RocketChat/Rocket.Chat/pull/11208)) - IRC Federation: RFC2813 implementation (ngIRCd) ([#10113](https://github.com/RocketChat/Rocket.Chat/pull/10113) by [@cpitman](https://github.com/cpitman) & [@lindoelio](https://github.com/lindoelio)) - Add verification to make sure the user exists in REST insert object helper ([#11008](https://github.com/RocketChat/Rocket.Chat/pull/11008)) -- Regression: Directory user table infinite scroll doesn't working ([#11200](https://github.com/RocketChat/Rocket.Chat/pull/11200)) +- Regression: Directory user table infinite scroll doesn't working ([#11200](https://github.com/RocketChat/Rocket.Chat/pull/11200) by [@karlprieb](https://github.com/karlprieb)) - [FIX Readme] Nodejs + Python version spicifications ([#11181](https://github.com/RocketChat/Rocket.Chat/pull/11181) by [@mahdiyari](https://github.com/mahdiyari)) - Regression: sorting direct message by asc on favorites group ([#11090](https://github.com/RocketChat/Rocket.Chat/pull/11090)) - Fix PR Docker image creation by splitting in two build jobs ([#11107](https://github.com/RocketChat/Rocket.Chat/pull/11107)) @@ -521,7 +1104,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Develop sync commits ([#10909](https://github.com/RocketChat/Rocket.Chat/pull/10909) by [@nsuchy](https://github.com/nsuchy)) - Develop sync2 ([#10908](https://github.com/RocketChat/Rocket.Chat/pull/10908) by [@nsuchy](https://github.com/nsuchy)) - Merge master into develop & Set version to 0.66.0-develop ([#10903](https://github.com/RocketChat/Rocket.Chat/pull/10903) by [@nsuchy](https://github.com/nsuchy)) -- Regression: Fix directory table loading ([#11223](https://github.com/RocketChat/Rocket.Chat/pull/11223)) +- Regression: Fix directory table loading ([#11223](https://github.com/RocketChat/Rocket.Chat/pull/11223) by [@karlprieb](https://github.com/karlprieb)) - Regression: Fix latest and release-candidate docker images building ([#11215](https://github.com/RocketChat/Rocket.Chat/pull/11215)) - Regression: check username or usersCount on browseChannels ([#11216](https://github.com/RocketChat/Rocket.Chat/pull/11216)) - Regression: Sending message with a mention is not showing to sender ([#11211](https://github.com/RocketChat/Rocket.Chat/pull/11211)) @@ -549,6 +1132,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@jonnilundy](https://github.com/jonnilundy) - [@kable-wilmoth](https://github.com/kable-wilmoth) - [@karakayasemi](https://github.com/karakayasemi) +- [@karlprieb](https://github.com/karlprieb) - [@kb0304](https://github.com/kb0304) - [@kumarnitj](https://github.com/kumarnitj) - [@lindoelio](https://github.com/lindoelio) @@ -580,7 +1164,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@graywolf336](https://github.com/graywolf336) -- [@karlprieb](https://github.com/karlprieb) - [@rafaelks](https://github.com/rafaelks) - [@renatobecker](https://github.com/renatobecker) - [@rodrigok](https://github.com/rodrigok) @@ -649,8 +1232,8 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Implement a local password policy ([#9857](https://github.com/RocketChat/Rocket.Chat/pull/9857)) - Options to enable/disable each Livechat registration form field ([#10584](https://github.com/RocketChat/Rocket.Chat/pull/10584)) - Return the result of the `/me` endpoint within the result of the `/login` endpoint ([#10677](https://github.com/RocketChat/Rocket.Chat/pull/10677)) -- Lazy load image attachments ([#10608](https://github.com/RocketChat/Rocket.Chat/pull/10608)) -- View pinned message's attachment ([#10214](https://github.com/RocketChat/Rocket.Chat/pull/10214) by [@c0dzilla](https://github.com/c0dzilla)) +- Lazy load image attachments ([#10608](https://github.com/RocketChat/Rocket.Chat/pull/10608) by [@karlprieb](https://github.com/karlprieb)) +- View pinned message's attachment ([#10214](https://github.com/RocketChat/Rocket.Chat/pull/10214) by [@c0dzilla](https://github.com/c0dzilla) & [@karlprieb](https://github.com/karlprieb)) - Add REST API endpoint `users.getUsernameSuggestion` to get username suggestion ([#10702](https://github.com/RocketChat/Rocket.Chat/pull/10702)) - REST API endpoint `settings` now allow set colors and trigger actions ([#10488](https://github.com/RocketChat/Rocket.Chat/pull/10488) by [@ThomasRoehl](https://github.com/ThomasRoehl)) - Add REST endpoint `subscriptions.unread` to mark messages as unread ([#10778](https://github.com/RocketChat/Rocket.Chat/pull/10778)) @@ -672,7 +1255,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Internal Error when requesting user data download ([#10837](https://github.com/RocketChat/Rocket.Chat/pull/10837)) - Broadcast channels were showing reply button for deleted messages and generating wrong reply links some times ([#10835](https://github.com/RocketChat/Rocket.Chat/pull/10835)) - User's preference `Unread on Top` wasn't working for LiveChat rooms ([#10734](https://github.com/RocketChat/Rocket.Chat/pull/10734)) -- Cancel button wasn't working while uploading file ([#10715](https://github.com/RocketChat/Rocket.Chat/pull/10715) by [@Mr-Gryphon](https://github.com/Mr-Gryphon)) +- Cancel button wasn't working while uploading file ([#10715](https://github.com/RocketChat/Rocket.Chat/pull/10715) by [@Mr-Gryphon](https://github.com/Mr-Gryphon) & [@karlprieb](https://github.com/karlprieb)) - Missing pagination fields in the response of REST /directory endpoint ([#10840](https://github.com/RocketChat/Rocket.Chat/pull/10840)) - Layout badge cutting on unread messages for long names ([#10846](https://github.com/RocketChat/Rocket.Chat/pull/10846) by [@kos4live](https://github.com/kos4live)) - Slack-Bridge bug when migrating to 0.64.1 ([#10875](https://github.com/RocketChat/Rocket.Chat/pull/10875)) @@ -682,7 +1265,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5!
🔍 Minor changes -- Release 0.65.0 ([#10893](https://github.com/RocketChat/Rocket.Chat/pull/10893) by [@Sameesunkaria](https://github.com/Sameesunkaria) & [@erhan-](https://github.com/erhan-) & [@gdelavald](https://github.com/gdelavald) & [@peccu](https://github.com/peccu) & [@winterstefan](https://github.com/winterstefan)) +- Release 0.65.0 ([#10893](https://github.com/RocketChat/Rocket.Chat/pull/10893) by [@Sameesunkaria](https://github.com/Sameesunkaria) & [@erhan-](https://github.com/erhan-) & [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb) & [@peccu](https://github.com/peccu) & [@winterstefan](https://github.com/winterstefan)) - Apps: Command Previews, Message and Room Removal Events ([#10822](https://github.com/RocketChat/Rocket.Chat/pull/10822)) - Develop sync ([#10815](https://github.com/RocketChat/Rocket.Chat/pull/10815) by [@nsuchy](https://github.com/nsuchy)) - Major dependencies update ([#10661](https://github.com/RocketChat/Rocket.Chat/pull/10661)) @@ -710,6 +1293,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@chuckAtCataworx](https://github.com/chuckAtCataworx) - [@erhan-](https://github.com/erhan-) - [@gdelavald](https://github.com/gdelavald) +- [@karlprieb](https://github.com/karlprieb) - [@kos4live](https://github.com/kos4live) - [@nsuchy](https://github.com/nsuchy) - [@peccu](https://github.com/peccu) @@ -725,7 +1309,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@graywolf336](https://github.com/graywolf336) -- [@karlprieb](https://github.com/karlprieb) - [@rafaelks](https://github.com/rafaelks) - [@renatobecker](https://github.com/renatobecker) - [@rodrigok](https://github.com/rodrigok) @@ -742,11 +1325,11 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Add REST endpoints `channels.roles` & `groups.roles` ([#10607](https://github.com/RocketChat/Rocket.Chat/pull/10607)) - Add more options for Wordpress OAuth configuration ([#10724](https://github.com/RocketChat/Rocket.Chat/pull/10724)) -- Setup Wizard ([#10523](https://github.com/RocketChat/Rocket.Chat/pull/10523)) +- Setup Wizard ([#10523](https://github.com/RocketChat/Rocket.Chat/pull/10523) by [@karlprieb](https://github.com/karlprieb)) - Improvements to notifications logic ([#10686](https://github.com/RocketChat/Rocket.Chat/pull/10686)) - Add REST endpoints `channels.roles` & `groups.roles` ([#10607](https://github.com/RocketChat/Rocket.Chat/pull/10607)) - Add more options for Wordpress OAuth configuration ([#10724](https://github.com/RocketChat/Rocket.Chat/pull/10724)) -- Setup Wizard ([#10523](https://github.com/RocketChat/Rocket.Chat/pull/10523)) +- Setup Wizard ([#10523](https://github.com/RocketChat/Rocket.Chat/pull/10523) by [@karlprieb](https://github.com/karlprieb)) - Improvements to notifications logic ([#10686](https://github.com/RocketChat/Rocket.Chat/pull/10686)) ### 🐛 Bug fixes @@ -771,7 +1354,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5!
🔍 Minor changes -- Release 0.64.2 ([#10812](https://github.com/RocketChat/Rocket.Chat/pull/10812) by [@Sameesunkaria](https://github.com/Sameesunkaria) & [@erhan-](https://github.com/erhan-) & [@gdelavald](https://github.com/gdelavald) & [@peccu](https://github.com/peccu) & [@winterstefan](https://github.com/winterstefan)) +- Release 0.64.2 ([#10812](https://github.com/RocketChat/Rocket.Chat/pull/10812) by [@Sameesunkaria](https://github.com/Sameesunkaria) & [@erhan-](https://github.com/erhan-) & [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb) & [@peccu](https://github.com/peccu) & [@winterstefan](https://github.com/winterstefan)) - Prometheus: Add metric to track hooks time ([#10798](https://github.com/RocketChat/Rocket.Chat/pull/10798)) - Regression: Autorun of wizard was not destroyed after completion ([#10802](https://github.com/RocketChat/Rocket.Chat/pull/10802)) - Prometheus: Fix notification metric ([#10803](https://github.com/RocketChat/Rocket.Chat/pull/10803)) @@ -810,6 +1393,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@Sameesunkaria](https://github.com/Sameesunkaria) - [@erhan-](https://github.com/erhan-) - [@gdelavald](https://github.com/gdelavald) +- [@karlprieb](https://github.com/karlprieb) - [@peccu](https://github.com/peccu) - [@winterstefan](https://github.com/winterstefan) @@ -819,7 +1403,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@MarcosSpessatto](https://github.com/MarcosSpessatto) - [@cardoso](https://github.com/cardoso) - [@engelgabriel](https://github.com/engelgabriel) -- [@karlprieb](https://github.com/karlprieb) - [@rafaelks](https://github.com/rafaelks) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -878,7 +1461,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Option to mute group mentions (@all and @here) ([#10502](https://github.com/RocketChat/Rocket.Chat/pull/10502)) - GDPR - Right to access and Data Portability ([#9906](https://github.com/RocketChat/Rocket.Chat/pull/9906)) - Broadcast Channels ([#9950](https://github.com/RocketChat/Rocket.Chat/pull/9950)) -- Option to ignore users on channels ([#10517](https://github.com/RocketChat/Rocket.Chat/pull/10517) by [@gdelavald](https://github.com/gdelavald)) +- Option to ignore users on channels ([#10517](https://github.com/RocketChat/Rocket.Chat/pull/10517) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) - Search Provider Framework ([#10110](https://github.com/RocketChat/Rocket.Chat/pull/10110) by [@tkurz](https://github.com/tkurz)) - REST API endpoint `/directory` ([#10442](https://github.com/RocketChat/Rocket.Chat/pull/10442)) - Body of the payload on an incoming webhook is included on the request object ([#10259](https://github.com/RocketChat/Rocket.Chat/pull/10259)) @@ -904,36 +1487,36 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Rename method to clean history of messages ([#10498](https://github.com/RocketChat/Rocket.Chat/pull/10498)) - REST spotlight API wasn't allowing searches with # and @ ([#10410](https://github.com/RocketChat/Rocket.Chat/pull/10410)) - Dropdown elements were using old styles ([#10482](https://github.com/RocketChat/Rocket.Chat/pull/10482) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) -- Directory sort and column sizes were wrong ([#10403](https://github.com/RocketChat/Rocket.Chat/pull/10403)) +- Directory sort and column sizes were wrong ([#10403](https://github.com/RocketChat/Rocket.Chat/pull/10403) by [@karlprieb](https://github.com/karlprieb)) - REST API OAuth services endpoint were missing fields and flag to indicate custom services ([#10299](https://github.com/RocketChat/Rocket.Chat/pull/10299)) -- Error messages weren't been displayed when email verification fails ([#10446](https://github.com/RocketChat/Rocket.Chat/pull/10446)) -- Wrong column positions in the directory search for users ([#10454](https://github.com/RocketChat/Rocket.Chat/pull/10454) by [@lunaticmonk](https://github.com/lunaticmonk)) +- Error messages weren't been displayed when email verification fails ([#10446](https://github.com/RocketChat/Rocket.Chat/pull/10446) by [@karlprieb](https://github.com/karlprieb)) +- Wrong column positions in the directory search for users ([#10454](https://github.com/RocketChat/Rocket.Chat/pull/10454) by [@karlprieb](https://github.com/karlprieb) & [@lunaticmonk](https://github.com/lunaticmonk)) - Custom fields was misaligned in registration form ([#10463](https://github.com/RocketChat/Rocket.Chat/pull/10463) by [@dschuan](https://github.com/dschuan)) - Unique identifier file not really being unique ([#10341](https://github.com/RocketChat/Rocket.Chat/pull/10341) by [@abernix](https://github.com/abernix)) - Empty panel after changing a user's username ([#10404](https://github.com/RocketChat/Rocket.Chat/pull/10404)) - Russian translation of "False" ([#10418](https://github.com/RocketChat/Rocket.Chat/pull/10418) by [@strangerintheq](https://github.com/strangerintheq)) - Links being embedded inside of blockquotes ([#10496](https://github.com/RocketChat/Rocket.Chat/pull/10496) by [@gdelavald](https://github.com/gdelavald)) - The 'channel.messages' REST API Endpoint error ([#10485](https://github.com/RocketChat/Rocket.Chat/pull/10485)) -- Button on user info contextual bar scrolling with the content ([#10358](https://github.com/RocketChat/Rocket.Chat/pull/10358) by [@okaybroda](https://github.com/okaybroda)) +- Button on user info contextual bar scrolling with the content ([#10358](https://github.com/RocketChat/Rocket.Chat/pull/10358) by [@karlprieb](https://github.com/karlprieb) & [@okaybroda](https://github.com/okaybroda)) - "Idle Time Limit" using milliseconds instead of seconds ([#9824](https://github.com/RocketChat/Rocket.Chat/pull/9824) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) - Missing i18n translation key for "Unread" ([#10387](https://github.com/RocketChat/Rocket.Chat/pull/10387)) - Owner unable to delete channel or group from APIs ([#9729](https://github.com/RocketChat/Rocket.Chat/pull/9729) by [@c0dzilla](https://github.com/c0dzilla)) - Livechat translation files being ignored ([#10369](https://github.com/RocketChat/Rocket.Chat/pull/10369)) -- Missing page "not found" ([#6673](https://github.com/RocketChat/Rocket.Chat/pull/6673) by [@Prakharsvnit](https://github.com/Prakharsvnit)) +- Missing page "not found" ([#6673](https://github.com/RocketChat/Rocket.Chat/pull/6673) by [@Prakharsvnit](https://github.com/Prakharsvnit) & [@karlprieb](https://github.com/karlprieb)) - "Highlight Words" wasn't working with more than one word ([#10083](https://github.com/RocketChat/Rocket.Chat/pull/10083) by [@gdelavald](https://github.com/gdelavald) & [@nemaniarjun](https://github.com/nemaniarjun)) -- Missing "Administration" menu for user with manage-emoji permission ([#10171](https://github.com/RocketChat/Rocket.Chat/pull/10171) by [@c0dzilla](https://github.com/c0dzilla)) -- Message view mode setting was missing at user's preferences ([#10395](https://github.com/RocketChat/Rocket.Chat/pull/10395) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) -- Profile image was not being shown in user's directory search ([#10399](https://github.com/RocketChat/Rocket.Chat/pull/10399) by [@lunaticmonk](https://github.com/lunaticmonk)) -- Wrong positioning of popover when using RTL languages ([#10428](https://github.com/RocketChat/Rocket.Chat/pull/10428)) -- Messages was grouping wrong some times when server is slow ([#10472](https://github.com/RocketChat/Rocket.Chat/pull/10472) by [@gdelavald](https://github.com/gdelavald)) +- Missing "Administration" menu for user with manage-emoji permission ([#10171](https://github.com/RocketChat/Rocket.Chat/pull/10171) by [@c0dzilla](https://github.com/c0dzilla) & [@karlprieb](https://github.com/karlprieb)) +- Message view mode setting was missing at user's preferences ([#10395](https://github.com/RocketChat/Rocket.Chat/pull/10395) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) & [@karlprieb](https://github.com/karlprieb)) +- Profile image was not being shown in user's directory search ([#10399](https://github.com/RocketChat/Rocket.Chat/pull/10399) by [@karlprieb](https://github.com/karlprieb) & [@lunaticmonk](https://github.com/lunaticmonk)) +- Wrong positioning of popover when using RTL languages ([#10428](https://github.com/RocketChat/Rocket.Chat/pull/10428) by [@karlprieb](https://github.com/karlprieb)) +- Messages was grouping wrong some times when server is slow ([#10472](https://github.com/RocketChat/Rocket.Chat/pull/10472) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) - GitLab authentication scope was too open, reduced to read only access ([#10225](https://github.com/RocketChat/Rocket.Chat/pull/10225)) - Renaming agent's username within Livechat's department ([#10344](https://github.com/RocketChat/Rocket.Chat/pull/10344)) -- Missing RocketApps input types ([#10394](https://github.com/RocketChat/Rocket.Chat/pull/10394)) +- Missing RocketApps input types ([#10394](https://github.com/RocketChat/Rocket.Chat/pull/10394) by [@karlprieb](https://github.com/karlprieb)) - Livechat desktop notifications not being displayed ([#10221](https://github.com/RocketChat/Rocket.Chat/pull/10221)) -- Autocomplete list when inviting a user was partial hidden ([#10409](https://github.com/RocketChat/Rocket.Chat/pull/10409)) -- Remove a user from the user's list when creating a new channel removes the wrong user ([#10423](https://github.com/RocketChat/Rocket.Chat/pull/10423) by [@gdelavald](https://github.com/gdelavald)) +- Autocomplete list when inviting a user was partial hidden ([#10409](https://github.com/RocketChat/Rocket.Chat/pull/10409) by [@karlprieb](https://github.com/karlprieb)) +- Remove a user from the user's list when creating a new channel removes the wrong user ([#10423](https://github.com/RocketChat/Rocket.Chat/pull/10423) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) - Room's name was cutting instead of having ellipses on sidebar ([#10430](https://github.com/RocketChat/Rocket.Chat/pull/10430)) -- Button to delete rooms by the owners wasn't appearing ([#10438](https://github.com/RocketChat/Rocket.Chat/pull/10438)) +- Button to delete rooms by the owners wasn't appearing ([#10438](https://github.com/RocketChat/Rocket.Chat/pull/10438) by [@karlprieb](https://github.com/karlprieb)) - Updated OpenShift Template to take an Image as a Param ([#9946](https://github.com/RocketChat/Rocket.Chat/pull/9946) by [@christianh814](https://github.com/christianh814)) - Incoming integrations being able to trigger an empty message with a GET ([#9576](https://github.com/RocketChat/Rocket.Chat/pull/9576)) - Snaps installations are breaking on avatar requests ([#10390](https://github.com/RocketChat/Rocket.Chat/pull/10390)) @@ -989,6 +1572,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@dschuan](https://github.com/dschuan) - [@gdelavald](https://github.com/gdelavald) - [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) +- [@karlprieb](https://github.com/karlprieb) - [@lunaticmonk](https://github.com/lunaticmonk) - [@nemaniarjun](https://github.com/nemaniarjun) - [@nsuchy](https://github.com/nsuchy) @@ -1008,7 +1592,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@graywolf336](https://github.com/graywolf336) -- [@karlprieb](https://github.com/karlprieb) - [@rafaelks](https://github.com/rafaelks) - [@renatobecker](https://github.com/renatobecker) - [@rodrigok](https://github.com/rodrigok) @@ -1110,16 +1693,16 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Audio recording as mp3 and better ui for recording ([#9726](https://github.com/RocketChat/Rocket.Chat/pull/9726) by [@kb0304](https://github.com/kb0304)) - Setting to configure max delta for 2fa ([#9732](https://github.com/RocketChat/Rocket.Chat/pull/9732)) - Livechat webhook request on message ([#9870](https://github.com/RocketChat/Rocket.Chat/pull/9870) by [@hmagarotto](https://github.com/hmagarotto)) -- Announcement bar color wasn't using color from theming variables ([#9367](https://github.com/RocketChat/Rocket.Chat/pull/9367) by [@cyclops24](https://github.com/cyclops24)) +- Announcement bar color wasn't using color from theming variables ([#9367](https://github.com/RocketChat/Rocket.Chat/pull/9367) by [@cyclops24](https://github.com/cyclops24) & [@karlprieb](https://github.com/karlprieb)) ### 🐛 Bug fixes - Audio Message UI fixes ([#10303](https://github.com/RocketChat/Rocket.Chat/pull/10303) by [@kb0304](https://github.com/kb0304)) -- "View All Members" button inside channel's "User Info" is over sized ([#10012](https://github.com/RocketChat/Rocket.Chat/pull/10012)) +- "View All Members" button inside channel's "User Info" is over sized ([#10012](https://github.com/RocketChat/Rocket.Chat/pull/10012) by [@karlprieb](https://github.com/karlprieb)) - Apostrophe-containing URL misparsed" ([#10242](https://github.com/RocketChat/Rocket.Chat/pull/10242)) - user status on sidenav ([#10222](https://github.com/RocketChat/Rocket.Chat/pull/10222)) -- Dynamic CSS script isn't working on older browsers ([#10152](https://github.com/RocketChat/Rocket.Chat/pull/10152)) -- Extended view mode on sidebar ([#10160](https://github.com/RocketChat/Rocket.Chat/pull/10160)) +- Dynamic CSS script isn't working on older browsers ([#10152](https://github.com/RocketChat/Rocket.Chat/pull/10152) by [@karlprieb](https://github.com/karlprieb)) +- Extended view mode on sidebar ([#10160](https://github.com/RocketChat/Rocket.Chat/pull/10160) by [@karlprieb](https://github.com/karlprieb)) - Cannot answer to a livechat as a manager if agent has not answered yet ([#10082](https://github.com/RocketChat/Rocket.Chat/pull/10082) by [@kb0304](https://github.com/kb0304)) - User status missing on user info ([#9866](https://github.com/RocketChat/Rocket.Chat/pull/9866) by [@lunaticmonk](https://github.com/lunaticmonk)) - Name of files in file upload list cuts down at bottom due to overflow ([#9672](https://github.com/RocketChat/Rocket.Chat/pull/9672) by [@lunaticmonk](https://github.com/lunaticmonk)) @@ -1130,12 +1713,12 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Broken video call accept dialog ([#9872](https://github.com/RocketChat/Rocket.Chat/pull/9872) by [@ramrami](https://github.com/ramrami)) - Wrong switch button border color ([#10081](https://github.com/RocketChat/Rocket.Chat/pull/10081) by [@kb0304](https://github.com/kb0304)) - Nextcloud as custom oauth provider wasn't mapping data correctly ([#10090](https://github.com/RocketChat/Rocket.Chat/pull/10090)) -- Missing sidebar default options on admin ([#10016](https://github.com/RocketChat/Rocket.Chat/pull/10016)) +- Missing sidebar default options on admin ([#10016](https://github.com/RocketChat/Rocket.Chat/pull/10016) by [@karlprieb](https://github.com/karlprieb)) - Able to react with invalid emoji ([#8667](https://github.com/RocketChat/Rocket.Chat/pull/8667) by [@mutdmour](https://github.com/mutdmour)) - User preferences can't be saved when roles are hidden in admin settings ([#10051](https://github.com/RocketChat/Rocket.Chat/pull/10051)) - Browser was auto-filling values when editing another user profile ([#9932](https://github.com/RocketChat/Rocket.Chat/pull/9932) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) -- Avatar input was accepting not supported image types ([#10011](https://github.com/RocketChat/Rocket.Chat/pull/10011)) -- Initial loading feedback was missing ([#10028](https://github.com/RocketChat/Rocket.Chat/pull/10028)) +- Avatar input was accepting not supported image types ([#10011](https://github.com/RocketChat/Rocket.Chat/pull/10011) by [@karlprieb](https://github.com/karlprieb)) +- Initial loading feedback was missing ([#10028](https://github.com/RocketChat/Rocket.Chat/pull/10028) by [@karlprieb](https://github.com/karlprieb)) - File had redirect delay when using external storage services and no option to proxy only avatars ([#10272](https://github.com/RocketChat/Rocket.Chat/pull/10272)) - Missing pt-BR translations ([#10262](https://github.com/RocketChat/Rocket.Chat/pull/10262)) - /me REST endpoint was missing user roles and preferences ([#10240](https://github.com/RocketChat/Rocket.Chat/pull/10240)) @@ -1148,7 +1731,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5!
🔍 Minor changes -- Release 0.63.0 ([#10324](https://github.com/RocketChat/Rocket.Chat/pull/10324) by [@Joe-mcgee](https://github.com/Joe-mcgee) & [@TopHattedCat](https://github.com/TopHattedCat) & [@hmagarotto](https://github.com/hmagarotto) & [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) & [@kb0304](https://github.com/kb0304) & [@lunaticmonk](https://github.com/lunaticmonk) & [@ramrami](https://github.com/ramrami)) +- Release 0.63.0 ([#10324](https://github.com/RocketChat/Rocket.Chat/pull/10324) by [@Joe-mcgee](https://github.com/Joe-mcgee) & [@TopHattedCat](https://github.com/TopHattedCat) & [@hmagarotto](https://github.com/hmagarotto) & [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) & [@karlprieb](https://github.com/karlprieb) & [@kb0304](https://github.com/kb0304) & [@lunaticmonk](https://github.com/lunaticmonk) & [@ramrami](https://github.com/ramrami)) - Fix: Reaction endpoint/api only working with regular emojis ([#10323](https://github.com/RocketChat/Rocket.Chat/pull/10323)) - Bump snap version to include security fix ([#10313](https://github.com/RocketChat/Rocket.Chat/pull/10313)) - Update Meteor to 1.6.1.1 ([#10314](https://github.com/RocketChat/Rocket.Chat/pull/10314)) @@ -1159,7 +1742,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Add forums as a place to suggest, discuss and upvote features ([#10148](https://github.com/RocketChat/Rocket.Chat/pull/10148) by [@SeanPackham](https://github.com/SeanPackham)) - Fix tests breaking randomly ([#10065](https://github.com/RocketChat/Rocket.Chat/pull/10065)) - [OTHER] Reactivate all tests ([#10036](https://github.com/RocketChat/Rocket.Chat/pull/10036)) -- [OTHER] Reactivate API tests ([#9844](https://github.com/RocketChat/Rocket.Chat/pull/9844)) +- [OTHER] Reactivate API tests ([#9844](https://github.com/RocketChat/Rocket.Chat/pull/9844) by [@karlprieb](https://github.com/karlprieb)) - Start 0.63.0-develop / develop sync from master ([#9985](https://github.com/RocketChat/Rocket.Chat/pull/9985)) - Fix: Renaming channels.notifications Get/Post endpoints ([#10257](https://github.com/RocketChat/Rocket.Chat/pull/10257)) - Fix caddy download link to pull from github ([#10260](https://github.com/RocketChat/Rocket.Chat/pull/10260)) @@ -1181,6 +1764,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@cyclops24](https://github.com/cyclops24) - [@hmagarotto](https://github.com/hmagarotto) - [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) +- [@karlprieb](https://github.com/karlprieb) - [@kb0304](https://github.com/kb0304) - [@lunaticmonk](https://github.com/lunaticmonk) - [@mutdmour](https://github.com/mutdmour) @@ -1195,7 +1779,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@graywolf336](https://github.com/graywolf336) -- [@karlprieb](https://github.com/karlprieb) - [@pierreozoux](https://github.com/pierreozoux) - [@renatobecker](https://github.com/renatobecker) - [@rodrigok](https://github.com/rodrigok) @@ -1244,7 +1827,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 🐛 Bug fixes - Delete user without username was removing direct rooms of all users ([#9986](https://github.com/RocketChat/Rocket.Chat/pull/9986)) -- New channel page on medium size screens ([#9988](https://github.com/RocketChat/Rocket.Chat/pull/9988)) +- New channel page on medium size screens ([#9988](https://github.com/RocketChat/Rocket.Chat/pull/9988) by [@karlprieb](https://github.com/karlprieb)) - Empty sidenav when sorting by activity and there is a subscription without room ([#9960](https://github.com/RocketChat/Rocket.Chat/pull/9960)) - Two factor authentication modal was not showing ([#9982](https://github.com/RocketChat/Rocket.Chat/pull/9982)) @@ -1255,10 +1838,13 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5!
+### 👩‍💻👨‍💻 Contributors 😍 + +- [@karlprieb](https://github.com/karlprieb) + ### 👩‍💻👨‍💻 Core Team 🤓 - [@ggazzo](https://github.com/ggazzo) -- [@karlprieb](https://github.com/karlprieb) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -1277,9 +1863,9 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Version update check ([#9793](https://github.com/RocketChat/Rocket.Chat/pull/9793)) - General alert banner ([#9778](https://github.com/RocketChat/Rocket.Chat/pull/9778)) -- Browse more channels / Directory ([#9642](https://github.com/RocketChat/Rocket.Chat/pull/9642)) +- Browse more channels / Directory ([#9642](https://github.com/RocketChat/Rocket.Chat/pull/9642) by [@karlprieb](https://github.com/karlprieb)) - Add user settings / preferences API endpoint ([#9457](https://github.com/RocketChat/Rocket.Chat/pull/9457) by [@jgtoriginal](https://github.com/jgtoriginal)) -- New sidebar layout ([#9608](https://github.com/RocketChat/Rocket.Chat/pull/9608)) +- New sidebar layout ([#9608](https://github.com/RocketChat/Rocket.Chat/pull/9608) by [@karlprieb](https://github.com/karlprieb)) - Message read receipts ([#9717](https://github.com/RocketChat/Rocket.Chat/pull/9717)) - Alert admins when user requires approval & alert users when the account is approved/activated/deactivated ([#7098](https://github.com/RocketChat/Rocket.Chat/pull/7098) by [@luisfn](https://github.com/luisfn)) - Allow configuration of SAML logout behavior ([#9527](https://github.com/RocketChat/Rocket.Chat/pull/9527)) @@ -1303,8 +1889,8 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 🐛 Bug fixes - Typo on french translation for "Open" ([#9934](https://github.com/RocketChat/Rocket.Chat/pull/9934) by [@sizrar](https://github.com/sizrar)) -- Wrong behavior of rooms info's *Read Only* and *Collaborative* buttons ([#9665](https://github.com/RocketChat/Rocket.Chat/pull/9665)) -- Close button on file upload bar was not working ([#9662](https://github.com/RocketChat/Rocket.Chat/pull/9662)) +- Wrong behavior of rooms info's *Read Only* and *Collaborative* buttons ([#9665](https://github.com/RocketChat/Rocket.Chat/pull/9665) by [@karlprieb](https://github.com/karlprieb)) +- Close button on file upload bar was not working ([#9662](https://github.com/RocketChat/Rocket.Chat/pull/9662) by [@karlprieb](https://github.com/karlprieb)) - Chrome 64 breaks jitsi-meet iframe ([#9560](https://github.com/RocketChat/Rocket.Chat/pull/9560) by [@speedy01](https://github.com/speedy01)) - Harmonize channel-related actions ([#9697](https://github.com/RocketChat/Rocket.Chat/pull/9697)) - Custom emoji was cropping sometimes ([#9676](https://github.com/RocketChat/Rocket.Chat/pull/9676) by [@anu-007](https://github.com/anu-007)) @@ -1336,8 +1922,8 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! 🔍 Minor changes - Release 0.62.0 ([#9935](https://github.com/RocketChat/Rocket.Chat/pull/9935)) -- Regression: Fix livechat queue link ([#9928](https://github.com/RocketChat/Rocket.Chat/pull/9928)) -- Regression: Directory now list default channel ([#9931](https://github.com/RocketChat/Rocket.Chat/pull/9931)) +- Regression: Fix livechat queue link ([#9928](https://github.com/RocketChat/Rocket.Chat/pull/9928) by [@karlprieb](https://github.com/karlprieb)) +- Regression: Directory now list default channel ([#9931](https://github.com/RocketChat/Rocket.Chat/pull/9931) by [@karlprieb](https://github.com/karlprieb)) - Improve link handling for attachments ([#9908](https://github.com/RocketChat/Rocket.Chat/pull/9908)) - Regression: Misplaced language dropdown in user preferences panel ([#9883](https://github.com/RocketChat/Rocket.Chat/pull/9883) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) - Fix RHCC image path for OpenShift and default to the current namespace. ([#9901](https://github.com/RocketChat/Rocket.Chat/pull/9901) by [@jsm84](https://github.com/jsm84)) @@ -1345,18 +1931,18 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [OTHER] Rocket.Chat Apps ([#9666](https://github.com/RocketChat/Rocket.Chat/pull/9666)) - Move NRR package to inside the project and convert from CoffeeScript ([#9753](https://github.com/RocketChat/Rocket.Chat/pull/9753)) - Update to meteor 1.6.1 ([#9546](https://github.com/RocketChat/Rocket.Chat/pull/9546)) -- Regression: Avatar now open account related options ([#9843](https://github.com/RocketChat/Rocket.Chat/pull/9843)) -- Regression: Open search using ctrl/cmd + p and ctrl/cmd + k ([#9837](https://github.com/RocketChat/Rocket.Chat/pull/9837)) -- Regression: Search bar is now full width ([#9839](https://github.com/RocketChat/Rocket.Chat/pull/9839)) +- Regression: Avatar now open account related options ([#9843](https://github.com/RocketChat/Rocket.Chat/pull/9843) by [@karlprieb](https://github.com/karlprieb)) +- Regression: Open search using ctrl/cmd + p and ctrl/cmd + k ([#9837](https://github.com/RocketChat/Rocket.Chat/pull/9837) by [@karlprieb](https://github.com/karlprieb)) +- Regression: Search bar is now full width ([#9839](https://github.com/RocketChat/Rocket.Chat/pull/9839) by [@karlprieb](https://github.com/karlprieb)) - Dependencies update ([#9811](https://github.com/RocketChat/Rocket.Chat/pull/9811)) - Fix: Custom fields not showing on user info panel ([#9821](https://github.com/RocketChat/Rocket.Chat/pull/9821)) - Regression: Page was not respecting the window height on Firefox ([#9804](https://github.com/RocketChat/Rocket.Chat/pull/9804)) - Update bot-config.yml ([#9784](https://github.com/RocketChat/Rocket.Chat/pull/9784)) - Develop fix sync from master ([#9797](https://github.com/RocketChat/Rocket.Chat/pull/9797)) -- Regression: Change create channel icon ([#9851](https://github.com/RocketChat/Rocket.Chat/pull/9851)) -- Regression: Fix channel icons on safari ([#9852](https://github.com/RocketChat/Rocket.Chat/pull/9852)) -- Regression: Fix admin/user settings item text ([#9845](https://github.com/RocketChat/Rocket.Chat/pull/9845)) -- Regression: Improve sidebar filter ([#9905](https://github.com/RocketChat/Rocket.Chat/pull/9905)) +- Regression: Change create channel icon ([#9851](https://github.com/RocketChat/Rocket.Chat/pull/9851) by [@karlprieb](https://github.com/karlprieb)) +- Regression: Fix channel icons on safari ([#9852](https://github.com/RocketChat/Rocket.Chat/pull/9852) by [@karlprieb](https://github.com/karlprieb)) +- Regression: Fix admin/user settings item text ([#9845](https://github.com/RocketChat/Rocket.Chat/pull/9845) by [@karlprieb](https://github.com/karlprieb)) +- Regression: Improve sidebar filter ([#9905](https://github.com/RocketChat/Rocket.Chat/pull/9905) by [@karlprieb](https://github.com/karlprieb)) - [OTHER] Fix Apps not working on multi-instance deployments ([#9902](https://github.com/RocketChat/Rocket.Chat/pull/9902)) - [Fix] Not Translated Phrases ([#9877](https://github.com/RocketChat/Rocket.Chat/pull/9877) by [@bernardoetrevisan](https://github.com/bernardoetrevisan)) - Regression: Overlapping header in user profile panel ([#9889](https://github.com/RocketChat/Rocket.Chat/pull/9889) by [@kaiiiiiiiii](https://github.com/kaiiiiiiiii)) @@ -1380,6 +1966,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@jsm84](https://github.com/jsm84) - [@kaiiiiiiiii](https://github.com/kaiiiiiiiii) - [@kamilkisiela](https://github.com/kamilkisiela) +- [@karlprieb](https://github.com/karlprieb) - [@kb0304](https://github.com/kb0304) - [@kemitchell](https://github.com/kemitchell) - [@lindoelio](https://github.com/lindoelio) @@ -1402,7 +1989,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@graywolf336](https://github.com/graywolf336) -- [@karlprieb](https://github.com/karlprieb) - [@mrsimpson](https://github.com/mrsimpson) - [@rafaelks](https://github.com/rafaelks) - [@renatobecker](https://github.com/renatobecker) @@ -1466,17 +2052,17 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 🎉 New features -- Contextual Bar Redesign ([#8411](https://github.com/RocketChat/Rocket.Chat/pull/8411)) +- Contextual Bar Redesign ([#8411](https://github.com/RocketChat/Rocket.Chat/pull/8411) by [@karlprieb](https://github.com/karlprieb)) - Update documentation: provide example for multiple basedn ([#9442](https://github.com/RocketChat/Rocket.Chat/pull/9442) by [@rndmh3ro](https://github.com/rndmh3ro)) -- Sidebar menu option to mark room as unread ([#9216](https://github.com/RocketChat/Rocket.Chat/pull/9216)) +- Sidebar menu option to mark room as unread ([#9216](https://github.com/RocketChat/Rocket.Chat/pull/9216) by [@karlprieb](https://github.com/karlprieb)) - Add mention-here permission #7631 ([#9228](https://github.com/RocketChat/Rocket.Chat/pull/9228) by [@ryjones](https://github.com/ryjones)) - Indicate the Self DM room ([#9234](https://github.com/RocketChat/Rocket.Chat/pull/9234)) -- new layout for emojipicker ([#9245](https://github.com/RocketChat/Rocket.Chat/pull/9245)) +- new layout for emojipicker ([#9245](https://github.com/RocketChat/Rocket.Chat/pull/9245) by [@karlprieb](https://github.com/karlprieb)) - add /home link to sidenav footer logo ([#9366](https://github.com/RocketChat/Rocket.Chat/pull/9366) by [@cyclops24](https://github.com/cyclops24)) - Livechat extract lead data from message ([#9135](https://github.com/RocketChat/Rocket.Chat/pull/9135)) - Add impersonate option for livechat triggers ([#9107](https://github.com/RocketChat/Rocket.Chat/pull/9107)) - Add support to external livechat queue service provider ([#9053](https://github.com/RocketChat/Rocket.Chat/pull/9053)) -- Contextual bar mail messages ([#9510](https://github.com/RocketChat/Rocket.Chat/pull/9510)) +- Contextual bar mail messages ([#9510](https://github.com/RocketChat/Rocket.Chat/pull/9510) by [@karlprieb](https://github.com/karlprieb)) ### 🐛 Bug fixes @@ -1489,7 +2075,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Subscriptions not removed when removing user ([#9432](https://github.com/RocketChat/Rocket.Chat/pull/9432)) - Highlight setting not working correctly ([#9364](https://github.com/RocketChat/Rocket.Chat/pull/9364) by [@cyclops24](https://github.com/cyclops24)) - File access not working when passing credentials via querystring ([#9264](https://github.com/RocketChat/Rocket.Chat/pull/9264)) -- Contextual bar redesign ([#9481](https://github.com/RocketChat/Rocket.Chat/pull/9481) by [@gdelavald](https://github.com/gdelavald)) +- Contextual bar redesign ([#9481](https://github.com/RocketChat/Rocket.Chat/pull/9481) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) - mention-here is missing i18n text #9455 ([#9456](https://github.com/RocketChat/Rocket.Chat/pull/9456) by [@ryjones](https://github.com/ryjones)) - Fix livechat visitor edit ([#9506](https://github.com/RocketChat/Rocket.Chat/pull/9506)) - large names on userinfo, and admin user bug on users with no usernames ([#9493](https://github.com/RocketChat/Rocket.Chat/pull/9493) by [@gdelavald](https://github.com/gdelavald)) @@ -1497,10 +2083,10 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5!
🔍 Minor changes -- Release 0.61.0 ([#9533](https://github.com/RocketChat/Rocket.Chat/pull/9533) by [@ryjones](https://github.com/ryjones)) +- Release 0.61.0 ([#9533](https://github.com/RocketChat/Rocket.Chat/pull/9533) by [@karlprieb](https://github.com/karlprieb) & [@ryjones](https://github.com/ryjones)) - Add community bot ([#9439](https://github.com/RocketChat/Rocket.Chat/pull/9439)) - Use correct version of Mailparser module ([#9356](https://github.com/RocketChat/Rocket.Chat/pull/9356)) -- Develop sync - Bump version to 0.61.0-develop ([#9260](https://github.com/RocketChat/Rocket.Chat/pull/9260) by [@cpitman](https://github.com/cpitman)) +- Develop sync - Bump version to 0.61.0-develop ([#9260](https://github.com/RocketChat/Rocket.Chat/pull/9260) by [@cpitman](https://github.com/cpitman) & [@karlprieb](https://github.com/karlprieb)) - [Fix] oauth not working because of email array ([#9173](https://github.com/RocketChat/Rocket.Chat/pull/9173)) - [DOCS] Update the links of our Mobile Apps in Features topic ([#9469](https://github.com/RocketChat/Rocket.Chat/pull/9469)) - Update license ([#9490](https://github.com/RocketChat/Rocket.Chat/pull/9490)) @@ -1513,6 +2099,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@cpitman](https://github.com/cpitman) - [@cyclops24](https://github.com/cyclops24) - [@gdelavald](https://github.com/gdelavald) +- [@karlprieb](https://github.com/karlprieb) - [@ramrami](https://github.com/ramrami) - [@rndmh3ro](https://github.com/rndmh3ro) - [@ryjones](https://github.com/ryjones) @@ -1524,7 +2111,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@frdmn](https://github.com/frdmn) - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) -- [@karlprieb](https://github.com/karlprieb) - [@rafaelks](https://github.com/rafaelks) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -1539,10 +2125,10 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 🐛 Bug fixes - LDAP TLS not working in some cases ([#9343](https://github.com/RocketChat/Rocket.Chat/pull/9343)) -- popover on safari for iOS ([#9328](https://github.com/RocketChat/Rocket.Chat/pull/9328)) -- announcement hyperlink color ([#9330](https://github.com/RocketChat/Rocket.Chat/pull/9330)) +- popover on safari for iOS ([#9328](https://github.com/RocketChat/Rocket.Chat/pull/9328) by [@karlprieb](https://github.com/karlprieb)) +- announcement hyperlink color ([#9330](https://github.com/RocketChat/Rocket.Chat/pull/9330) by [@karlprieb](https://github.com/karlprieb)) - Deleting message with store last message not removing ([#9335](https://github.com/RocketChat/Rocket.Chat/pull/9335)) -- last message cutting on bottom ([#9345](https://github.com/RocketChat/Rocket.Chat/pull/9345)) +- last message cutting on bottom ([#9345](https://github.com/RocketChat/Rocket.Chat/pull/9345) by [@karlprieb](https://github.com/karlprieb))
🔍 Minor changes @@ -1552,9 +2138,12 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5!
-### 👩‍💻👨‍💻 Core Team 🤓 +### 👩‍💻👨‍💻 Contributors 😍 - [@karlprieb](https://github.com/karlprieb) + +### 👩‍💻👨‍💻 Core Team 🤓 + - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -1567,9 +2156,9 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 🐛 Bug fixes -- custom emoji size on sidebar item ([#9314](https://github.com/RocketChat/Rocket.Chat/pull/9314)) -- svg render on firefox ([#9311](https://github.com/RocketChat/Rocket.Chat/pull/9311)) -- sidebar footer padding ([#9249](https://github.com/RocketChat/Rocket.Chat/pull/9249)) +- custom emoji size on sidebar item ([#9314](https://github.com/RocketChat/Rocket.Chat/pull/9314) by [@karlprieb](https://github.com/karlprieb)) +- svg render on firefox ([#9311](https://github.com/RocketChat/Rocket.Chat/pull/9311) by [@karlprieb](https://github.com/karlprieb)) +- sidebar footer padding ([#9249](https://github.com/RocketChat/Rocket.Chat/pull/9249) by [@karlprieb](https://github.com/karlprieb)) - LDAP/AD is not importing all users ([#9309](https://github.com/RocketChat/Rocket.Chat/pull/9309)) - Wrong position of notifications alert in accounts preference page ([#9289](https://github.com/RocketChat/Rocket.Chat/pull/9289) by [@HammyHavoc](https://github.com/HammyHavoc)) - English Typos ([#9285](https://github.com/RocketChat/Rocket.Chat/pull/9285) by [@HammyHavoc](https://github.com/HammyHavoc)) @@ -1588,10 +2177,10 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 👩‍💻👨‍💻 Contributors 😍 - [@HammyHavoc](https://github.com/HammyHavoc) +- [@karlprieb](https://github.com/karlprieb) ### 👩‍💻👨‍💻 Core Team 🤓 -- [@karlprieb](https://github.com/karlprieb) - [@rodrigok](https://github.com/rodrigok) # 0.60.2 @@ -1644,7 +2233,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 🎉 New features - Allow user's default preferences configuration ([#7285](https://github.com/RocketChat/Rocket.Chat/pull/7285) by [@goiaba](https://github.com/goiaba)) -- Add "Favorites" and "Mark as read" options to the room list ([#8915](https://github.com/RocketChat/Rocket.Chat/pull/8915)) +- Add "Favorites" and "Mark as read" options to the room list ([#8915](https://github.com/RocketChat/Rocket.Chat/pull/8915) by [@karlprieb](https://github.com/karlprieb)) - Facebook livechat integration ([#8807](https://github.com/RocketChat/Rocket.Chat/pull/8807)) - Added support for Dataporten's userid-feide scope ([#8902](https://github.com/RocketChat/Rocket.Chat/pull/8902) by [@torgeirl](https://github.com/torgeirl)) - Describe file uploads when notifying by email ([#8924](https://github.com/RocketChat/Rocket.Chat/pull/8924)) @@ -1655,27 +2244,27 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Adds admin option to globally set mobile devices to always be notified regardless of presence status. ([#7641](https://github.com/RocketChat/Rocket.Chat/pull/7641) by [@stalley](https://github.com/stalley)) - Add new API endpoints ([#8947](https://github.com/RocketChat/Rocket.Chat/pull/8947)) - Option to enable/disable auto away and configure timer ([#8029](https://github.com/RocketChat/Rocket.Chat/pull/8029) by [@armand1m](https://github.com/armand1m)) -- New Modal component ([#8882](https://github.com/RocketChat/Rocket.Chat/pull/8882)) +- New Modal component ([#8882](https://github.com/RocketChat/Rocket.Chat/pull/8882) by [@karlprieb](https://github.com/karlprieb)) - Improve room types API and usages ([#9009](https://github.com/RocketChat/Rocket.Chat/pull/9009)) -- Room counter sidebar preference ([#8866](https://github.com/RocketChat/Rocket.Chat/pull/8866)) -- Save room's last message ([#8979](https://github.com/RocketChat/Rocket.Chat/pull/8979)) -- Token Controlled Access channels ([#8060](https://github.com/RocketChat/Rocket.Chat/pull/8060) by [@lindoelio](https://github.com/lindoelio)) +- Room counter sidebar preference ([#8866](https://github.com/RocketChat/Rocket.Chat/pull/8866) by [@karlprieb](https://github.com/karlprieb)) +- Save room's last message ([#8979](https://github.com/RocketChat/Rocket.Chat/pull/8979) by [@karlprieb](https://github.com/karlprieb)) +- Token Controlled Access channels ([#8060](https://github.com/RocketChat/Rocket.Chat/pull/8060) by [@karlprieb](https://github.com/karlprieb) & [@lindoelio](https://github.com/lindoelio)) - Send category and title fields to iOS push notification ([#8905](https://github.com/RocketChat/Rocket.Chat/pull/8905)) - code to get the updated messages ([#8857](https://github.com/RocketChat/Rocket.Chat/pull/8857)) - Rest API endpoints to list, get, and run commands ([#8531](https://github.com/RocketChat/Rocket.Chat/pull/8531)) -- Upgrade Meteor to 1.6 ([#8715](https://github.com/RocketChat/Rocket.Chat/pull/8715)) +- Upgrade Meteor to 1.6 ([#8715](https://github.com/RocketChat/Rocket.Chat/pull/8715) by [@karlprieb](https://github.com/karlprieb)) - Add settings for allow user direct messages to yourself ([#8066](https://github.com/RocketChat/Rocket.Chat/pull/8066) by [@lindoelio](https://github.com/lindoelio)) - Add sweet alert to video call tab ([#8108](https://github.com/RocketChat/Rocket.Chat/pull/8108)) - Displays QR code for manually entering when enabling 2fa ([#8143](https://github.com/RocketChat/Rocket.Chat/pull/8143)) - Add yunohost.org installation method to Readme.md ([#8037](https://github.com/RocketChat/Rocket.Chat/pull/8037) by [@selamanse](https://github.com/selamanse)) -- Modal ([#9092](https://github.com/RocketChat/Rocket.Chat/pull/9092)) +- Modal ([#9092](https://github.com/RocketChat/Rocket.Chat/pull/9092) by [@karlprieb](https://github.com/karlprieb)) - Make Custom oauth accept nested usernameField ([#9066](https://github.com/RocketChat/Rocket.Chat/pull/9066)) ### 🐛 Bug fixes -- Can't react on Read Only rooms even when enabled ([#8925](https://github.com/RocketChat/Rocket.Chat/pull/8925)) +- Can't react on Read Only rooms even when enabled ([#8925](https://github.com/RocketChat/Rocket.Chat/pull/8925) by [@karlprieb](https://github.com/karlprieb)) - CAS does not share secrets when operating multiple server instances ([#8654](https://github.com/RocketChat/Rocket.Chat/pull/8654) by [@AmShaegar13](https://github.com/AmShaegar13)) -- Snippetted messages not working ([#8937](https://github.com/RocketChat/Rocket.Chat/pull/8937)) +- Snippetted messages not working ([#8937](https://github.com/RocketChat/Rocket.Chat/pull/8937) by [@karlprieb](https://github.com/karlprieb)) - Added afterUserCreated trigger after first CAS login ([#9022](https://github.com/RocketChat/Rocket.Chat/pull/9022) by [@AmShaegar13](https://github.com/AmShaegar13)) - Notification is not sent when a video conference start ([#8828](https://github.com/RocketChat/Rocket.Chat/pull/8828) by [@deepseainside75](https://github.com/deepseainside75) & [@stefanoverducci](https://github.com/stefanoverducci)) - long filename overlaps cancel button in progress bar ([#8868](https://github.com/RocketChat/Rocket.Chat/pull/8868) by [@joesitton](https://github.com/joesitton)) @@ -1692,27 +2281,27 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Sync of non existent field throws exception ([#8006](https://github.com/RocketChat/Rocket.Chat/pull/8006) by [@goiaba](https://github.com/goiaba)) - Autoupdate of CSS does not work when using a prefix ([#8107](https://github.com/RocketChat/Rocket.Chat/pull/8107) by [@Darkneon](https://github.com/Darkneon)) - Contextual errors for this and RegExp declarations in IRC module ([#8656](https://github.com/RocketChat/Rocket.Chat/pull/8656) by [@Pharserror](https://github.com/Pharserror)) -- Wrong room counter name ([#9013](https://github.com/RocketChat/Rocket.Chat/pull/9013)) -- Message-box autogrow flick ([#8932](https://github.com/RocketChat/Rocket.Chat/pull/8932)) +- Wrong room counter name ([#9013](https://github.com/RocketChat/Rocket.Chat/pull/9013) by [@karlprieb](https://github.com/karlprieb)) +- Message-box autogrow flick ([#8932](https://github.com/RocketChat/Rocket.Chat/pull/8932) by [@karlprieb](https://github.com/karlprieb)) - Don't strip trailing slash on autolinker urls ([#8812](https://github.com/RocketChat/Rocket.Chat/pull/8812) by [@jwilkins](https://github.com/jwilkins)) -- Change the unread messages style ([#8883](https://github.com/RocketChat/Rocket.Chat/pull/8883)) -- Missing sidebar footer padding ([#8884](https://github.com/RocketChat/Rocket.Chat/pull/8884)) -- Long room announcement cut off ([#8907](https://github.com/RocketChat/Rocket.Chat/pull/8907)) +- Change the unread messages style ([#8883](https://github.com/RocketChat/Rocket.Chat/pull/8883) by [@karlprieb](https://github.com/karlprieb)) +- Missing sidebar footer padding ([#8884](https://github.com/RocketChat/Rocket.Chat/pull/8884) by [@karlprieb](https://github.com/karlprieb)) +- Long room announcement cut off ([#8907](https://github.com/RocketChat/Rocket.Chat/pull/8907) by [@karlprieb](https://github.com/karlprieb)) - DM email notifications always being sent regardless of account setting ([#8917](https://github.com/RocketChat/Rocket.Chat/pull/8917) by [@ashward](https://github.com/ashward)) - Typo Fix ([#8938](https://github.com/RocketChat/Rocket.Chat/pull/8938) by [@seangeleno](https://github.com/seangeleno)) - Katex markdown link changed ([#8948](https://github.com/RocketChat/Rocket.Chat/pull/8948) by [@mritunjaygoutam12](https://github.com/mritunjaygoutam12)) - if ogImage exists use it over image in oembedUrlWidget ([#9000](https://github.com/RocketChat/Rocket.Chat/pull/9000) by [@satyapramodh](https://github.com/satyapramodh)) - Cannot edit or delete custom sounds ([#8889](https://github.com/RocketChat/Rocket.Chat/pull/8889) by [@ccfang](https://github.com/ccfang)) - Change old 'rocketbot' username to 'InternalHubot_Username' setting ([#8928](https://github.com/RocketChat/Rocket.Chat/pull/8928) by [@ramrami](https://github.com/ramrami)) -- Link for channels are not rendering correctly ([#8985](https://github.com/RocketChat/Rocket.Chat/pull/8985)) +- Link for channels are not rendering correctly ([#8985](https://github.com/RocketChat/Rocket.Chat/pull/8985) by [@karlprieb](https://github.com/karlprieb)) - Xenforo [BD]API for 'user.user_id; instead of 'id' ([#8968](https://github.com/RocketChat/Rocket.Chat/pull/8968) by [@wesnspace](https://github.com/wesnspace)) -- flextab height on smaller screens ([#8994](https://github.com/RocketChat/Rocket.Chat/pull/8994)) +- flextab height on smaller screens ([#8994](https://github.com/RocketChat/Rocket.Chat/pull/8994) by [@karlprieb](https://github.com/karlprieb)) - Check for mention-all permission in room scope ([#8931](https://github.com/RocketChat/Rocket.Chat/pull/8931)) - fix emoji package path so they show up correctly in browser ([#8822](https://github.com/RocketChat/Rocket.Chat/pull/8822) by [@ryoshimizu](https://github.com/ryoshimizu)) - Set correct Twitter link ([#8830](https://github.com/RocketChat/Rocket.Chat/pull/8830) by [@jotafeldmann](https://github.com/jotafeldmann)) -- User email settings on DM ([#8810](https://github.com/RocketChat/Rocket.Chat/pull/8810)) +- User email settings on DM ([#8810](https://github.com/RocketChat/Rocket.Chat/pull/8810) by [@karlprieb](https://github.com/karlprieb)) - i18n'd Resend_verification_mail, username_initials, upload avatar ([#8721](https://github.com/RocketChat/Rocket.Chat/pull/8721) by [@arungalva](https://github.com/arungalva)) -- Username clipping on firefox ([#8716](https://github.com/RocketChat/Rocket.Chat/pull/8716)) +- Username clipping on firefox ([#8716](https://github.com/RocketChat/Rocket.Chat/pull/8716) by [@karlprieb](https://github.com/karlprieb)) - Improved grammar and made it clearer to the user ([#8795](https://github.com/RocketChat/Rocket.Chat/pull/8795) by [@HammyHavoc](https://github.com/HammyHavoc)) - Show real name of current user at top of side nav if setting enabled ([#8718](https://github.com/RocketChat/Rocket.Chat/pull/8718)) - Range Slider Value label has bug in RTL ([#8441](https://github.com/RocketChat/Rocket.Chat/pull/8441) by [@cyclops24](https://github.com/cyclops24)) @@ -1723,30 +2312,30 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Changed all rocket.chat/docs/ to docs.rocket.chat/ ([#8588](https://github.com/RocketChat/Rocket.Chat/pull/8588) by [@RekkyRek](https://github.com/RekkyRek)) - Email verification indicator added ([#7923](https://github.com/RocketChat/Rocket.Chat/pull/7923) by [@aditya19496](https://github.com/aditya19496)) - REST API file upload not respecting size limit ([#9108](https://github.com/RocketChat/Rocket.Chat/pull/9108)) -- Creating channels on Firefox ([#9109](https://github.com/RocketChat/Rocket.Chat/pull/9109)) -- Some UI problems on 0.60 ([#9095](https://github.com/RocketChat/Rocket.Chat/pull/9095)) +- Creating channels on Firefox ([#9109](https://github.com/RocketChat/Rocket.Chat/pull/9109) by [@karlprieb](https://github.com/karlprieb)) +- Some UI problems on 0.60 ([#9095](https://github.com/RocketChat/Rocket.Chat/pull/9095) by [@karlprieb](https://github.com/karlprieb)) - Update rocketchat:streamer to be compatible with previous version ([#9094](https://github.com/RocketChat/Rocket.Chat/pull/9094)) - Importers not recovering when an error occurs ([#9134](https://github.com/RocketChat/Rocket.Chat/pull/9134)) - Do not block room while loading history ([#9121](https://github.com/RocketChat/Rocket.Chat/pull/9121)) - Channel page error ([#9091](https://github.com/RocketChat/Rocket.Chat/pull/9091) by [@ggrish](https://github.com/ggrish)) - Update Rocket.Chat for sandstorm ([#9062](https://github.com/RocketChat/Rocket.Chat/pull/9062) by [@peterlee0127](https://github.com/peterlee0127)) -- modal data on enter and modal style for file preview ([#9171](https://github.com/RocketChat/Rocket.Chat/pull/9171)) -- show oauth logins when adblock is used ([#9170](https://github.com/RocketChat/Rocket.Chat/pull/9170)) +- modal data on enter and modal style for file preview ([#9171](https://github.com/RocketChat/Rocket.Chat/pull/9171) by [@karlprieb](https://github.com/karlprieb)) +- show oauth logins when adblock is used ([#9170](https://github.com/RocketChat/Rocket.Chat/pull/9170) by [@karlprieb](https://github.com/karlprieb)) - Last sent message reoccurs in textbox ([#9169](https://github.com/RocketChat/Rocket.Chat/pull/9169)) - Made welcome emails more readable ([#9193](https://github.com/RocketChat/Rocket.Chat/pull/9193) by [@HammyHavoc](https://github.com/HammyHavoc)) -- Unread bar position when room have announcement ([#9188](https://github.com/RocketChat/Rocket.Chat/pull/9188)) -- Emoji size on last message preview ([#9186](https://github.com/RocketChat/Rocket.Chat/pull/9186)) -- Cursor position when reply on safari ([#9185](https://github.com/RocketChat/Rocket.Chat/pull/9185)) -- "Use Emoji" preference not working ([#9182](https://github.com/RocketChat/Rocket.Chat/pull/9182)) -- make the cross icon on user selection at channel creation page work ([#9176](https://github.com/RocketChat/Rocket.Chat/pull/9176) by [@vitor-nagao](https://github.com/vitor-nagao)) -- go to replied message ([#9172](https://github.com/RocketChat/Rocket.Chat/pull/9172)) -- channel create scroll on small screens ([#9168](https://github.com/RocketChat/Rocket.Chat/pull/9168)) +- Unread bar position when room have announcement ([#9188](https://github.com/RocketChat/Rocket.Chat/pull/9188) by [@karlprieb](https://github.com/karlprieb)) +- Emoji size on last message preview ([#9186](https://github.com/RocketChat/Rocket.Chat/pull/9186) by [@karlprieb](https://github.com/karlprieb)) +- Cursor position when reply on safari ([#9185](https://github.com/RocketChat/Rocket.Chat/pull/9185) by [@karlprieb](https://github.com/karlprieb)) +- "Use Emoji" preference not working ([#9182](https://github.com/RocketChat/Rocket.Chat/pull/9182) by [@karlprieb](https://github.com/karlprieb)) +- make the cross icon on user selection at channel creation page work ([#9176](https://github.com/RocketChat/Rocket.Chat/pull/9176) by [@karlprieb](https://github.com/karlprieb) & [@vitor-nagao](https://github.com/vitor-nagao)) +- go to replied message ([#9172](https://github.com/RocketChat/Rocket.Chat/pull/9172) by [@karlprieb](https://github.com/karlprieb)) +- channel create scroll on small screens ([#9168](https://github.com/RocketChat/Rocket.Chat/pull/9168) by [@karlprieb](https://github.com/karlprieb)) - Error when user roles is missing or is invalid ([#9040](https://github.com/RocketChat/Rocket.Chat/pull/9040) by [@paulovitin](https://github.com/paulovitin)) -- Make mentions and menu icons color darker ([#8922](https://github.com/RocketChat/Rocket.Chat/pull/8922)) -- Show modal with announcement ([#9241](https://github.com/RocketChat/Rocket.Chat/pull/9241)) -- File upload not working on IE and weird on Chrome ([#9206](https://github.com/RocketChat/Rocket.Chat/pull/9206)) +- Make mentions and menu icons color darker ([#8922](https://github.com/RocketChat/Rocket.Chat/pull/8922) by [@karlprieb](https://github.com/karlprieb)) +- Show modal with announcement ([#9241](https://github.com/RocketChat/Rocket.Chat/pull/9241) by [@karlprieb](https://github.com/karlprieb)) +- File upload not working on IE and weird on Chrome ([#9206](https://github.com/RocketChat/Rocket.Chat/pull/9206) by [@karlprieb](https://github.com/karlprieb)) - "Enter usernames" placeholder is cutting in "create channel" view ([#9194](https://github.com/RocketChat/Rocket.Chat/pull/9194) by [@TheReal1604](https://github.com/TheReal1604)) -- Move emojipicker css to theme package ([#9243](https://github.com/RocketChat/Rocket.Chat/pull/9243)) +- Move emojipicker css to theme package ([#9243](https://github.com/RocketChat/Rocket.Chat/pull/9243) by [@karlprieb](https://github.com/karlprieb))
🔍 Minor changes @@ -1766,7 +2355,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Changed wording for "Maximum Allowed Message Size" ([#8872](https://github.com/RocketChat/Rocket.Chat/pull/8872) by [@HammyHavoc](https://github.com/HammyHavoc)) - Fix Docker image build ([#8862](https://github.com/RocketChat/Rocket.Chat/pull/8862)) - Fix link to .asc file on S3 ([#8829](https://github.com/RocketChat/Rocket.Chat/pull/8829)) -- Bump version to 0.60.0-develop ([#8820](https://github.com/RocketChat/Rocket.Chat/pull/8820) by [@gdelavald](https://github.com/gdelavald)) +- Bump version to 0.60.0-develop ([#8820](https://github.com/RocketChat/Rocket.Chat/pull/8820) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) - Update path for s3 redirect in circle ci ([#8819](https://github.com/RocketChat/Rocket.Chat/pull/8819)) - Remove chatops package ([#8742](https://github.com/RocketChat/Rocket.Chat/pull/8742)) - Removed tmeasday:crypto-md5 ([#8743](https://github.com/RocketChat/Rocket.Chat/pull/8743)) @@ -1811,7 +2400,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Dependencies Update ([#9197](https://github.com/RocketChat/Rocket.Chat/pull/9197)) - Fix: Rooms and users are using different avatar style ([#9196](https://github.com/RocketChat/Rocket.Chat/pull/9196)) - Typo: German language file ([#9190](https://github.com/RocketChat/Rocket.Chat/pull/9190) by [@TheReal1604](https://github.com/TheReal1604)) -- Fix: Snippet name to not showing in snippet list ([#9184](https://github.com/RocketChat/Rocket.Chat/pull/9184)) +- Fix: Snippet name to not showing in snippet list ([#9184](https://github.com/RocketChat/Rocket.Chat/pull/9184) by [@karlprieb](https://github.com/karlprieb)) - Fix/api me only return verified ([#9183](https://github.com/RocketChat/Rocket.Chat/pull/9183)) - Fix: UI: Descenders of glyphs are cut off ([#9181](https://github.com/RocketChat/Rocket.Chat/pull/9181)) - Fix: Unneeded warning in payload of REST API calls ([#9240](https://github.com/RocketChat/Rocket.Chat/pull/9240)) @@ -1822,7 +2411,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Do not change room icon color when room is unread ([#9257](https://github.com/RocketChat/Rocket.Chat/pull/9257)) - LingoHub based on develop ([#9256](https://github.com/RocketChat/Rocket.Chat/pull/9256)) - Add curl, its missing on worker nodes so has to be explicitly added ([#9248](https://github.com/RocketChat/Rocket.Chat/pull/9248)) -- Fix: Sidebar item on rtl and small devices ([#9247](https://github.com/RocketChat/Rocket.Chat/pull/9247)) +- Fix: Sidebar item on rtl and small devices ([#9247](https://github.com/RocketChat/Rocket.Chat/pull/9247) by [@karlprieb](https://github.com/karlprieb))
@@ -1853,6 +2442,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@joesitton](https://github.com/joesitton) - [@jotafeldmann](https://github.com/jotafeldmann) - [@jwilkins](https://github.com/jwilkins) +- [@karlprieb](https://github.com/karlprieb) - [@lindoelio](https://github.com/lindoelio) - [@mastappl](https://github.com/mastappl) - [@mritunjaygoutam12](https://github.com/mritunjaygoutam12) @@ -1884,7 +2474,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@graywolf336](https://github.com/graywolf336) -- [@karlprieb](https://github.com/karlprieb) - [@marceloschmidt](https://github.com/marceloschmidt) - [@mrsimpson](https://github.com/mrsimpson) - [@pierreozoux](https://github.com/pierreozoux) @@ -1936,12 +2525,12 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 🐛 Bug fixes -- Channel settings buttons ([#8753](https://github.com/RocketChat/Rocket.Chat/pull/8753)) +- Channel settings buttons ([#8753](https://github.com/RocketChat/Rocket.Chat/pull/8753) by [@karlprieb](https://github.com/karlprieb))
🔍 Minor changes -- Release/0.59.4 ([#8967](https://github.com/RocketChat/Rocket.Chat/pull/8967) by [@cpitman](https://github.com/cpitman)) +- Release/0.59.4 ([#8967](https://github.com/RocketChat/Rocket.Chat/pull/8967) by [@cpitman](https://github.com/cpitman) & [@karlprieb](https://github.com/karlprieb)) - Add CircleCI ([#8685](https://github.com/RocketChat/Rocket.Chat/pull/8685))
@@ -1949,11 +2538,11 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 👩‍💻👨‍💻 Contributors 😍 - [@cpitman](https://github.com/cpitman) +- [@karlprieb](https://github.com/karlprieb) ### 👩‍💻👨‍💻 Core Team 🤓 - [@geekgonecrazy](https://github.com/geekgonecrazy) -- [@karlprieb](https://github.com/karlprieb) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -1968,7 +2557,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - AmazonS3: Quote file.name for ContentDisposition for files with commas ([#8593](https://github.com/RocketChat/Rocket.Chat/pull/8593)) - Fix e-mail message forward ([#8645](https://github.com/RocketChat/Rocket.Chat/pull/8645)) -- Audio message icon ([#8648](https://github.com/RocketChat/Rocket.Chat/pull/8648)) +- Audio message icon ([#8648](https://github.com/RocketChat/Rocket.Chat/pull/8648) by [@karlprieb](https://github.com/karlprieb)) - Highlighted color height issue ([#8431](https://github.com/RocketChat/Rocket.Chat/pull/8431) by [@cyclops24](https://github.com/cyclops24)) - Update pt-BR translation ([#8655](https://github.com/RocketChat/Rocket.Chat/pull/8655) by [@rodorgas](https://github.com/rodorgas)) - Fix typos ([#8679](https://github.com/RocketChat/Rocket.Chat/pull/8679)) @@ -1985,13 +2574,13 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 👩‍💻👨‍💻 Contributors 😍 - [@cyclops24](https://github.com/cyclops24) +- [@karlprieb](https://github.com/karlprieb) - [@rodorgas](https://github.com/rodorgas) - [@vikaskedia](https://github.com/vikaskedia) ### 👩‍💻👨‍💻 Core Team 🤓 - [@geekgonecrazy](https://github.com/geekgonecrazy) -- [@karlprieb](https://github.com/karlprieb) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) - [@xenithorb](https://github.com/xenithorb) @@ -2005,8 +2594,8 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 🐛 Bug fixes -- Missing scroll at create channel page ([#8637](https://github.com/RocketChat/Rocket.Chat/pull/8637)) -- Message popup menu on mobile/cordova ([#8634](https://github.com/RocketChat/Rocket.Chat/pull/8634)) +- Missing scroll at create channel page ([#8637](https://github.com/RocketChat/Rocket.Chat/pull/8637) by [@karlprieb](https://github.com/karlprieb)) +- Message popup menu on mobile/cordova ([#8634](https://github.com/RocketChat/Rocket.Chat/pull/8634) by [@karlprieb](https://github.com/karlprieb)) - API channel/group.members not sorting ([#8635](https://github.com/RocketChat/Rocket.Chat/pull/8635)) - LDAP not merging existent users && Wrong id link generation ([#8613](https://github.com/RocketChat/Rocket.Chat/pull/8613)) - encode filename in url to prevent links breaking ([#8551](https://github.com/RocketChat/Rocket.Chat/pull/8551) by [@joesitton](https://github.com/joesitton)) @@ -2015,10 +2604,10 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 👩‍💻👨‍💻 Contributors 😍 - [@joesitton](https://github.com/joesitton) +- [@karlprieb](https://github.com/karlprieb) ### 👩‍💻👨‍💻 Core Team 🤓 -- [@karlprieb](https://github.com/karlprieb) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -2050,10 +2639,10 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 🎉 New features -- Replace message cog for vertical menu ([#7864](https://github.com/RocketChat/Rocket.Chat/pull/7864)) +- Replace message cog for vertical menu ([#7864](https://github.com/RocketChat/Rocket.Chat/pull/7864) by [@karlprieb](https://github.com/karlprieb)) - block users to mention unknow users ([#7830](https://github.com/RocketChat/Rocket.Chat/pull/7830)) - Allow ldap mapping of customFields ([#7614](https://github.com/RocketChat/Rocket.Chat/pull/7614) by [@goiaba](https://github.com/goiaba)) -- Create a standard for our svg icons ([#7853](https://github.com/RocketChat/Rocket.Chat/pull/7853)) +- Create a standard for our svg icons ([#7853](https://github.com/RocketChat/Rocket.Chat/pull/7853) by [@karlprieb](https://github.com/karlprieb)) - Allows admin to list all groups with API ([#7565](https://github.com/RocketChat/Rocket.Chat/pull/7565) by [@mboudet](https://github.com/mboudet)) - Add markdown parser "marked" ([#7852](https://github.com/RocketChat/Rocket.Chat/pull/7852) by [@nishimaki10](https://github.com/nishimaki10)) - Audio Notification updated in sidebar ([#7817](https://github.com/RocketChat/Rocket.Chat/pull/7817) by [@aditya19496](https://github.com/aditya19496) & [@maarten-v](https://github.com/maarten-v)) @@ -2061,18 +2650,18 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Template to show Custom Fields in user info view ([#7688](https://github.com/RocketChat/Rocket.Chat/pull/7688) by [@goiaba](https://github.com/goiaba)) - Add room type as a class to the ul-group of rooms ([#7711](https://github.com/RocketChat/Rocket.Chat/pull/7711) by [@danischreiber](https://github.com/danischreiber)) - Add classes to notification menu so they can be hidden in css ([#7636](https://github.com/RocketChat/Rocket.Chat/pull/7636) by [@danischreiber](https://github.com/danischreiber)) -- Adds a Keyboard Shortcut option to the flextab ([#5902](https://github.com/RocketChat/Rocket.Chat/pull/5902) by [@cnash](https://github.com/cnash)) +- Adds a Keyboard Shortcut option to the flextab ([#5902](https://github.com/RocketChat/Rocket.Chat/pull/5902) by [@cnash](https://github.com/cnash) & [@karlprieb](https://github.com/karlprieb)) - Integrated personal email gateway (GSoC'17) ([#7342](https://github.com/RocketChat/Rocket.Chat/pull/7342) by [@pkgodara](https://github.com/pkgodara)) -- Add tags to uploaded images using Google Cloud Vision API ([#6301](https://github.com/RocketChat/Rocket.Chat/pull/6301)) +- Add tags to uploaded images using Google Cloud Vision API ([#6301](https://github.com/RocketChat/Rocket.Chat/pull/6301) by [@karlprieb](https://github.com/karlprieb)) - Package to render issue numbers into links to an issue tracker. ([#6700](https://github.com/RocketChat/Rocket.Chat/pull/6700) by [@TAdeJong](https://github.com/TAdeJong) & [@TobiasKappe](https://github.com/TobiasKappe)) - Automatically select the first channel ([#7350](https://github.com/RocketChat/Rocket.Chat/pull/7350) by [@antaryami-sahoo](https://github.com/antaryami-sahoo)) - Rocket.Chat UI Redesign ([#7643](https://github.com/RocketChat/Rocket.Chat/pull/7643)) - Upgrade to meteor 1.5.2 ([#8073](https://github.com/RocketChat/Rocket.Chat/pull/8073)) -- Enable read only channel creation ([#8260](https://github.com/RocketChat/Rocket.Chat/pull/8260)) +- Enable read only channel creation ([#8260](https://github.com/RocketChat/Rocket.Chat/pull/8260) by [@karlprieb](https://github.com/karlprieb)) - Add RD Station integration to livechat ([#8304](https://github.com/RocketChat/Rocket.Chat/pull/8304)) -- Unify unread and mentions badge ([#8361](https://github.com/RocketChat/Rocket.Chat/pull/8361)) -- make sidebar item width 100% ([#8362](https://github.com/RocketChat/Rocket.Chat/pull/8362)) -- Smaller accountBox ([#8360](https://github.com/RocketChat/Rocket.Chat/pull/8360)) +- Unify unread and mentions badge ([#8361](https://github.com/RocketChat/Rocket.Chat/pull/8361) by [@karlprieb](https://github.com/karlprieb)) +- make sidebar item width 100% ([#8362](https://github.com/RocketChat/Rocket.Chat/pull/8362) by [@karlprieb](https://github.com/karlprieb)) +- Smaller accountBox ([#8360](https://github.com/RocketChat/Rocket.Chat/pull/8360) by [@karlprieb](https://github.com/karlprieb)) - Setting to disable MarkDown and enable AutoLinker ([#8459](https://github.com/RocketChat/Rocket.Chat/pull/8459)) ### 🐛 Bug fixes @@ -2096,77 +2685,77 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Make link inside YouTube preview open in new tab ([#7679](https://github.com/RocketChat/Rocket.Chat/pull/7679) by [@1lann](https://github.com/1lann)) - Remove references to non-existent tests ([#7672](https://github.com/RocketChat/Rocket.Chat/pull/7672) by [@Kiran-Rao](https://github.com/Kiran-Rao)) - Example usage of unsubscribe.js ([#7673](https://github.com/RocketChat/Rocket.Chat/pull/7673) by [@Kiran-Rao](https://github.com/Kiran-Rao)) -- sidebar paddings ([#7880](https://github.com/RocketChat/Rocket.Chat/pull/7880)) +- sidebar paddings ([#7880](https://github.com/RocketChat/Rocket.Chat/pull/7880) by [@karlprieb](https://github.com/karlprieb)) - Adds default search text padding for emoji search ([#7878](https://github.com/RocketChat/Rocket.Chat/pull/7878) by [@gdelavald](https://github.com/gdelavald)) -- search results position on sidebar ([#7881](https://github.com/RocketChat/Rocket.Chat/pull/7881)) -- hyperlink style on sidebar footer ([#7882](https://github.com/RocketChat/Rocket.Chat/pull/7882)) -- popover position on mobile ([#7883](https://github.com/RocketChat/Rocket.Chat/pull/7883)) -- message actions over unread bar ([#7885](https://github.com/RocketChat/Rocket.Chat/pull/7885)) -- livechat icon ([#7886](https://github.com/RocketChat/Rocket.Chat/pull/7886)) +- search results position on sidebar ([#7881](https://github.com/RocketChat/Rocket.Chat/pull/7881) by [@karlprieb](https://github.com/karlprieb)) +- hyperlink style on sidebar footer ([#7882](https://github.com/RocketChat/Rocket.Chat/pull/7882) by [@karlprieb](https://github.com/karlprieb)) +- popover position on mobile ([#7883](https://github.com/RocketChat/Rocket.Chat/pull/7883) by [@karlprieb](https://github.com/karlprieb)) +- message actions over unread bar ([#7885](https://github.com/RocketChat/Rocket.Chat/pull/7885) by [@karlprieb](https://github.com/karlprieb)) +- livechat icon ([#7886](https://github.com/RocketChat/Rocket.Chat/pull/7886) by [@karlprieb](https://github.com/karlprieb)) - Makes text action menu width based on content size ([#7887](https://github.com/RocketChat/Rocket.Chat/pull/7887) by [@gdelavald](https://github.com/gdelavald)) -- sidebar buttons and badge paddings ([#7888](https://github.com/RocketChat/Rocket.Chat/pull/7888)) +- sidebar buttons and badge paddings ([#7888](https://github.com/RocketChat/Rocket.Chat/pull/7888) by [@karlprieb](https://github.com/karlprieb)) - Fix google play logo on repo README ([#7912](https://github.com/RocketChat/Rocket.Chat/pull/7912) by [@luizbills](https://github.com/luizbills)) - Fix livechat toggle UI issue ([#7904](https://github.com/RocketChat/Rocket.Chat/pull/7904)) - Remove break change in Realtime API ([#7895](https://github.com/RocketChat/Rocket.Chat/pull/7895)) - Window exception when parsing Markdown on server ([#7893](https://github.com/RocketChat/Rocket.Chat/pull/7893)) - Text area buttons and layout on mobile ([#7985](https://github.com/RocketChat/Rocket.Chat/pull/7985)) - Double scroll on 'keyboard shortcuts' menu in sidepanel ([#7927](https://github.com/RocketChat/Rocket.Chat/pull/7927) by [@aditya19496](https://github.com/aditya19496)) -- Broken embedded view layout ([#7944](https://github.com/RocketChat/Rocket.Chat/pull/7944)) +- Broken embedded view layout ([#7944](https://github.com/RocketChat/Rocket.Chat/pull/7944) by [@karlprieb](https://github.com/karlprieb)) - Textarea on firefox ([#7986](https://github.com/RocketChat/Rocket.Chat/pull/7986)) - Chat box no longer auto-focuses when typing ([#7984](https://github.com/RocketChat/Rocket.Chat/pull/7984)) - Add padding on messages to allow space to the action buttons ([#7971](https://github.com/RocketChat/Rocket.Chat/pull/7971)) - Small alignment fixes ([#7970](https://github.com/RocketChat/Rocket.Chat/pull/7970)) - Markdown being rendered in code tags ([#7965](https://github.com/RocketChat/Rocket.Chat/pull/7965)) - Fix the status on the members list ([#7963](https://github.com/RocketChat/Rocket.Chat/pull/7963)) -- status and active room colors on sidebar ([#7960](https://github.com/RocketChat/Rocket.Chat/pull/7960)) -- OTR buttons padding ([#7954](https://github.com/RocketChat/Rocket.Chat/pull/7954)) -- username ellipsis on firefox ([#7953](https://github.com/RocketChat/Rocket.Chat/pull/7953)) +- status and active room colors on sidebar ([#7960](https://github.com/RocketChat/Rocket.Chat/pull/7960) by [@karlprieb](https://github.com/karlprieb)) +- OTR buttons padding ([#7954](https://github.com/RocketChat/Rocket.Chat/pull/7954) by [@karlprieb](https://github.com/karlprieb)) +- username ellipsis on firefox ([#7953](https://github.com/RocketChat/Rocket.Chat/pull/7953) by [@karlprieb](https://github.com/karlprieb)) - Document README.md. Drupal repo out of date ([#7948](https://github.com/RocketChat/Rocket.Chat/pull/7948) by [@Lawri-van-Buel](https://github.com/Lawri-van-Buel)) - Fix placeholders in account profile ([#7945](https://github.com/RocketChat/Rocket.Chat/pull/7945) by [@josiasds](https://github.com/josiasds)) -- Broken emoji picker on firefox ([#7943](https://github.com/RocketChat/Rocket.Chat/pull/7943)) -- Create channel button on Firefox ([#7942](https://github.com/RocketChat/Rocket.Chat/pull/7942)) +- Broken emoji picker on firefox ([#7943](https://github.com/RocketChat/Rocket.Chat/pull/7943) by [@karlprieb](https://github.com/karlprieb)) +- Create channel button on Firefox ([#7942](https://github.com/RocketChat/Rocket.Chat/pull/7942) by [@karlprieb](https://github.com/karlprieb)) - Show leader on first load ([#7712](https://github.com/RocketChat/Rocket.Chat/pull/7712) by [@danischreiber](https://github.com/danischreiber)) -- Vertical menu on flex-tab ([#7988](https://github.com/RocketChat/Rocket.Chat/pull/7988)) +- Vertical menu on flex-tab ([#7988](https://github.com/RocketChat/Rocket.Chat/pull/7988) by [@karlprieb](https://github.com/karlprieb)) - Invisible leader bar on hover ([#8048](https://github.com/RocketChat/Rocket.Chat/pull/8048)) - Prevent autotranslate tokens race condition ([#8046](https://github.com/RocketChat/Rocket.Chat/pull/8046)) -- copy to clipboard and update clipboard.js library ([#8039](https://github.com/RocketChat/Rocket.Chat/pull/8039)) -- message-box autogrow ([#8019](https://github.com/RocketChat/Rocket.Chat/pull/8019)) -- search results height ([#8018](https://github.com/RocketChat/Rocket.Chat/pull/8018) by [@gdelavald](https://github.com/gdelavald)) -- room icon on header ([#8017](https://github.com/RocketChat/Rocket.Chat/pull/8017)) +- copy to clipboard and update clipboard.js library ([#8039](https://github.com/RocketChat/Rocket.Chat/pull/8039) by [@karlprieb](https://github.com/karlprieb)) +- message-box autogrow ([#8019](https://github.com/RocketChat/Rocket.Chat/pull/8019) by [@karlprieb](https://github.com/karlprieb)) +- search results height ([#8018](https://github.com/RocketChat/Rocket.Chat/pull/8018) by [@gdelavald](https://github.com/gdelavald) & [@karlprieb](https://github.com/karlprieb)) +- room icon on header ([#8017](https://github.com/RocketChat/Rocket.Chat/pull/8017) by [@karlprieb](https://github.com/karlprieb)) - Hide scrollbar on login page if not necessary ([#8014](https://github.com/RocketChat/Rocket.Chat/pull/8014)) - Error when translating message ([#8001](https://github.com/RocketChat/Rocket.Chat/pull/8001)) - Recent emojis not updated when adding via text ([#7998](https://github.com/RocketChat/Rocket.Chat/pull/7998)) - [PL] Polish translation ([#7989](https://github.com/RocketChat/Rocket.Chat/pull/7989) by [@Rzeszow](https://github.com/Rzeszow)) - Fix email on mention ([#7754](https://github.com/RocketChat/Rocket.Chat/pull/7754)) - RTL ([#8112](https://github.com/RocketChat/Rocket.Chat/pull/8112)) -- Dynamic popover ([#8101](https://github.com/RocketChat/Rocket.Chat/pull/8101)) +- Dynamic popover ([#8101](https://github.com/RocketChat/Rocket.Chat/pull/8101) by [@karlprieb](https://github.com/karlprieb)) - Settings description not showing ([#8122](https://github.com/RocketChat/Rocket.Chat/pull/8122)) - Fix setting user avatar on LDAP login ([#8099](https://github.com/RocketChat/Rocket.Chat/pull/8099)) - Not sending email to mentioned users with unchanged preference ([#8059](https://github.com/RocketChat/Rocket.Chat/pull/8059)) - Scroll on messagebox ([#8047](https://github.com/RocketChat/Rocket.Chat/pull/8047)) - Allow unknown file types if no allowed whitelist has been set (#7074) ([#8172](https://github.com/RocketChat/Rocket.Chat/pull/8172) by [@TriPhoenix](https://github.com/TriPhoenix)) - Issue #8166 where empty analytics setting breaks to load Piwik script ([#8167](https://github.com/RocketChat/Rocket.Chat/pull/8167) by [@ruKurz](https://github.com/ruKurz)) -- Sidebar and RTL alignments ([#8154](https://github.com/RocketChat/Rocket.Chat/pull/8154)) +- Sidebar and RTL alignments ([#8154](https://github.com/RocketChat/Rocket.Chat/pull/8154) by [@karlprieb](https://github.com/karlprieb)) - "*.members" rest api being useless and only returning usernames ([#8147](https://github.com/RocketChat/Rocket.Chat/pull/8147)) - Fix iframe login API response (issue #8145) ([#8146](https://github.com/RocketChat/Rocket.Chat/pull/8146) by [@astax-t](https://github.com/astax-t)) - Text area lost text when page reloads ([#8159](https://github.com/RocketChat/Rocket.Chat/pull/8159)) - Fix new room sound being played too much ([#8144](https://github.com/RocketChat/Rocket.Chat/pull/8144)) - Add admin audio preferences translations ([#8094](https://github.com/RocketChat/Rocket.Chat/pull/8094)) -- Leave and hide buttons was removed ([#8213](https://github.com/RocketChat/Rocket.Chat/pull/8213)) +- Leave and hide buttons was removed ([#8213](https://github.com/RocketChat/Rocket.Chat/pull/8213) by [@karlprieb](https://github.com/karlprieb)) - Incorrect URL for login terms when using prefix ([#8211](https://github.com/RocketChat/Rocket.Chat/pull/8211) by [@Darkneon](https://github.com/Darkneon)) - User avatar in DM list. ([#8210](https://github.com/RocketChat/Rocket.Chat/pull/8210)) - Scrollbar not using new style ([#8190](https://github.com/RocketChat/Rocket.Chat/pull/8190)) -- sidenav colors, hide and leave, create channel on safari ([#8257](https://github.com/RocketChat/Rocket.Chat/pull/8257)) -- make sidebar item animation fast ([#8262](https://github.com/RocketChat/Rocket.Chat/pull/8262)) -- RTL on reply ([#8261](https://github.com/RocketChat/Rocket.Chat/pull/8261)) -- clipboard and permalink on new popover ([#8259](https://github.com/RocketChat/Rocket.Chat/pull/8259)) -- sidenav mentions on hover ([#8252](https://github.com/RocketChat/Rocket.Chat/pull/8252)) +- sidenav colors, hide and leave, create channel on safari ([#8257](https://github.com/RocketChat/Rocket.Chat/pull/8257) by [@karlprieb](https://github.com/karlprieb)) +- make sidebar item animation fast ([#8262](https://github.com/RocketChat/Rocket.Chat/pull/8262) by [@karlprieb](https://github.com/karlprieb)) +- RTL on reply ([#8261](https://github.com/RocketChat/Rocket.Chat/pull/8261) by [@karlprieb](https://github.com/karlprieb)) +- clipboard and permalink on new popover ([#8259](https://github.com/RocketChat/Rocket.Chat/pull/8259) by [@karlprieb](https://github.com/karlprieb)) +- sidenav mentions on hover ([#8252](https://github.com/RocketChat/Rocket.Chat/pull/8252) by [@karlprieb](https://github.com/karlprieb)) - Api groups.files is always returning empty ([#8241](https://github.com/RocketChat/Rocket.Chat/pull/8241)) - Case insensitive SAML email check ([#8216](https://github.com/RocketChat/Rocket.Chat/pull/8216) by [@arminfelder](https://github.com/arminfelder)) - Execute meteor reset on TRAVIS_TAG builds ([#8310](https://github.com/RocketChat/Rocket.Chat/pull/8310)) -- Call buttons with wrong margin on RTL ([#8307](https://github.com/RocketChat/Rocket.Chat/pull/8307)) -- Emoji Picker hidden for reactions in RTL ([#8300](https://github.com/RocketChat/Rocket.Chat/pull/8300)) -- Amin menu not showing all items & File list breaking line ([#8299](https://github.com/RocketChat/Rocket.Chat/pull/8299)) +- Call buttons with wrong margin on RTL ([#8307](https://github.com/RocketChat/Rocket.Chat/pull/8307) by [@karlprieb](https://github.com/karlprieb)) +- Emoji Picker hidden for reactions in RTL ([#8300](https://github.com/RocketChat/Rocket.Chat/pull/8300) by [@karlprieb](https://github.com/karlprieb)) +- Amin menu not showing all items & File list breaking line ([#8299](https://github.com/RocketChat/Rocket.Chat/pull/8299) by [@karlprieb](https://github.com/karlprieb)) - TypeError: Cannot read property 't' of undefined ([#8298](https://github.com/RocketChat/Rocket.Chat/pull/8298)) - Wrong file name when upload to AWS S3 ([#8296](https://github.com/RocketChat/Rocket.Chat/pull/8296)) - Check attachments is defined before accessing first element ([#8295](https://github.com/RocketChat/Rocket.Chat/pull/8295) by [@Darkneon](https://github.com/Darkneon)) @@ -2179,12 +2768,12 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - "Channel Setting" buttons alignment in RTL ([#8266](https://github.com/RocketChat/Rocket.Chat/pull/8266) by [@cyclops24](https://github.com/cyclops24)) - Removing pipe and commas from custom emojis (#8168) ([#8237](https://github.com/RocketChat/Rocket.Chat/pull/8237) by [@matheusml](https://github.com/matheusml)) - After deleting the room, cache is not synchronizing ([#8314](https://github.com/RocketChat/Rocket.Chat/pull/8314) by [@szluohua](https://github.com/szluohua)) -- Remove sidebar header on admin embedded version ([#8334](https://github.com/RocketChat/Rocket.Chat/pull/8334)) +- Remove sidebar header on admin embedded version ([#8334](https://github.com/RocketChat/Rocket.Chat/pull/8334) by [@karlprieb](https://github.com/karlprieb)) - Email Subjects not being sent ([#8317](https://github.com/RocketChat/Rocket.Chat/pull/8317)) -- Put delete action on another popover group ([#8315](https://github.com/RocketChat/Rocket.Chat/pull/8315)) +- Put delete action on another popover group ([#8315](https://github.com/RocketChat/Rocket.Chat/pull/8315) by [@karlprieb](https://github.com/karlprieb)) - Mention unread indicator was removed ([#8316](https://github.com/RocketChat/Rocket.Chat/pull/8316)) - Various LDAP issues & Missing pagination ([#8372](https://github.com/RocketChat/Rocket.Chat/pull/8372)) -- remove accountBox from admin menu ([#8358](https://github.com/RocketChat/Rocket.Chat/pull/8358)) +- remove accountBox from admin menu ([#8358](https://github.com/RocketChat/Rocket.Chat/pull/8358) by [@karlprieb](https://github.com/karlprieb)) - Missing i18n translations ([#8357](https://github.com/RocketChat/Rocket.Chat/pull/8357)) - Sidebar item menu position in RTL ([#8397](https://github.com/RocketChat/Rocket.Chat/pull/8397) by [@cyclops24](https://github.com/cyclops24)) - disabled katex tooltip on messageBox ([#8386](https://github.com/RocketChat/Rocket.Chat/pull/8386)) @@ -2218,30 +2807,30 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Fix typo in generated URI ([#7661](https://github.com/RocketChat/Rocket.Chat/pull/7661) by [@Rohlik](https://github.com/Rohlik)) - Bump version to 0.59.0-develop ([#7625](https://github.com/RocketChat/Rocket.Chat/pull/7625)) - implemented new page-loader animated icon ([#2](https://github.com/RocketChat/Rocket.Chat/pull/2)) -- Hide flex-tab close button ([#7894](https://github.com/RocketChat/Rocket.Chat/pull/7894)) +- Hide flex-tab close button ([#7894](https://github.com/RocketChat/Rocket.Chat/pull/7894) by [@karlprieb](https://github.com/karlprieb)) - Update BlackDuck URL ([#7941](https://github.com/RocketChat/Rocket.Chat/pull/7941)) - [DOCS] Add native mobile app links into README and update button images ([#7909](https://github.com/RocketChat/Rocket.Chat/pull/7909)) - Remove unnecessary returns in cors common ([#8054](https://github.com/RocketChat/Rocket.Chat/pull/8054) by [@Kiran-Rao](https://github.com/Kiran-Rao)) - npm deps update ([#8197](https://github.com/RocketChat/Rocket.Chat/pull/8197)) -- Fix more rtl issues ([#8194](https://github.com/RocketChat/Rocket.Chat/pull/8194)) +- Fix more rtl issues ([#8194](https://github.com/RocketChat/Rocket.Chat/pull/8194) by [@karlprieb](https://github.com/karlprieb)) - readme-file: fix broken link ([#8253](https://github.com/RocketChat/Rocket.Chat/pull/8253) by [@vcapretz](https://github.com/vcapretz)) - Disable perfect scrollbar ([#8244](https://github.com/RocketChat/Rocket.Chat/pull/8244)) -- Fix `leave and hide` click, color and position ([#8243](https://github.com/RocketChat/Rocket.Chat/pull/8243)) +- Fix `leave and hide` click, color and position ([#8243](https://github.com/RocketChat/Rocket.Chat/pull/8243) by [@karlprieb](https://github.com/karlprieb)) - Deps update ([#8273](https://github.com/RocketChat/Rocket.Chat/pull/8273)) - Update meteor to 1.5.2.2-rc.0 ([#8355](https://github.com/RocketChat/Rocket.Chat/pull/8355)) -- [FIX-RC] Mobile file upload not working ([#8331](https://github.com/RocketChat/Rocket.Chat/pull/8331)) +- [FIX-RC] Mobile file upload not working ([#8331](https://github.com/RocketChat/Rocket.Chat/pull/8331) by [@karlprieb](https://github.com/karlprieb)) - LingoHub based on develop ([#8375](https://github.com/RocketChat/Rocket.Chat/pull/8375)) - Update Meteor to 1.5.2.2 ([#8364](https://github.com/RocketChat/Rocket.Chat/pull/8364)) - Sync translations from LingoHub ([#8363](https://github.com/RocketChat/Rocket.Chat/pull/8363)) - Remove field `lastActivity` from subscription data ([#8345](https://github.com/RocketChat/Rocket.Chat/pull/8345)) -- Fix: Account menu position on RTL ([#8416](https://github.com/RocketChat/Rocket.Chat/pull/8416)) +- Fix: Account menu position on RTL ([#8416](https://github.com/RocketChat/Rocket.Chat/pull/8416) by [@karlprieb](https://github.com/karlprieb)) - Fix: Missing LDAP option to show internal logs ([#8417](https://github.com/RocketChat/Rocket.Chat/pull/8417)) - Fix: Missing LDAP reconnect setting ([#8414](https://github.com/RocketChat/Rocket.Chat/pull/8414)) - Add i18n Title to snippet messages ([#8394](https://github.com/RocketChat/Rocket.Chat/pull/8394)) - Fix: Missing settings to configure LDAP size and page limits ([#8398](https://github.com/RocketChat/Rocket.Chat/pull/8398)) - Improve markdown parser code ([#8451](https://github.com/RocketChat/Rocket.Chat/pull/8451)) - Change artifact path ([#8515](https://github.com/RocketChat/Rocket.Chat/pull/8515)) -- Color variables migration ([#8463](https://github.com/RocketChat/Rocket.Chat/pull/8463)) +- Color variables migration ([#8463](https://github.com/RocketChat/Rocket.Chat/pull/8463) by [@karlprieb](https://github.com/karlprieb)) - Fix: Change password not working in new UI ([#8516](https://github.com/RocketChat/Rocket.Chat/pull/8516)) - Enable AutoLinker back ([#8490](https://github.com/RocketChat/Rocket.Chat/pull/8490)) - Fix artifact path ([#8518](https://github.com/RocketChat/Rocket.Chat/pull/8518)) @@ -2273,6 +2862,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@gdelavald](https://github.com/gdelavald) - [@goiaba](https://github.com/goiaba) - [@josiasds](https://github.com/josiasds) +- [@karlprieb](https://github.com/karlprieb) - [@luizbills](https://github.com/luizbills) - [@maarten-v](https://github.com/maarten-v) - [@matheusml](https://github.com/matheusml) @@ -2294,7 +2884,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@graywolf336](https://github.com/graywolf336) -- [@karlprieb](https://github.com/karlprieb) - [@marceloschmidt](https://github.com/marceloschmidt) - [@rafaelks](https://github.com/rafaelks) - [@rodrigok](https://github.com/rodrigok) @@ -2387,7 +2976,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Add toolbar buttons for iframe API ([#7525](https://github.com/RocketChat/Rocket.Chat/pull/7525)) - Add close button to flex tabs ([#7529](https://github.com/RocketChat/Rocket.Chat/pull/7529)) - Update meteor to 1.5.1 ([#7496](https://github.com/RocketChat/Rocket.Chat/pull/7496)) -- flex-tab now is side by side with message list ([#7448](https://github.com/RocketChat/Rocket.Chat/pull/7448)) +- flex-tab now is side by side with message list ([#7448](https://github.com/RocketChat/Rocket.Chat/pull/7448) by [@karlprieb](https://github.com/karlprieb)) - Option to select unread count behavior ([#7477](https://github.com/RocketChat/Rocket.Chat/pull/7477)) - Add healthchecks in OpenShift templates ([#7184](https://github.com/RocketChat/Rocket.Chat/pull/7184) by [@jfchevrette](https://github.com/jfchevrette)) - Add unread options for direct messages ([#7658](https://github.com/RocketChat/Rocket.Chat/pull/7658)) @@ -2412,7 +3001,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Fix Word Placement Anywhere on WebHooks ([#7392](https://github.com/RocketChat/Rocket.Chat/pull/7392)) - Prevent new room status from playing when user status changes ([#7487](https://github.com/RocketChat/Rocket.Chat/pull/7487)) - url click events in the cordova app open in external browser or not at all ([#7205](https://github.com/RocketChat/Rocket.Chat/pull/7205) by [@flaviogrossi](https://github.com/flaviogrossi)) -- sweetalert alignment on mobile ([#7404](https://github.com/RocketChat/Rocket.Chat/pull/7404)) +- sweetalert alignment on mobile ([#7404](https://github.com/RocketChat/Rocket.Chat/pull/7404) by [@karlprieb](https://github.com/karlprieb)) - Sweet-Alert modal popup position on mobile devices ([#7376](https://github.com/RocketChat/Rocket.Chat/pull/7376) by [@Oliver84](https://github.com/Oliver84)) - Update node-engine in Snap to latest v4 LTS relase: 4.8.3 ([#7355](https://github.com/RocketChat/Rocket.Chat/pull/7355) by [@al3x](https://github.com/al3x)) - Remove warning about 2FA support being unavailable in mobile apps ([#7354](https://github.com/RocketChat/Rocket.Chat/pull/7354) by [@al3x](https://github.com/al3x)) @@ -2431,7 +3020,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5!
🔍 Minor changes -- Release 0.58.0 ([#7752](https://github.com/RocketChat/Rocket.Chat/pull/7752) by [@flaviogrossi](https://github.com/flaviogrossi) & [@jangmarker](https://github.com/jangmarker) & [@ryoshimizu](https://github.com/ryoshimizu)) +- Release 0.58.0 ([#7752](https://github.com/RocketChat/Rocket.Chat/pull/7752) by [@flaviogrossi](https://github.com/flaviogrossi) & [@jangmarker](https://github.com/jangmarker) & [@karlprieb](https://github.com/karlprieb) & [@ryoshimizu](https://github.com/ryoshimizu)) - Sync Master with 0.57.3 ([#7690](https://github.com/RocketChat/Rocket.Chat/pull/7690)) - Add missing parts of `one click to direct message` ([#7608](https://github.com/RocketChat/Rocket.Chat/pull/7608)) - LingoHub based on develop ([#7613](https://github.com/RocketChat/Rocket.Chat/pull/7613)) @@ -2466,6 +3055,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@gdelavald](https://github.com/gdelavald) - [@jangmarker](https://github.com/jangmarker) - [@jfchevrette](https://github.com/jfchevrette) +- [@karlprieb](https://github.com/karlprieb) - [@lindoelio](https://github.com/lindoelio) - [@reist](https://github.com/reist) - [@ruKurz](https://github.com/ruKurz) @@ -2485,7 +3075,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@graywolf336](https://github.com/graywolf336) -- [@karlprieb](https://github.com/karlprieb) - [@pierreozoux](https://github.com/pierreozoux) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -2736,7 +3325,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Option to allow to signup as anonymous ([#6797](https://github.com/RocketChat/Rocket.Chat/pull/6797)) - create a method 'create token' ([#6807](https://github.com/RocketChat/Rocket.Chat/pull/6807)) - Add option on Channel Settings: Hide Notifications and Hide Unread Room Status (#2707, #2143) ([#5373](https://github.com/RocketChat/Rocket.Chat/pull/5373)) -- Remove lesshat ([#6722](https://github.com/RocketChat/Rocket.Chat/pull/6722)) +- Remove lesshat ([#6722](https://github.com/RocketChat/Rocket.Chat/pull/6722) by [@karlprieb](https://github.com/karlprieb)) - Use tokenSentVia parameter for clientid/secret to token endpoint ([#6692](https://github.com/RocketChat/Rocket.Chat/pull/6692) by [@intelradoux](https://github.com/intelradoux)) - Add a setting to not run outgoing integrations on message edits ([#6615](https://github.com/RocketChat/Rocket.Chat/pull/6615)) - Improve CI/Docker build/release ([#6938](https://github.com/RocketChat/Rocket.Chat/pull/6938)) @@ -2797,6 +3386,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@gdelavald](https://github.com/gdelavald) - [@glehmann](https://github.com/glehmann) - [@intelradoux](https://github.com/intelradoux) +- [@karlprieb](https://github.com/karlprieb) - [@reist](https://github.com/reist) - [@robertdown](https://github.com/robertdown) - [@sscholl](https://github.com/sscholl) @@ -2810,7 +3400,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@graywolf336](https://github.com/graywolf336) -- [@karlprieb](https://github.com/karlprieb) - [@marceloschmidt](https://github.com/marceloschmidt) - [@rodrigok](https://github.com/rodrigok) - [@sampaiodiego](https://github.com/sampaiodiego) @@ -2847,7 +3436,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! ### 🎉 New features - Add shield.svg api route to generate custom shields/badges ([#6565](https://github.com/RocketChat/Rocket.Chat/pull/6565)) -- resolve merge share function ([#6577](https://github.com/RocketChat/Rocket.Chat/pull/6577) by [@tgxn](https://github.com/tgxn)) +- resolve merge share function ([#6577](https://github.com/RocketChat/Rocket.Chat/pull/6577) by [@karlprieb](https://github.com/karlprieb) & [@tgxn](https://github.com/tgxn)) - Two Factor Auth ([#6476](https://github.com/RocketChat/Rocket.Chat/pull/6476)) - Permission `join-without-join-code` assigned to admins and bots by default ([#6430](https://github.com/RocketChat/Rocket.Chat/pull/6430)) - Integrations, both incoming and outgoing, now have access to the models. Example: `Users.findOneById(id)` ([#6420](https://github.com/RocketChat/Rocket.Chat/pull/6420)) @@ -2862,7 +3451,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Removed Deprecated Package rocketchat:sharedsecret` - emoji picker exception ([#6709](https://github.com/RocketChat/Rocket.Chat/pull/6709) by [@gdelavald](https://github.com/gdelavald)) - Large files crashed browser when trying to show preview ([#6598](https://github.com/RocketChat/Rocket.Chat/pull/6598)) -- messageBox: put "joinCodeRequired" back ([#6600](https://github.com/RocketChat/Rocket.Chat/pull/6600)) +- messageBox: put "joinCodeRequired" back ([#6600](https://github.com/RocketChat/Rocket.Chat/pull/6600) by [@karlprieb](https://github.com/karlprieb)) - Do not add default roles for users without services field ([#6594](https://github.com/RocketChat/Rocket.Chat/pull/6594)) - Accounts from LinkedIn OAuth without name ([#6590](https://github.com/RocketChat/Rocket.Chat/pull/6590)) - Usage of subtagged languages ([#6575](https://github.com/RocketChat/Rocket.Chat/pull/6575)) @@ -2945,7 +3534,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - Flex-Tab CoffeeScript to JavaScript II ([#6277](https://github.com/RocketChat/Rocket.Chat/pull/6277)) - Side-nav CoffeeScript to JavaScript II ([#6266](https://github.com/RocketChat/Rocket.Chat/pull/6266)) - Allow Livechat visitors to switch the department ([#6035](https://github.com/RocketChat/Rocket.Chat/pull/6035) by [@drallgood](https://github.com/drallgood)) -- fix livechat widget on small screens ([#6122](https://github.com/RocketChat/Rocket.Chat/pull/6122)) +- fix livechat widget on small screens ([#6122](https://github.com/RocketChat/Rocket.Chat/pull/6122) by [@karlprieb](https://github.com/karlprieb)) - Allow livechat managers to transfer chats ([#6180](https://github.com/RocketChat/Rocket.Chat/pull/6180) by [@drallgood](https://github.com/drallgood)) - focus first textbox element ([#6257](https://github.com/RocketChat/Rocket.Chat/pull/6257) by [@a5his](https://github.com/a5his)) - Join command ([#6268](https://github.com/RocketChat/Rocket.Chat/pull/6268)) @@ -2986,6 +3575,7 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@drallgood](https://github.com/drallgood) - [@fengt](https://github.com/fengt) - [@gdelavald](https://github.com/gdelavald) +- [@karlprieb](https://github.com/karlprieb) - [@nathanmarcos](https://github.com/nathanmarcos) - [@qge](https://github.com/qge) - [@sezinkarli](https://github.com/sezinkarli) @@ -3000,7 +3590,6 @@ Assistify.Chat is now based on Rocket.Chat 0.68.5! - [@geekgonecrazy](https://github.com/geekgonecrazy) - [@ggazzo](https://github.com/ggazzo) - [@graywolf336](https://github.com/graywolf336) -- [@karlprieb](https://github.com/karlprieb) - [@marceloschmidt](https://github.com/marceloschmidt) - [@mrsimpson](https://github.com/mrsimpson) - [@rodrigok](https://github.com/rodrigok) diff --git a/client/helpers/escapeCssUrl.js b/client/helpers/escapeCssUrl.js index da096052273e..bc4344794d3a 100644 --- a/client/helpers/escapeCssUrl.js +++ b/client/helpers/escapeCssUrl.js @@ -1,3 +1 @@ -Template.registerHelper('escapeCssUrl', url => { - return url.replace(/(['"])/g, '\\$1'); -}); +Template.registerHelper('escapeCssUrl', (url) => url.replace(/(['"])/g, '\\$1')); diff --git a/client/helpers/not.js b/client/helpers/not.js index 91b4e19a3c86..9d5597e28f25 100644 --- a/client/helpers/not.js +++ b/client/helpers/not.js @@ -1,3 +1 @@ -Template.registerHelper('not', (value) => { - return !value; -}); +Template.registerHelper('not', (value) => !value); diff --git a/client/lib/handleError.js b/client/lib/handleError.js index 84aa1cf60fdf..e4bff4ad3c7e 100644 --- a/client/lib/handleError.js +++ b/client/lib/handleError.js @@ -13,7 +13,7 @@ this.handleError = function(error, useToastr = true) { if (useToastr) { const details = Object.entries(error.details || {}) - .reduce((obj, [ key, value ]) => ({ ...obj, [key] : s.escapeHTML(value) }), {}); + .reduce((obj, [key, value]) => ({ ...obj, [key] : s.escapeHTML(value) }), {}); const message = TAPi18n.__(error.error, details); const title = details.errorTitle && TAPi18n.__(details.errorTitle); diff --git a/client/methods/deleteMessage.js b/client/methods/deleteMessage.js index b57f5c412bb7..2c63a58da76a 100644 --- a/client/methods/deleteMessage.js +++ b/client/methods/deleteMessage.js @@ -7,7 +7,7 @@ Meteor.methods({ return false; } - //We're now only passed in the `_id` property to lower the amount of data sent to the server + // We're now only passed in the `_id` property to lower the amount of data sent to the server message = ChatMessage.findOne({ _id: message._id }); const hasPermission = RocketChat.authz.hasAtLeastOnePermission('delete-message', message.rid); @@ -35,8 +35,8 @@ Meteor.methods({ Tracker.nonreactive(function() { ChatMessage.remove({ _id: message._id, - 'u._id': Meteor.userId() + 'u._id': Meteor.userId(), }); }); - } + }, }); diff --git a/client/methods/hideRoom.js b/client/methods/hideRoom.js index ba3f2c2dcb1b..210937dd62db 100644 --- a/client/methods/hideRoom.js +++ b/client/methods/hideRoom.js @@ -6,12 +6,12 @@ Meteor.methods({ ChatSubscription.update({ rid, - 'u._id': Meteor.userId() + 'u._id': Meteor.userId(), }, { $set: { alert: false, - open: false - } + open: false, + }, }); - } + }, }); diff --git a/client/methods/openRoom.js b/client/methods/openRoom.js index bb8ae962442d..87c082ced863 100644 --- a/client/methods/openRoom.js +++ b/client/methods/openRoom.js @@ -6,11 +6,11 @@ Meteor.methods({ ChatSubscription.update({ rid, - 'u._id': Meteor.userId() + 'u._id': Meteor.userId(), }, { $set: { - open: true - } + open: true, + }, }); - } + }, }); diff --git a/client/methods/setUserActiveStatus.js b/client/methods/setUserActiveStatus.js index c164fcd8fa4a..97cbe7c7dbbb 100644 --- a/client/methods/setUserActiveStatus.js +++ b/client/methods/setUserActiveStatus.js @@ -2,5 +2,5 @@ Meteor.methods({ setUserActiveStatus(userId, active) { Meteor.users.update(userId, { $set: { active } }); return true; - } + }, }); diff --git a/client/methods/toggleFavorite.js b/client/methods/toggleFavorite.js index 1579b6223a5f..e9c55b3440df 100644 --- a/client/methods/toggleFavorite.js +++ b/client/methods/toggleFavorite.js @@ -6,11 +6,11 @@ Meteor.methods({ ChatSubscription.update({ rid, - 'u._id': Meteor.userId() + 'u._id': Meteor.userId(), }, { $set: { - f - } + f, + }, }); - } + }, }); diff --git a/client/methods/updateMessage.js b/client/methods/updateMessage.js index 8e4d6986e148..43552aa88f81 100644 --- a/client/methods/updateMessage.js +++ b/client/methods/updateMessage.js @@ -48,11 +48,11 @@ Meteor.methods({ message.editedBy = { _id: Meteor.userId(), - username: me.username + username: me.username, }; message = RocketChat.callbacks.run('beforeSaveMessage', message); - const messageObject = {'editedAt': message.editedAt, 'editedBy': message.editedBy, msg: message.msg}; + const messageObject = { editedAt: message.editedAt, editedBy: message.editedBy, msg: message.msg }; if (originalMessage.attachments) { if (originalMessage.attachments[0].description !== undefined) { @@ -61,8 +61,8 @@ Meteor.methods({ } ChatMessage.update({ _id: message._id, - 'u._id': Meteor.userId() - }, {$set : messageObject}); + 'u._id': Meteor.userId(), + }, { $set : messageObject }); }); - } + }, }); diff --git a/client/notifications/UsersNameChanged.js b/client/notifications/UsersNameChanged.js index 68f23ea3e133..88438545b678 100644 --- a/client/notifications/UsersNameChanged.js +++ b/client/notifications/UsersNameChanged.js @@ -1,34 +1,34 @@ Meteor.startup(function() { - RocketChat.Notifications.onLogged('Users:NameChanged', function({_id, name, username}) { + RocketChat.Notifications.onLogged('Users:NameChanged', function({ _id, name, username }) { RocketChat.models.Messages.update({ - 'u._id': _id + 'u._id': _id, }, { $set: { - 'u.name': name - } + 'u.name': name, + }, }, { - multi: true + multi: true, }); RocketChat.models.Messages.update({ mentions: { - $elemMatch: { _id } - } + $elemMatch: { _id }, + }, }, { $set: { - 'mentions.$.name': name - } + 'mentions.$.name': name, + }, }, { - multi: true + multi: true, }); RocketChat.models.Subscriptions.update({ name: username, - t: 'd' + t: 'd', }, { $set: { - fname: name - } + fname: name, + }, }); }); }); diff --git a/client/notifications/notification.js b/client/notifications/notification.js index db2b30ca3bb7..031b3bd963c9 100644 --- a/client/notifications/notification.js +++ b/client/notifications/notification.js @@ -34,7 +34,7 @@ Meteor.startup(function() { fireGlobalEvent('notification', { notification, fromOpenedRoom: messageIsInOpenedRoom, - hasFocus + hasFocus, }); if (RocketChat.Layout.isEmbedded()) { diff --git a/client/routes/adminRouter.js b/client/routes/adminRouter.js index 0675c0763476..5f75a3733fa1 100644 --- a/client/routes/adminRouter.js +++ b/client/routes/adminRouter.js @@ -1,48 +1,48 @@ FlowRouter.route('/admin/users', { name: 'admin-users', action() { - BlazeLayout.render('main', {center: 'adminUsers'}); - } + BlazeLayout.render('main', { center: 'adminUsers' }); + }, }); FlowRouter.route('/admin/rooms', { name: 'admin-rooms', action() { - BlazeLayout.render('main', {center: 'adminRooms'}); - } + BlazeLayout.render('main', { center: 'adminRooms' }); + }, }); FlowRouter.route('/admin/info', { name: 'admin-info', action() { - BlazeLayout.render('main', {center: 'adminInfo'}); - } + BlazeLayout.render('main', { center: 'adminInfo' }); + }, }); FlowRouter.route('/admin/import', { name: 'admin-import', action() { - BlazeLayout.render('main', {center: 'adminImport'}); - } + BlazeLayout.render('main', { center: 'adminImport' }); + }, }); FlowRouter.route('/admin/import/prepare/:importer', { name: 'admin-import-prepare', action() { - BlazeLayout.render('main', {center: 'adminImportPrepare'}); - } + BlazeLayout.render('main', { center: 'adminImportPrepare' }); + }, }); FlowRouter.route('/admin/import/progress/:importer', { name: 'admin-import-progress', action() { - BlazeLayout.render('main', {center: 'adminImportProgress'}); - } + BlazeLayout.render('main', { center: 'adminImportProgress' }); + }, }); FlowRouter.route('/admin/:group?', { name: 'admin', action() { - BlazeLayout.render('main', {center: 'admin'}); - } + BlazeLayout.render('main', { center: 'admin' }); + }, }); diff --git a/client/routes/roomRoute.js b/client/routes/roomRoute.js index 126b351abeaa..02323fb20c52 100644 --- a/client/routes/roomRoute.js +++ b/client/routes/roomRoute.js @@ -1,9 +1,9 @@ FlowRouter.goToRoomById = (roomId) => { - const room = ChatRoom.findOne({_id: roomId}); + const room = ChatRoom.findOne({ _id: roomId }); if (room) { RocketChat.roomTypes.openRouteLink(room.t, room, FlowRouter.current().queryParams); } else { - Meteor.call('getRoomNameAndTypeByNameOrId', roomId, (err, room)=>{ + Meteor.call('getRoomNameAndTypeByNameOrId', roomId, (err, room) => { if (!err) { RocketChat.roomTypes.openRouteLink(room.t, room, FlowRouter.current().queryParams); } diff --git a/client/routes/router.js b/client/routes/router.js index 2f0ad84ee1f1..69b69dac0b5a 100644 --- a/client/routes/router.js +++ b/client/routes/router.js @@ -38,7 +38,7 @@ FlowRouter.route('/', { c.stop(); } }); - } + }, }); @@ -47,7 +47,7 @@ FlowRouter.route('/login', { action() { FlowRouter.go('home'); - } + }, }); FlowRouter.route('/home', { @@ -59,25 +59,25 @@ FlowRouter.route('/home', { Accounts.callLoginMethod({ methodArguments: [{ saml: true, - credentialToken: queryParams.saml_idp_credentialToken + credentialToken: queryParams.saml_idp_credentialToken, }], - userCallback() { BlazeLayout.render('main', {center: 'home'}); } + userCallback() { BlazeLayout.render('main', { center: 'home' }); }, }); } else { - BlazeLayout.render('main', {center: 'home'}); + BlazeLayout.render('main', { center: 'home' }); } - } + }, }); FlowRouter.route('/directory', { name: 'directory', action() { - BlazeLayout.render('main', {center: 'directory'}); + BlazeLayout.render('main', { center: 'directory' }); }, triggersExit: [function() { $('.main-content').addClass('rc-old'); - }] + }], }); FlowRouter.route('/account/:group?', { @@ -92,7 +92,7 @@ FlowRouter.route('/account/:group?', { }, triggersExit: [function() { $('.main-content').addClass('rc-old'); - }] + }], }); FlowRouter.route('/terms-of-service', { @@ -101,7 +101,7 @@ FlowRouter.route('/terms-of-service', { action() { Session.set('cmsPage', 'Layout_Terms_of_Service'); BlazeLayout.render('cmsPage'); - } + }, }); FlowRouter.route('/privacy-policy', { @@ -110,16 +110,16 @@ FlowRouter.route('/privacy-policy', { action() { Session.set('cmsPage', 'Layout_Privacy_Policy'); BlazeLayout.render('cmsPage'); - } + }, }); FlowRouter.route('/room-not-found/:type/:name', { name: 'room-not-found', action(params) { - Session.set('roomNotFound', {type: params.type, name: params.name}); - BlazeLayout.render('main', {center: 'roomNotFound'}); - } + Session.set('roomNotFound', { type: params.type, name: params.name }); + BlazeLayout.render('main', { center: 'roomNotFound' }); + }, }); FlowRouter.route('/fxos', { @@ -127,13 +127,13 @@ FlowRouter.route('/fxos', { action() { BlazeLayout.render('fxOsInstallPrompt'); - } + }, }); FlowRouter.route('/register/:hash', { name: 'register-secret-url', - action(/*params*/) { + action(/* params*/) { BlazeLayout.render('secretURL'); // if RocketChat.settings.get('Accounts_RegistrationForm') is 'Secret URL' @@ -146,7 +146,7 @@ FlowRouter.route('/register/:hash', { // BlazeLayout.render 'logoLayout', { render: 'invalidSecretURL' } // else // BlazeLayout.render 'logoLayout', { render: 'invalidSecretURL' } - } + }, }); FlowRouter.route('/setup-wizard', { @@ -154,7 +154,7 @@ FlowRouter.route('/setup-wizard', { action() { BlazeLayout.render('setupWizard'); - } + }, }); FlowRouter.route('/setup-wizard/final', { @@ -162,12 +162,12 @@ FlowRouter.route('/setup-wizard/final', { action() { BlazeLayout.render('setupWizardFinal'); - } + }, }); FlowRouter.notFound = { action() { BlazeLayout.render('pageNotFound'); - } + }, }; diff --git a/client/startup/i18n.js b/client/startup/i18n.js index dd98fb57460d..5e426f4dd698 100644 --- a/client/startup/i18n.js +++ b/client/startup/i18n.js @@ -10,7 +10,7 @@ Meteor.startup(() => { const availableLanguages = TAPi18n.getLanguages(); - const filterLanguage = language => { + const filterLanguage = (language) => { // Fix browsers having all-lowercase language settings eg. pt-br, en-us const regex = /([a-z]{2})-([a-z]{2})/; const matches = regex.exec(language); @@ -23,7 +23,7 @@ Meteor.startup(() => { const getBrowserLanguage = () => filterLanguage(window.navigator.userLanguage || window.navigator.language); - const loadMomentLocale = language => new Promise((resolve, reject) => { + const loadMomentLocale = (language) => new Promise((resolve, reject) => { if (moment.locales().includes(language.toLowerCase())) { resolve(language); return; @@ -53,7 +53,7 @@ Meteor.startup(() => { document.documentElement.classList[isRtl(language) ? 'add' : 'remove']('rtl'); TAPi18n.setLanguage(language); - loadMomentLocale(language).then(locale => moment.locale(locale), error => console.error(error)); + loadMomentLocale(language).then((locale) => moment.locale(locale), (error) => console.error(error)); }; const setLanguage = (language) => { @@ -67,7 +67,7 @@ Meteor.startup(() => { window.defaultUserLanguage = defaultUserLanguage; Tracker.autorun(() => { - const user = RocketChat.models.Users.findOne(Meteor.userId(), { fields: { language: 1 }}); + const user = RocketChat.models.Users.findOne(Meteor.userId(), { fields: { language: 1 } }); setLanguage((user && user.language) || defaultUserLanguage()); }); diff --git a/client/startup/roomObserve.js b/client/startup/roomObserve.js index f2b6bafd8acd..6681b89f8f7a 100644 --- a/client/startup/roomObserve.js +++ b/client/startup/roomObserve.js @@ -8,6 +8,6 @@ Meteor.startup(function() { }, removed(data) { Session.set(`roomData${ data._id }`, undefined); - } + }, }); }); diff --git a/client/startup/startup.js b/client/startup/startup.js index b26d75a32be7..d29aae306a91 100644 --- a/client/startup/startup.js +++ b/client/startup/startup.js @@ -39,8 +39,8 @@ Meteor.startup(function() { fields: { status: 1, 'settings.preferences.idleTimeLimit': 1, - 'settings.preferences.enableAutoAway': 1 - } + 'settings.preferences.enableAutoAway': 1, + }, }); if (!user) { diff --git a/client/startup/unread.js b/client/startup/unread.js index 258bfa418a2d..53307c824426 100644 --- a/client/startup/unread.js +++ b/client/startup/unread.js @@ -5,7 +5,7 @@ Meteor.startup(function() { let unreadCount = 0; let unreadAlert = false; - const subscriptions = ChatSubscription.find({open: true, hideUnreadStatus: { $ne: true }}, { fields: { unread: 1, alert: 1, rid: 1, t: 1, name: 1, ls: 1, unreadAlert: 1 } }); + const subscriptions = ChatSubscription.find({ open: true, hideUnreadStatus: { $ne: true } }, { fields: { unread: 1, alert: 1, rid: 1, t: 1, name: 1, ls: 1, unreadAlert: 1 } }); let openedRoomId = undefined; Tracker.nonreactive(function() { @@ -63,7 +63,7 @@ Meteor.startup(function() { Meteor.startup(function() { window.favico = new Favico({ position: 'up', - animation: 'none' + animation: 'none', }); Tracker.autorun(function() { @@ -74,7 +74,7 @@ Meteor.startup(function() { if (favico) { favico.badge(unread, { - bgColor: typeof unread !== 'number' ? '#3d8a3a' : '#ac1b1b' + bgColor: typeof unread !== 'number' ? '#3d8a3a' : '#ac1b1b', }); } diff --git a/client/startup/userSetUtcOffset.js b/client/startup/userSetUtcOffset.js index 14542fede1c2..7916222214b3 100644 --- a/client/startup/userSetUtcOffset.js +++ b/client/startup/userSetUtcOffset.js @@ -2,7 +2,7 @@ import moment from 'moment'; Meteor.startup(function() { Tracker.autorun(function() { - const user = RocketChat.models.Users.findOne({_id: Meteor.userId()}, {fields: {statusConnection: 1, utcOffset: 1}}); + const user = RocketChat.models.Users.findOne({ _id: Meteor.userId() }, { fields: { statusConnection: 1, utcOffset: 1 } }); if (user && user.statusConnection === 'online') { const utcOffset = moment().utcOffset() / 60; if (user.utcOffset !== utcOffset) { diff --git a/client/startup/usersObserve.js b/client/startup/usersObserve.js index 2dbddf942059..3ed237430286 100644 --- a/client/startup/usersObserve.js +++ b/client/startup/usersObserve.js @@ -11,6 +11,6 @@ Meteor.startup(function() { removed(user) { Session.set(`user_${ user.username }_status`, null); RoomManager.updateUserStatus(user, 'offline', null); - } + }, }); }); diff --git a/imports/message-read-receipt/client/main.js b/imports/message-read-receipt/client/main.js index c2711f6663dd..a40a8b0a6190 100644 --- a/imports/message-read-receipt/client/main.js +++ b/imports/message-read-receipt/client/main.js @@ -3,5 +3,5 @@ Template.main.helpers({ if (RocketChat.settings.get('Message_Read_Receipt_Store_Users')) { return 'read-receipts-enabled'; } - } + }, }); diff --git a/imports/message-read-receipt/client/message.js b/imports/message-read-receipt/client/message.js index 9a89d937b6c4..8c08a2b502d5 100644 --- a/imports/message-read-receipt/client/message.js +++ b/imports/message-read-receipt/client/message.js @@ -7,7 +7,7 @@ Template.message.helpers({ } return { - readByEveryone: (!this.unread && 'read') || 'color-component-color' + readByEveryone: (!this.unread && 'read') || 'color-component-color', }; - } + }, }); diff --git a/imports/message-read-receipt/client/readReceipts.js b/imports/message-read-receipt/client/readReceipts.js index b1a9cde21644..bfdac29a99e1 100644 --- a/imports/message-read-receipt/client/readReceipts.js +++ b/imports/message-read-receipt/client/readReceipts.js @@ -16,7 +16,7 @@ Template.readReceipts.helpers({ }, isLoading() { return Template.instance().loading.get(); - } + }, }); Template.readReceipts.onCreated(function readReceiptsOnCreated() { diff --git a/imports/message-read-receipt/client/room.js b/imports/message-read-receipt/client/room.js index dc5cde1e4a6b..89f61ccab43a 100644 --- a/imports/message-read-receipt/client/room.js +++ b/imports/message-read-receipt/client/room.js @@ -9,16 +9,16 @@ RocketChat.MessageAction.addButton({ title: t('Message_info'), content: 'readReceipts', data: { - messageId: message._id + messageId: message._id, }, showConfirmButton: true, showCancelButton: false, - confirmButtonText: t('Close') + confirmButtonText: t('Close'), }); }, condition() { return RocketChat.settings.get('Message_Read_Receipt_Store_Users'); }, order: 1, - group: 'menu' + group: 'menu', }); diff --git a/imports/message-read-receipt/server/api/methods/getReadReceipts.js b/imports/message-read-receipt/server/api/methods/getReadReceipts.js index da9c7ecbe995..4c8a10096960 100644 --- a/imports/message-read-receipt/server/api/methods/getReadReceipts.js +++ b/imports/message-read-receipt/server/api/methods/getReadReceipts.js @@ -24,5 +24,5 @@ Meteor.methods({ } return ReadReceipt.getReceipts(message); - } + }, }); diff --git a/imports/message-read-receipt/server/dbIndexes.js b/imports/message-read-receipt/server/dbIndexes.js index b88d4021a7bf..3d82fc7be455 100644 --- a/imports/message-read-receipt/server/dbIndexes.js +++ b/imports/message-read-receipt/server/dbIndexes.js @@ -1,5 +1,5 @@ RocketChat.models.Messages.tryEnsureIndex({ - unread: 1 + unread: 1, }, { - sparse: true + sparse: true, }); diff --git a/imports/message-read-receipt/server/lib/ReadReceipt.js b/imports/message-read-receipt/server/lib/ReadReceipt.js index 8cde6157ab29..04261faadee8 100644 --- a/imports/message-read-receipt/server/lib/ReadReceipt.js +++ b/imports/message-read-receipt/server/lib/ReadReceipt.js @@ -55,15 +55,13 @@ export const ReadReceipt = { storeReadReceipts(messages, roomId, userId) { if (RocketChat.settings.get('Message_Read_Receipt_Store_Users')) { const ts = new Date(); - const receipts = messages.map(message => { - return { - _id: Random.id(), - roomId, - userId, - messageId: message._id, - ts - }; - }); + const receipts = messages.map((message) => ({ + _id: Random.id(), + roomId, + userId, + messageId: message._id, + ts, + })); if (receipts.length === 0) { return; @@ -78,9 +76,9 @@ export const ReadReceipt = { }, getReceipts(message) { - return ModelReadReceipts.findByMessageId(message._id).map(receipt => ({ + return ModelReadReceipts.findByMessageId(message._id).map((receipt) => ({ ...receipt, - user: RocketChat.models.Users.findOneById(receipt.userId, { fields: { username: 1, name: 1 }}) + user: RocketChat.models.Users.findOneById(receipt.userId, { fields: { username: 1, name: 1 } }), })); - } + }, }; diff --git a/imports/message-read-receipt/server/models/ReadReceipts.js b/imports/message-read-receipt/server/models/ReadReceipts.js index 4749ae5bb281..5d62edb1fdde 100644 --- a/imports/message-read-receipt/server/models/ReadReceipts.js +++ b/imports/message-read-receipt/server/models/ReadReceipts.js @@ -1,13 +1,13 @@ class ModelReadReceipts extends RocketChat.models._Base { - constructor() { - super(...arguments); + constructor(...args) { + super(...args); this.tryEnsureIndex({ roomId: 1, userId: 1, - messageId: 1 + messageId: 1, }, { - unique: 1 + unique: 1, }); } diff --git a/imports/message-read-receipt/server/settings.js b/imports/message-read-receipt/server/settings.js index 5349ab399b8b..39d3bd33f2e2 100644 --- a/imports/message-read-receipt/server/settings.js +++ b/imports/message-read-receipt/server/settings.js @@ -1,12 +1,12 @@ RocketChat.settings.add('Message_Read_Receipt_Enabled', false, { group: 'Message', type: 'boolean', - public: true + public: true, }); RocketChat.settings.add('Message_Read_Receipt_Store_Users', false, { group: 'Message', type: 'boolean', public: true, - enableQuery: { _id: 'Message_Read_Receipt_Enabled', value: true } + enableQuery: { _id: 'Message_Read_Receipt_Enabled', value: true }, }); diff --git a/imports/personal-access-tokens/client/index.js b/imports/personal-access-tokens/client/index.js new file mode 100644 index 000000000000..621ead8218b0 --- /dev/null +++ b/imports/personal-access-tokens/client/index.js @@ -0,0 +1 @@ +import './personalAccessTokens'; diff --git a/imports/personal-access-tokens/client/personalAccessTokens.html b/imports/personal-access-tokens/client/personalAccessTokens.html new file mode 100644 index 000000000000..31a0e7e3adab --- /dev/null +++ b/imports/personal-access-tokens/client/personalAccessTokens.html @@ -0,0 +1,68 @@ + diff --git a/imports/personal-access-tokens/client/personalAccessTokens.js b/imports/personal-access-tokens/client/personalAccessTokens.js new file mode 100644 index 000000000000..c28896968dfc --- /dev/null +++ b/imports/personal-access-tokens/client/personalAccessTokens.js @@ -0,0 +1,107 @@ +import { ReactiveVar } from 'meteor/reactive-var'; +import toastr from 'toastr'; +import moment from 'moment'; + +import './personalAccessTokens.html'; + +const PersonalAccessTokens = new Mongo.Collection('personal_access_tokens'); + +Template.accountTokens.helpers({ + isAllowed() { + return RocketChat.settings.get('API_Enable_Personal_Access_Tokens'); + }, + tokens() { + return (PersonalAccessTokens.find({}).fetch()[0] && PersonalAccessTokens.find({}).fetch()[0].tokens) || []; + }, + dateFormated(date) { + return moment(date).format('L LT'); + }, +}); + +const showSuccessModal = (token) => { + modal.open({ + title: t('API_Personal_Access_Token_Generated'), + text: t('API_Personal_Access_Token_Generated_Text_Token_s_UserId_s', { token, userId: Meteor.userId() }), + type: 'success', + confirmButtonColor: '#DD6B55', + confirmButtonText: 'Ok', + closeOnConfirm: true, + html: true, + }, () => { + }); +}; +Template.accountTokens.events({ + 'submit #form-tokens'(e, instance) { + e.preventDefault(); + const tokenName = e.currentTarget.elements.tokenName.value.trim(); + if (tokenName === '') { + return toastr.error(t('Please_fill_a_token_name')); + } + Meteor.call('personalAccessTokens:generateToken', { tokenName }, (error, token) => { + if (error) { + return toastr.error(t(error.error)); + } + showSuccessModal(token); + instance.find('#input-token-name').value = ''; + }); + }, + 'click .remove-personal-access-token'() { + modal.open({ + title: t('Are_you_sure'), + text: t('API_Personal_Access_Tokens_Remove_Modal'), + type: 'warning', + showCancelButton: true, + confirmButtonColor: '#DD6B55', + confirmButtonText: t('Yes'), + cancelButtonText: t('Cancel'), + closeOnConfirm: true, + html: false, + }, () => { + Meteor.call('personalAccessTokens:removeToken', { + tokenName: this.name, + }, (error) => { + if (error) { + return toastr.error(t(error.error)); + } + toastr.success(t('Removed')); + }); + }); + }, + 'click .regenerate-personal-access-token'() { + modal.open({ + title: t('Are_you_sure'), + text: t('API_Personal_Access_Tokens_Regenerate_Modal'), + type: 'warning', + showCancelButton: true, + confirmButtonColor: '#DD6B55', + confirmButtonText: t('API_Personal_Access_Tokens_Regenerate_It'), + cancelButtonText: t('Cancel'), + closeOnConfirm: true, + html: false, + }, () => { + Meteor.call('personalAccessTokens:regenerateToken', { + tokenName: this.name, + }, (error, token) => { + if (error) { + return toastr.error(t(error.error)); + } + showSuccessModal(token); + }); + }); + }, +}); + +Template.accountTokens.onCreated(function() { + this.ready = new ReactiveVar(true); + const subscription = this.subscribe('personalAccessTokens'); + this.autorun(() => { + this.ready.set(subscription.ready()); + }); +}); + +Template.accountTokens.onRendered(function() { + Tracker.afterFlush(function() { + SideNav.setFlex('accountFlex'); + SideNav.openFlex(); + }); +}); diff --git a/imports/personal-access-tokens/server/api/methods/generateToken.js b/imports/personal-access-tokens/server/api/methods/generateToken.js new file mode 100644 index 000000000000..68f337e357c5 --- /dev/null +++ b/imports/personal-access-tokens/server/api/methods/generateToken.js @@ -0,0 +1,35 @@ +import { Meteor } from 'meteor/meteor'; +import { Random } from 'meteor/random'; +import { Accounts } from 'meteor/accounts-base'; + +Meteor.methods({ + 'personalAccessTokens:generateToken'({ tokenName }) { + if (!Meteor.userId()) { + throw new Meteor.Error('not-authorized', 'Not Authorized', { method: 'personalAccessTokens:generateToken' }); + } + if (!RocketChat.settings.get('API_Enable_Personal_Access_Tokens')) { + throw new Meteor.Error('error-personal-access-tokens-are-current-disabled', 'Personal Access Tokens are currently disabled', { method: 'personalAccessTokens:generateToken' }); + } + + const token = Random.secret(); + const tokenExist = RocketChat.models.Users.findPersonalAccessTokenByTokenNameAndUserId({ + userId: Meteor.userId(), + tokenName, + }); + if (tokenExist) { + throw new Meteor.Error('error-token-already-exists', 'A token with this name already exists', { method: 'personalAccessTokens:generateToken' }); + } + + RocketChat.models.Users.addPersonalAccessTokenToUser({ + userId: Meteor.userId(), + loginTokenObject: { + hashedToken: Accounts._hashLoginToken(token), + type: 'personalAccessToken', + createdAt: new Date(), + lastTokenPart: token.slice(-6), + name: tokenName, + }, + }); + return token; + }, +}); diff --git a/imports/personal-access-tokens/server/api/methods/index.js b/imports/personal-access-tokens/server/api/methods/index.js new file mode 100644 index 000000000000..a4edd2289186 --- /dev/null +++ b/imports/personal-access-tokens/server/api/methods/index.js @@ -0,0 +1,3 @@ +import './generateToken'; +import './regenerateToken'; +import './removeToken'; diff --git a/imports/personal-access-tokens/server/api/methods/regenerateToken.js b/imports/personal-access-tokens/server/api/methods/regenerateToken.js new file mode 100644 index 000000000000..6b36f9adf25c --- /dev/null +++ b/imports/personal-access-tokens/server/api/methods/regenerateToken.js @@ -0,0 +1,23 @@ +import { Meteor } from 'meteor/meteor'; + +Meteor.methods({ + 'personalAccessTokens:regenerateToken'({ tokenName }) { + if (!Meteor.userId()) { + throw new Meteor.Error('not-authorized', 'Not Authorized', { method: 'personalAccessTokens:regenerateToken' }); + } + if (!RocketChat.settings.get('API_Enable_Personal_Access_Tokens')) { + throw new Meteor.Error('error-personal-access-tokens-are-current-disabled', 'Personal Access Tokens are currently disabled', { method: 'personalAccessTokens:regenerateToken' }); + } + + const tokenExist = RocketChat.models.Users.findPersonalAccessTokenByTokenNameAndUserId({ + userId: Meteor.userId(), + tokenName, + }); + if (!tokenExist) { + throw new Meteor.Error('error-token-does-not-exists', 'Token does not exist', { method: 'personalAccessTokens:regenerateToken' }); + } + + Meteor.call('personalAccessTokens:removeToken', { tokenName }); + return Meteor.call('personalAccessTokens:generateToken', { tokenName }); + }, +}); diff --git a/imports/personal-access-tokens/server/api/methods/removeToken.js b/imports/personal-access-tokens/server/api/methods/removeToken.js new file mode 100644 index 000000000000..ff7be8de698c --- /dev/null +++ b/imports/personal-access-tokens/server/api/methods/removeToken.js @@ -0,0 +1,26 @@ +import { Meteor } from 'meteor/meteor'; + +Meteor.methods({ + 'personalAccessTokens:removeToken'({ tokenName }) { + if (!Meteor.userId()) { + throw new Meteor.Error('not-authorized', 'Not Authorized', { method: 'personalAccessTokens:removeToken' }); + } + if (!RocketChat.settings.get('API_Enable_Personal_Access_Tokens')) { + throw new Meteor.Error('error-personal-access-tokens-are-current-disabled', 'Personal Access Tokens are currently disabled', { method: 'personalAccessTokens:removeToken' }); + } + const tokenExist = RocketChat.models.Users.findPersonalAccessTokenByTokenNameAndUserId({ + userId: Meteor.userId(), + tokenName, + }); + if (!tokenExist) { + throw new Meteor.Error('error-token-does-not-exists', 'Token does not exist', { method: 'personalAccessTokens:removeToken' }); + } + RocketChat.models.Users.removePersonalAccessTokenOfUser({ + userId: Meteor.userId(), + loginTokenObject: { + type: 'personalAccessToken', + name: tokenName, + }, + }); + }, +}); diff --git a/imports/personal-access-tokens/server/index.js b/imports/personal-access-tokens/server/index.js new file mode 100644 index 000000000000..ca18192c8e77 --- /dev/null +++ b/imports/personal-access-tokens/server/index.js @@ -0,0 +1,6 @@ +import './api/methods'; +import './settings'; +import './models'; +import './publications'; + + diff --git a/imports/personal-access-tokens/server/models/Users.js b/imports/personal-access-tokens/server/models/Users.js new file mode 100644 index 000000000000..6785ac815a48 --- /dev/null +++ b/imports/personal-access-tokens/server/models/Users.js @@ -0,0 +1,39 @@ +RocketChat.models.Users.getLoginTokensByUserId = function(userId) { + const query = { + 'services.resume.loginTokens.type': { + $exists: true, + $eq: 'personalAccessToken', + }, + _id: userId, + }; + + return this.find(query, { fields: { 'services.resume.loginTokens': 1 } }); +}; + +RocketChat.models.Users.addPersonalAccessTokenToUser = function({ userId, loginTokenObject }) { + return this.update(userId, { + $push: { + 'services.resume.loginTokens': loginTokenObject, + }, + }); +}; + +RocketChat.models.Users.removePersonalAccessTokenOfUser = function({ userId, loginTokenObject }) { + return this.update(userId, { + $pull: { + 'services.resume.loginTokens': loginTokenObject, + }, + }); +}; + +RocketChat.models.Users.findPersonalAccessTokenByTokenNameAndUserId = function({ userId, tokenName }) { + const query = { + 'services.resume.loginTokens': { + $elemMatch: { name: tokenName, type: 'personalAccessToken' }, + }, + _id: userId, + }; + + return this.findOne(query); +}; + diff --git a/imports/personal-access-tokens/server/models/index.js b/imports/personal-access-tokens/server/models/index.js new file mode 100644 index 000000000000..499666bb4d94 --- /dev/null +++ b/imports/personal-access-tokens/server/models/index.js @@ -0,0 +1 @@ +import './Users'; diff --git a/imports/personal-access-tokens/server/publications/index.js b/imports/personal-access-tokens/server/publications/index.js new file mode 100644 index 000000000000..621ead8218b0 --- /dev/null +++ b/imports/personal-access-tokens/server/publications/index.js @@ -0,0 +1 @@ +import './personalAccessTokens'; diff --git a/imports/personal-access-tokens/server/publications/personalAccessTokens.js b/imports/personal-access-tokens/server/publications/personalAccessTokens.js new file mode 100644 index 000000000000..bdc75b9a9ecf --- /dev/null +++ b/imports/personal-access-tokens/server/publications/personalAccessTokens.js @@ -0,0 +1,35 @@ +import { Meteor } from 'meteor/meteor'; + +Meteor.publish('personalAccessTokens', function() { + if (!this.userId) { + return this.ready(); + } + if (!RocketChat.settings.get('API_Enable_Personal_Access_Tokens')) { + return this.ready(); + } + const self = this; + const getFieldsToPublish = (fields) => fields.services.resume.loginTokens + .filter((loginToken) => loginToken.type && loginToken.type === 'personalAccessToken') + .map((loginToken) => ({ + name: loginToken.name, + createdAt: loginToken.createdAt, + lastTokenPart: loginToken.lastTokenPart, + })); + const handle = RocketChat.models.Users.getLoginTokensByUserId(this.userId).observeChanges({ + added(id, fields) { + self.added('personal_access_tokens', id, { tokens: getFieldsToPublish(fields) }); + }, + changed(id, fields) { + self.changed('personal_access_tokens', id, { tokens: getFieldsToPublish(fields) }); + }, + removed(id) { + self.removed('personal_access_tokens', id); + }, + }); + + self.ready(); + + self.onStop(function() { + handle.stop(); + }); +}); diff --git a/imports/personal-access-tokens/server/settings.js b/imports/personal-access-tokens/server/settings.js new file mode 100644 index 000000000000..fa2aba8cfb24 --- /dev/null +++ b/imports/personal-access-tokens/server/settings.js @@ -0,0 +1,5 @@ +RocketChat.settings.addGroup('General', function() { + this.section('REST API', function() { + this.add('API_Enable_Personal_Access_Tokens', false, { type: 'boolean', public: true }); + }); +}); diff --git a/imports/startup/client/index.js b/imports/startup/client/index.js index d61ded85f56a..4e417640eab6 100644 --- a/imports/startup/client/index.js +++ b/imports/startup/client/index.js @@ -1 +1,2 @@ import '../../message-read-receipt/client'; +import '../../personal-access-tokens/client'; diff --git a/imports/startup/server/index.js b/imports/startup/server/index.js index 261b86e752db..8b7c5bd8020b 100644 --- a/imports/startup/server/index.js +++ b/imports/startup/server/index.js @@ -1 +1,2 @@ import '../../message-read-receipt/server'; +import '../../personal-access-tokens/server'; diff --git a/install.sh b/install.sh index b9d788b3b94d..f1cc8026fa71 100755 --- a/install.sh +++ b/install.sh @@ -11,8 +11,20 @@ if [ "$1" == "development" ]; then fi cd $ROOTPATH -curl -fSL "https://s3.amazonaws.com/rocketchatbuild/rocket.chat-develop.tgz" -o rocket.chat.tgz -tar zxf rocket.chat.tgz && rm rocket.chat.tgz +gpg --keyserver ha.pool.sks-keyservers.net --recv-keys 0E163286C20D07B9787EBE9FD7F9D0414FD08104 + +curl -SLf "https://releases.rocket.chat/latest/download/" -o rocket.chat.tgz +curl -SLf "https://releases.rocket.chat/latest/asc" -o rocket.chat.tgz.asc \ + +gpg --verify rocket.chat.tgz.asc +if [ $? -eq 0 ]; then + echo "Verified download integrity" +else + echo "Invalid file, download corrupted or incomplete" + exit 1 +fi + +tar zxf rocket.chat.tgz && rm rocket.chat.tgz rocket.chat.tgz.asc cd $ROOTPATH/bundle/programs/server npm install pm2 startOrRestart $ROOTPATH/current/$PM2FILE diff --git a/package-lock.json b/package-lock.json index af3fa5b20bae..8e93de5fc335 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "Rocket.Chat", - "version": "0.68.5", + "version": "0.70.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -15,7 +15,7 @@ }, "@google-cloud/common": { "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.17.0.tgz", + "resolved": "http://registry.npmjs.org/@google-cloud/common/-/common-0.17.0.tgz", "integrity": "sha512-HRZLSU762E6HaKoGfJGa8W95yRjb9rY7LePhjaHK9ILAnFacMuUGVamDbTHu1csZomm1g3tZTtXfX/aAhtie/Q==", "requires": { "array-uniq": "1.0.3", @@ -77,7 +77,7 @@ }, "@google-cloud/vision": { "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@google-cloud/vision/-/vision-0.19.0.tgz", + "resolved": "http://registry.npmjs.org/@google-cloud/vision/-/vision-0.19.0.tgz", "integrity": "sha512-ull7J16iYWSlejmdBCfJgeLWHeTe6HusUANwmy6OUgKgh/1rUBG4ivUFMHy5UZ/6rdaUvNzLicYodnMywqWTYg==", "requires": { "@google-cloud/common": "0.17.0", @@ -185,6 +185,28 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" }, + "@rocket.chat/apps-engine": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rocket.chat/apps-engine/-/apps-engine-1.1.1.tgz", + "integrity": "sha512-6mToxpbISR2SiXKUaSvwTutlSNnPzmPOWFjaxdl6P1T0s+g5hed5PcJXcNQzsmp0dTf27XcuCT8BLVi32YNyBw==", + "requires": { + "adm-zip": "0.4.11", + "lodash.clonedeep": "4.5.0", + "semver": "5.5.0", + "stack-trace": "0.0.10", + "typescript": "2.9.2", + "uuid": "3.2.1" + } + }, + "@rocket.chat/eslint-config": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@rocket.chat/eslint-config/-/eslint-config-0.1.2.tgz", + "integrity": "sha512-QhoSk8n77UMo889EtipRrCiJnayDYqxHDuD3TdL06SHnB8urZ1mCVBSf/ocsdV5TxevnE2TeZHDyjAQwvOvM0A==", + "dev": true, + "requires": { + "eslint-plugin-import": "2.14.0" + } + }, "@sindresorhus/is": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", @@ -328,6 +350,16 @@ "through": "2.3.8" } }, + "abab": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", + "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==" + }, + "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.2.13", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", @@ -347,6 +379,21 @@ "resolved": "https://registry.npmjs.org/acorn-es7-plugin/-/acorn-es7-plugin-1.1.7.tgz", "integrity": "sha1-8u4fMiipDurRJF+asZIusucdM2s=" }, + "acorn-globals": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.1.0.tgz", + "integrity": "sha512-KjZwU26uG3u6eZcfGbTULzFcsoz6pegNKtHPksZPOUsiKo5bUmiBPa38FuHZ/Eun+XYh/JCCkS9AS3Lu4McQOQ==", + "requires": { + "acorn": "5.7.2" + }, + "dependencies": { + "acorn": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.2.tgz", + "integrity": "sha512-cJrKCNcr2kv8dlDnbw+JPUGjHZzo4myaxOLmpOX8a+rgX94YeTcTMv/LFJUSByRpc+i4GgVnnhLxvMu/2Y+rqw==" + } + } + }, "acorn-jsx": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", @@ -358,7 +405,7 @@ "dependencies": { "acorn": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", "dev": true } @@ -624,6 +671,11 @@ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" + }, "array-filter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", @@ -635,6 +687,11 @@ "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, "array-ify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", @@ -694,6 +751,16 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "requires": { + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" + } + }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -879,7 +946,7 @@ }, "axios": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", + "resolved": "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { "follow-redirects": "1.5.0", @@ -899,7 +966,7 @@ }, "babel-core": { "version": "6.9.1", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.9.1.tgz", + "resolved": "http://registry.npmjs.org/babel-core/-/babel-core-6.9.1.tgz", "integrity": "sha1-SNRx7r9N5GngqUL+RW3MlLGL6A0=", "dev": true, "requires": { @@ -1148,7 +1215,7 @@ }, "babel-plugin-add-module-exports": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.2.1.tgz", "integrity": "sha1-mumh9KjcZ/DN7E9K7aHkOl/2XiU=", "dev": true }, @@ -1169,79 +1236,79 @@ }, "babel-plugin-syntax-async-functions": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", "dev": true }, "babel-plugin-syntax-async-generators": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", "dev": true }, "babel-plugin-syntax-class-constructor-call": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", "dev": true }, "babel-plugin-syntax-class-properties": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", "dev": true }, "babel-plugin-syntax-decorators": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", "dev": true }, "babel-plugin-syntax-do-expressions": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-do-expressions/-/babel-plugin-syntax-do-expressions-6.13.0.tgz", "integrity": "sha1-V0d1YTmqJtOQ0JQQsDdEugfkeW0=", "dev": true }, "babel-plugin-syntax-dynamic-import": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", "dev": true }, "babel-plugin-syntax-exponentiation-operator": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", "dev": true }, "babel-plugin-syntax-export-extensions": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", "dev": true }, "babel-plugin-syntax-flow": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", "dev": true }, "babel-plugin-syntax-function-bind": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-function-bind/-/babel-plugin-syntax-function-bind-6.13.0.tgz", "integrity": "sha1-SMSV8Xe98xqYHnMvVa3AvdJgH0Y=", "dev": true }, "babel-plugin-syntax-jsx": { "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=", "dev": true }, "babel-plugin-syntax-object-rest-spread": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "resolved": "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", "dev": true }, @@ -1640,7 +1707,7 @@ }, "babel-preset-es2015": { "version": "6.3.13", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.3.13.tgz", + "resolved": "http://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.3.13.tgz", "integrity": "sha1-l9zn7ykuGMubK3VF2AxZPCjZUX8=", "dev": true, "requires": { @@ -1668,7 +1735,7 @@ }, "babel-preset-react": { "version": "6.3.13", - "resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.3.13.tgz", + "resolved": "http://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.3.13.tgz", "integrity": "sha1-E9VeBqZfqqoHw5v2Op2DbgMhFvo=", "dev": true, "requires": { @@ -1682,7 +1749,7 @@ }, "babel-preset-stage-0": { "version": "6.3.13", - "resolved": "https://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.3.13.tgz", + "resolved": "http://registry.npmjs.org/babel-preset-stage-0/-/babel-preset-stage-0-6.3.13.tgz", "integrity": "sha1-eKN8VvCzmI8qeZMtywzrj/N3sNE=", "dev": true, "requires": { @@ -1922,6 +1989,11 @@ } } }, + "base-x": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-1.1.0.tgz", + "integrity": "sha1-QtPXF0dPnqAiB/bRqh9CaRPut6w=" + }, "base32.js": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/base32.js/-/base32.js-0.0.1.tgz", @@ -1939,7 +2011,7 @@ }, "basic-auth": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz", + "resolved": "http://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz", "integrity": "sha1-Awk1sB3nyblKgksp8/zLdQ06UpA=" }, "basic-auth-connect": { @@ -1963,19 +2035,23 @@ "dependencies": { "abbrev": { "version": "1.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "aproba": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "are-we-there-yet": { "version": "1.1.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "requires": { "delegates": "1.0.0", "readable-stream": "2.3.5" @@ -1983,11 +2059,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "brace-expansion": { "version": "1.1.11", - "bundled": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -1995,57 +2073,69 @@ }, "chownr": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, "code-point-at": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "concat-map": { "version": "0.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "core-util-is": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "debug": { "version": "2.6.9", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "requires": { "ms": "2.0.0" } }, "deep-extend": { "version": "0.4.2", - "bundled": true + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" }, "delegates": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "detect-libc": { "version": "1.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" }, "fs-minipass": { "version": "1.2.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "requires": { "minipass": "2.2.4" } }, "fs.realpath": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "gauge": { "version": "2.7.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { "aproba": "1.2.0", "console-control-strings": "1.1.0", @@ -2059,7 +2149,8 @@ }, "glob": { "version": "7.1.2", - "bundled": true, + "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", @@ -2071,25 +2162,29 @@ }, "has-unicode": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "iconv-lite": { "version": "0.4.21", - "bundled": true, + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", + "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "requires": { "safer-buffer": "2.1.2" } }, "ignore-walk": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "requires": { "minimatch": "3.0.4" } }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -2097,37 +2192,44 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", - "bundled": true + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" }, "is-fullwidth-code-point": { "version": "1.0.0", - "bundled": true, + "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.1" } }, "isarray": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "minipass": { "version": "2.2.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", + "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "requires": { "safe-buffer": "5.1.1", "yallist": "3.0.2" @@ -2135,31 +2237,36 @@ "dependencies": { "yallist": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" } } }, "minizlib": { "version": "1.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "requires": { "minipass": "2.2.4" } }, "mkdirp": { "version": "0.5.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" } }, "ms": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "needle": { "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", + "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", "requires": { "debug": "2.6.9", "iconv-lite": "0.4.21", @@ -2168,7 +2275,8 @@ }, "node-pre-gyp": { "version": "0.9.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.9.1.tgz", + "integrity": "sha1-8RwHUW3ZL4cZnbx+GDjqt81WyeA=", "requires": { "detect-libc": "1.0.3", "mkdirp": "0.5.1", @@ -2184,7 +2292,8 @@ }, "nopt": { "version": "4.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "requires": { "abbrev": "1.1.1", "osenv": "0.1.5" @@ -2192,11 +2301,13 @@ }, "npm-bundled": { "version": "1.0.3", - "bundled": true + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==" }, "npm-packlist": { "version": "1.1.10", - "bundled": true, + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", + "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "requires": { "ignore-walk": "3.0.1", "npm-bundled": "1.0.3" @@ -2204,7 +2315,8 @@ }, "npmlog": { "version": "4.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { "are-we-there-yet": "1.1.4", "console-control-strings": "1.1.0", @@ -2214,30 +2326,36 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "object-assign": { "version": "4.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, "os-homedir": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-tmpdir": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { "os-homedir": "1.0.2", "os-tmpdir": "1.0.2" @@ -2245,15 +2363,18 @@ }, "path-is-absolute": { "version": "1.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "process-nextick-args": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "rc": { "version": "1.2.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.6.tgz", + "integrity": "sha1-6xiYnG1PTxYsOZ953dKfODVWgJI=", "requires": { "deep-extend": "0.4.2", "ini": "1.3.5", @@ -2263,13 +2384,15 @@ "dependencies": { "minimist": { "version": "1.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } }, "readable-stream": { "version": "2.3.5", - "bundled": true, + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.5.tgz", + "integrity": "sha512-tK0yDhrkygt/knjowCUiWP9YdV7c5R+8cR0r/kt9ZhBU906Fs6RpQJCEilamRJj1Nx2rWI6LkW9gKqjTkshhEw==", "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -2282,38 +2405,46 @@ }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { "glob": "7.1.2" } }, "safe-buffer": { "version": "5.1.1", - "bundled": true + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "safer-buffer": { "version": "2.1.2", - "bundled": true + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sax": { "version": "1.2.4", - "bundled": true + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "semver": { "version": "5.5.0", - "bundled": true + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, "set-blocking": { "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "signal-exit": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "string-width": { "version": "1.0.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -2322,25 +2453,29 @@ }, "string_decoder": { "version": "1.0.3", - "bundled": true, + "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" } }, "strip-ansi": { "version": "3.0.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "2.1.1" } }, "strip-json-comments": { "version": "2.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" }, "tar": { "version": "4.4.1", - "bundled": true, + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", + "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "requires": { "chownr": "1.0.1", "fs-minipass": "1.2.5", @@ -2353,24 +2488,28 @@ "dependencies": { "yallist": { "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" } } }, "util-deprecate": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "wide-align": { "version": "1.1.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "requires": { "string-width": "1.0.2" } }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } } }, @@ -2383,23 +2522,92 @@ "tweetnacl": "0.14.5" } }, + "bech32": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.3.tgz", + "integrity": "sha512-yuVFUvrNcoJi0sv5phmqc6P+Fl1HjRDRNOOkHY2X/3LBy2bIGNSFx4fZ95HMaXHupuS7cZR15AsvtmCIF4UEyg==" + }, "before-after-hook": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-1.1.0.tgz", "integrity": "sha512-VOMDtYPwLbIncTxNoSzRyvaMxtXmLWLUqr8k5AfC1BzLk34HvBXaQX8snOwQZ4c0aX8aSERqtJSiI9/m2u5kuA==", "dev": true }, + "bigi": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/bigi/-/bigi-1.4.2.tgz", + "integrity": "sha1-nGZalfiLiwj8Bc/XMfVhhZ1yWCU=" + }, "binary-extensions": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", "dev": true }, + "bindings": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" + }, "bintrees": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz", "integrity": "sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ=" }, + "bip32": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bip32/-/bip32-1.0.2.tgz", + "integrity": "sha512-kedLYj8yvYzND+EfzeoMSlGiN7ImiRBF/MClJSZPkMfcU+OQO7ZpL5L/Yg+TunebBZIHhunstiQF//KLKSF5rg==", + "requires": { + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "tiny-secp256k1": "1.0.0", + "typeforce": "1.12.0", + "wif": "2.0.6" + }, + "dependencies": { + "base-x": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", + "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "3.0.4" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "4.0.1", + "create-hash": "1.2.0", + "safe-buffer": "5.1.2" + } + } + } + }, + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "bitcoin-ops": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", + "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==" + }, "bl": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", @@ -2409,11 +2617,194 @@ "safe-buffer": "5.1.2" } }, + "blockstack": { + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/blockstack/-/blockstack-18.0.4.tgz", + "integrity": "sha512-LiWMvdhG8jmyzNeX55wnMEFWzJmn9ZqY5ic81INj+OJw3FF7Aoj2+/acEUTEc0ZkvZPHskTTBBVU9wwHsV2QSA==", + "requires": { + "ajv": "4.11.8", + "bigi": "1.4.2", + "bitcoinjs-lib": "4.0.1", + "cheerio": "0.22.0", + "cross-fetch": "2.2.2", + "custom-protocol-detection-blockstack": "1.1.4", + "ecurve": "1.0.6", + "elliptic": "6.4.1", + "es6-promise": "4.2.4", + "form-data": "2.3.2", + "jsontokens": "0.7.8", + "promise": "7.3.1", + "query-string": "4.3.4", + "request": "2.87.0", + "ripemd160": "2.0.2", + "schema-inspector": "1.6.8", + "sprintf-js": "1.1.1", + "uuid": "3.2.1", + "validator": "7.2.0", + "zone-file": "0.2.3" + }, + "dependencies": { + "ajv": { + "version": "4.11.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" + } + }, + "base-x": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.4.tgz", + "integrity": "sha512-UYOadoSIkEI/VrRGSG6qp93rp2WdokiAiNYDfGW5qURAY8GiAQkvMbwNNSDYiVJopqv4gCna7xqf4rrNGp+5AA==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "base64url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.0.tgz", + "integrity": "sha512-LIVmqIrIWuiqTvn4RzcrwCOuHo2DD6tKmKBPXXlr4p4n4l6BZBkwFTIa3zu1XkX5MbZgro4a6BvPi+n2Mns5Gg==" + }, + "bitcoinjs-lib": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-4.0.1.tgz", + "integrity": "sha512-weum3uRYWxGhAvRk+2Ch7Z3x5tKBfeuzVyoGdP1CMrGJ5Nw6plj1GVA3A+RejLDii7UM7OxgOfXgPZhLmI7+vQ==", + "requires": { + "bech32": "1.1.3", + "bip32": "1.0.2", + "bip66": "1.1.5", + "bitcoin-ops": "1.4.1", + "bs58check": "2.1.2", + "create-hash": "1.2.0", + "create-hmac": "1.1.7", + "merkle-lib": "2.0.10", + "pushdata-bitcoin": "1.0.1", + "randombytes": "2.0.6", + "safe-buffer": "5.1.2", + "tiny-secp256k1": "1.0.0", + "typeforce": "1.12.0", + "varuint-bitcoin": "1.1.0", + "wif": "2.0.6" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "3.0.4" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "4.0.1", + "create-hash": "1.2.0", + "safe-buffer": "5.1.2" + } + }, + "cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "requires": { + "css-select": "1.2.0", + "dom-serializer": "0.1.0", + "entities": "1.1.1", + "htmlparser2": "3.9.2", + "lodash.assignin": "4.2.0", + "lodash.bind": "4.2.1", + "lodash.defaults": "4.2.0", + "lodash.filter": "4.6.0", + "lodash.flatten": "4.4.0", + "lodash.foreach": "4.5.0", + "lodash.map": "4.6.0", + "lodash.merge": "4.6.1", + "lodash.pick": "4.4.0", + "lodash.reduce": "4.6.0", + "lodash.reject": "4.6.0", + "lodash.some": "4.6.0" + } + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "requires": { + "boolbase": "1.0.0", + "css-what": "2.1.0", + "domutils": "1.5.1", + "nth-check": "1.0.1" + } + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" + }, + "custom-protocol-detection-blockstack": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/custom-protocol-detection-blockstack/-/custom-protocol-detection-blockstack-1.1.4.tgz", + "integrity": "sha512-SkLAAGFaYzYqqxuDpPva33ZiH9hsMtd77MoFA1spfIcPHdGgNa7MW211eX04DVy914/emR+S6dc0RqkuXB372g==" + }, + "domutils": { + "version": "1.5.1", + "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" + } + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6" + } + }, + "jsontokens": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/jsontokens/-/jsontokens-0.7.8.tgz", + "integrity": "sha512-vTZ06cDSDoFeXJUnZNFHsh8aP+L3Xz5Ke7XPb6nyT3n5wb9uxyq4TE8gUl0H4hmzSe/YIrDi+mneuHIh37AMiA==", + "requires": { + "asn1.js": "4.10.1", + "base64url": "3.0.0", + "elliptic": "6.4.1", + "key-encoder": "1.1.6", + "validator": "7.2.0" + } + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "requires": { + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } + } + } + }, "bluebird": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, "body-parser": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.13.3.tgz", @@ -2433,7 +2824,7 @@ "dependencies": { "debug": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "requires": { "ms": "0.7.1" @@ -2506,11 +2897,21 @@ } } }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, "browser-fingerprint": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/browser-fingerprint/-/browser-fingerprint-0.0.1.tgz", "integrity": "sha1-jfPNyiW/fVs1QtYVRdcwBT/OYEo=" }, + "browser-process-hrtime": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz", + "integrity": "sha1-Ql1opY00R/AqBKqJQYf86K+Le44=" + }, "browser-stdout": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", @@ -2526,6 +2927,23 @@ "electron-to-chromium": "1.3.48" } }, + "bs58": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-3.1.0.tgz", + "integrity": "sha1-1MJjiL9IBMrHFBQbGUWqR+XrJI4=", + "requires": { + "base-x": "1.1.0" + } + }, + "bs58check": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-1.3.4.tgz", + "integrity": "sha1-xSVABzdJEXcU+gQsMEfrj5FRy/g=", + "requires": { + "bs58": "3.1.0", + "create-hash": "1.2.0" + } + }, "bson": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/bson/-/bson-2.0.7.tgz", @@ -2627,7 +3045,7 @@ }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "1.0.2", @@ -2829,7 +3247,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { "ansi-styles": "2.2.1", @@ -2876,6 +3294,39 @@ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", "dev": true }, + "chart.js": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.7.2.tgz", + "integrity": "sha512-90wl3V9xRZ8tnMvMlpcW+0Yg13BelsGS9P9t0ClaDxv/hdypHDr/YAGf+728m11P5ljwyB0ZHfPKCapZFqSqYA==", + "requires": { + "chartjs-color": "2.2.0", + "moment": "2.22.2" + } + }, + "chartjs-color": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.2.0.tgz", + "integrity": "sha1-hKL7dVeH7YXDndbdjHsdiEKbrq4=", + "requires": { + "chartjs-color-string": "0.5.0", + "color-convert": "0.5.3" + }, + "dependencies": { + "color-convert": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=" + } + } + }, + "chartjs-color-string": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.5.0.tgz", + "integrity": "sha512-amWNvCOXlOUYxZVDSa0YOab5K/lmEhbFNKI55PWc4mlv28BDzA7zaoQTGxSBgJMHIW+hGX8YUrvw/FH4LyhwSQ==", + "requires": { + "color-name": "1.1.3" + } + }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", @@ -2896,7 +3347,7 @@ "dependencies": { "lodash": { "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" } } @@ -2959,10 +3410,16 @@ "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", "dev": true }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", "dev": true, "requires": { "ms": "2.0.0" @@ -3007,7 +3464,7 @@ "mocha": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", - "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", + "integrity": "sha1-fYbPvPNcuCnidUwy4XNV7AUzh5Q=", "dev": true, "requires": { "browser-stdout": "1.3.0", @@ -3025,13 +3482,13 @@ "commander": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "integrity": "sha1-FXFS/R56bI2YpbcVzzdt+SgARWM=", "dev": true }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -3059,7 +3516,7 @@ "supports-color": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "integrity": "sha1-iD992rwWUUKyphQn8zUt7RldGj4=", "dev": true, "requires": { "has-flag": "2.0.0" @@ -3134,6 +3591,21 @@ "request": "2.87.0" } }, + "ci-info": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.3.1.tgz", + "integrity": "sha512-l4wK/SFEN8VVTQ9RO1I5yzIL2vw1w6My29qA6Gwaec80QeHxfXbruuUWqn1knyMoJn/X5kav3zVY1TlRHSKeIA==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, "circular-json": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", @@ -3297,12 +3769,6 @@ "simple-swizzle": "0.2.2" } }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, "colour": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/colour/-/colour-0.7.1.tgz", @@ -3319,8 +3785,7 @@ "commander": { "version": "2.15.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==" }, "compare-func": { "version": "1.3.2", @@ -3382,7 +3847,7 @@ "dependencies": { "debug": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "requires": { "ms": "0.7.1" @@ -3464,7 +3929,7 @@ "dependencies": { "debug": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "requires": { "ms": "0.7.1" @@ -3495,7 +3960,7 @@ "dependencies": { "debug": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "requires": { "ms": "0.7.1" @@ -3513,7 +3978,18 @@ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, - "content-type": { + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" @@ -3837,6 +4313,47 @@ "capture-stack-trace": "1.0.0" } }, + "create-hash": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "md5.js": "1.3.4", + "ripemd160": "2.0.2", + "sha.js": "2.4.11" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.2.0", + "inherits": "2.0.3", + "ripemd160": "2.0.2", + "safe-buffer": "5.1.2", + "sha.js": "2.4.11" + } + }, + "cross-fetch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz", + "integrity": "sha1-pH/09/xxLauo9qaVoRyUhEDUVyM=", + "requires": { + "node-fetch": "2.1.2", + "whatwg-fetch": "2.0.4" + }, + "dependencies": { + "whatwg-fetch": { + "version": "2.0.4", + "resolved": "http://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", + "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" + } + } + }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", @@ -3928,6 +4445,19 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-1.0.0.tgz", "integrity": "sha1-18wt9FGAZm+Z0rFEYmOUaeAPc2w=" }, + "cssom": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.4.tgz", + "integrity": "sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==" + }, + "cssstyle": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.1.1.tgz", + "integrity": "sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==", + "requires": { + "cssom": "0.3.4" + } + }, "csurf": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/csurf/-/csurf-1.8.3.tgz", @@ -3957,7 +4487,7 @@ "camel-case": "3.0.0", "cli-table": "0.3.1", "co": "4.6.0", - "colors": "1.1.2", + "colors": "1.3.0", "commander": "2.15.1", "duration": "0.2.0", "fibers": "1.0.15", @@ -3969,6 +4499,14 @@ "meteor-promise": "0.8.6", "stack-chain": "1.3.7", "stacktrace-js": "1.3.1" + }, + "dependencies": { + "colors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.0.tgz", + "integrity": "sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw==", + "dev": true + } } }, "cuid": { @@ -4023,6 +4561,38 @@ "assert-plus": "1.0.0" } }, + "data-urls": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.0.1.tgz", + "integrity": "sha512-0HdcMZzK6ubMUnsMmQmG0AcLQPvbvb47R0+7CCZQCYgcd8OUWG91CG7sM6GoXgjz+WLl4ArFzHtBMy/QqSF4eg==", + "requires": { + "abab": "2.0.0", + "whatwg-mimetype": "2.1.0", + "whatwg-url": "7.0.0" + }, + "dependencies": { + "whatwg-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + } + } + }, + "datauri": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/datauri/-/datauri-1.1.0.tgz", + "integrity": "sha512-0q+cTTKx7q8eDteZRIQLTFJuiIsVing17UbWTPssY4JLSMaYsk/VKpNulBDo9NSgQWcvlPrkEHW8kUO67T/7mQ==", + "requires": { + "image-size": "0.6.2", + "mimer": "0.3.2", + "semver": "5.5.0" + } + }, "dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", @@ -4113,8 +4683,7 @@ "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "deepmerge": { "version": "2.0.1", @@ -4235,7 +4804,7 @@ }, "deprecate": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/deprecate/-/deprecate-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/deprecate/-/deprecate-1.0.0.tgz", "integrity": "sha1-ZhSQ7SQokWpsiIPYg05WRvTkpKg=" }, "destroy": { @@ -4273,7 +4842,7 @@ }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "1.0.2", @@ -4339,6 +4908,14 @@ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=" }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "requires": { + "webidl-conversions": "4.0.2" + } + }, "domhandler": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", @@ -4425,6 +5002,15 @@ "safe-buffer": "5.1.2" } }, + "ecurve": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/ecurve/-/ecurve-1.0.6.tgz", + "integrity": "sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w==", + "requires": { + "bigi": "1.4.2", + "safe-buffer": "5.1.2" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -4441,6 +5027,20 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz", "integrity": "sha1-07DYWTgUBE4JLs4hCPw6ya6kuQA=" }, + "elliptic": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.5", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" + } + }, "emailreplyparser": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/emailreplyparser/-/emailreplyparser-0.0.5.tgz", @@ -4464,6 +5064,11 @@ "core-js": "2.5.7" } }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -4486,7 +5091,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "optional": true, "requires": { "prr": "1.0.1" } @@ -4600,8 +5204,7 @@ "es6-promise": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", - "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", - "dev": true + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" }, "es6-promisify": { "version": "5.0.0", @@ -4643,9 +5246,34 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, + "escodegen": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.0.tgz", + "integrity": "sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==", + "requires": { + "esprima": "3.1.3", + "estraverse": "4.2.0", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + } + } + }, "eslint": { "version": "4.19.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", + "resolved": "http://registry.npmjs.org/eslint/-/eslint-4.19.1.tgz", "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { @@ -4767,6 +5395,113 @@ } } }, + "eslint-import-resolver-node": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", + "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "dev": true, + "requires": { + "debug": "2.6.9", + "resolve": "1.7.1" + } + }, + "eslint-module-utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", + "integrity": "sha1-snA2LNiLGkitMIl2zn+lTphBF0Y=", + "dev": true, + "requires": { + "debug": "2.6.9", + "pkg-dir": "1.0.0" + } + }, + "eslint-plugin-import": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz", + "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==", + "dev": true, + "requires": { + "contains-path": "0.1.0", + "debug": "2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.2.0", + "has": "1.0.2", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0", + "resolve": "1.7.1" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "2.0.2", + "isarray": "1.0.0" + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + } + } + }, "eslint-scope": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", @@ -4841,8 +5576,7 @@ "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", @@ -4962,6 +5696,231 @@ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz", "integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg==" }, + "express": { + "version": "4.16.3", + "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz", + "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "requires": { + "accepts": "1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.2", + "content-disposition": "0.5.2", + "content-type": "1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "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", + "path-to-regexp": "0.1.7", + "proxy-addr": "2.0.4", + "qs": "6.5.1", + "range-parser": "1.2.0", + "safe-buffer": "5.1.1", + "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.3.5", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "requires": { + "mime-types": "2.1.18", + "negotiator": "0.6.1" + } + }, + "body-parser": { + "version": "1.18.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz", + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", + "requires": { + "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.19", + "on-finished": "2.3.0", + "qs": "6.5.1", + "raw-body": "2.3.2", + "type-is": "1.6.16" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "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" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "http-errors": { + "version": "1.6.3", + "resolved": "http://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" + } + }, + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" + }, + "qs": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", + "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" + }, + "raw-body": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz", + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.2", + "iconv-lite": "0.4.19", + "unpipe": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.4.0" + } + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" + } + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "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.3", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", + "send": "0.16.2" + } + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + } + } + }, "express-session": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.11.3.tgz", @@ -4985,7 +5944,7 @@ }, "debug": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "requires": { "ms": "0.7.1" @@ -5032,7 +5991,7 @@ }, "external-editor": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { @@ -5143,8 +6102,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "faye-websocket": { "version": "0.9.4", @@ -5176,7 +6134,7 @@ "dependencies": { "lodash": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", + "resolved": "http://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz", "integrity": "sha1-+t2DS5aDBz2hebPq5tnA0VBT9z4=", "dev": true }, @@ -5274,7 +6232,7 @@ "dependencies": { "debug": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "requires": { "ms": "0.7.1" @@ -5418,6 +6376,11 @@ "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==", "dev": true }, + "forwarded": { + "version": "0.1.2", + "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", @@ -5488,941 +6451,492 @@ "optional": true, "requires": { "nan": "2.10.0", - "node-pre-gyp": "0.10.0" + "node-pre-gyp": "0.10.2" }, "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.4", + "needle": { + "version": "2.2.0", "bundled": true, "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "debug": "2.6.9", + "iconv-lite": "0.4.23", + "sax": "1.2.4" } }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, + "node-pre-gyp": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.2.tgz", + "integrity": "sha512-16lql9QTqs6KsB9fl3neWyZm02KxIKdI9FlJjrB0y7eMTP5Nyz+xalwPbOlw3iw7EejllJPmlJSnY711PLD1ug==", "dev": true, + "optional": true, "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.2.0", + "nopt": "4.0.1", + "npm-packlist": "1.1.10", + "npmlog": "4.1.2", + "rc": "1.2.8", + "rimraf": "2.6.2", + "semver": "5.5.0", + "tar": "4.4.4" } }, - "chownr": { - "version": "1.0.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", + "npm-bundled": { + "version": "1.0.3", "bundled": true, "dev": true, "optional": true }, - "debug": { - "version": "2.6.9", + "npm-packlist": { + "version": "1.1.10", "bundled": true, "dev": true, "optional": true, "requires": { - "ms": "2.0.0" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.3" } }, - "deep-extend": { - "version": "0.5.1", - "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, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "optional": true, "requires": { - "minipass": "2.2.4" + "glob": "7.1.2" } }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true, "optional": true }, - "gauge": { - "version": "2.7.4", - "bundled": true, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "1.2.0", + "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.3" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "1.2.1" + } + }, + "gcp-metadata": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", + "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", + "requires": { + "axios": "0.18.0", + "extend": "3.0.1", + "retry-axios": "0.3.2" + } + }, + "gcs-resumable-upload": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-0.10.2.tgz", + "integrity": "sha1-fymz7iPc7EFwNnwHEUGCScZgVF8=", + "requires": { + "configstore": "3.1.2", + "google-auto-auth": "0.10.1", + "pumpify": "1.5.1", + "request": "2.87.0", + "stream-events": "1.0.4" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-pkg-repo": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", + "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", + "dev": true, + "requires": { + "hosted-git-info": "2.6.0", + "meow": "3.7.0", + "normalize-package-data": "2.4.0", + "parse-github-repo-url": "1.4.1", + "through2": "2.0.3" + }, + "dependencies": { + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, - "optional": true, "requires": { - "aproba": "1.2.0", - "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" + "camelcase": "2.1.1", + "map-obj": "1.0.1" } }, - "glob": { - "version": "7.1.2", - "bundled": true, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, - "optional": 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" + "repeating": "2.0.1" } }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true }, - "iconv-lite": { - "version": "0.4.21", - "bundled": true, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, - "optional": true, "requires": { - "safer-buffer": "2.1.2" - } - }, - "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.4.0", - "wrappy": "1.0.2" + "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" } }, - "inherits": { - "version": "2.0.3", - "bundled": true, + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { + "redent": { "version": "1.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "indent-string": "2.1.0", + "strip-indent": "1.0.1" } }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "get-stdin": "4.0.1" } }, - "minimist": { - "version": "0.0.8", - "bundled": true, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", "dev": true - }, - "minipass": { - "version": "2.2.4", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "minipass": "2.2.4" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { + } + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + } + }, + "gherkin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/gherkin/-/gherkin-4.0.0.tgz", + "integrity": "sha1-edzgTRIj6kO0hip2vlzo+JwSwyw=", + "dev": true + }, + "git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", + "dev": true, + "requires": { + "gitconfiglocal": "1.0.0", + "pify": "2.3.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", + "dev": true, + "requires": { + "ini": "1.3.5" + } + }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + }, + "dependencies": { + "glob-parent": { "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "needle": { - "version": "2.2.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, - "optional": true, "requires": { - "debug": "2.6.9", - "iconv-lite": "0.4.21", - "sax": "1.2.4" + "is-glob": "2.0.1" } }, - "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.2.0", - "nopt": "4.0.1", - "npm-packlist": "1.1.10", - "npmlog": "4.1.2", - "rc": "1.2.7", - "rimraf": "2.6.2", - "semver": "5.5.0", - "tar": "4.4.1" - } + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true }, - "nopt": { - "version": "4.0.1", - "bundled": true, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, - "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "is-extglob": "1.0.0" } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true, - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "dev": true, - "optional": 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.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npmlog": { - "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" - } - }, - "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.0.2" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "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.2", - "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.2" - } - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "glob": "7.1.2" - } - }, - "safe-buffer": { - "version": "5.1.1", - "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.5.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.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "5.1.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "string-width": "1.0.2" + "is-extglob": "2.1.1" } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true, - "dev": true } } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "globby": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", "requires": { - "aproba": "1.2.0", - "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.3" + "array-union": "1.0.2", + "dir-glob": "2.0.0", + "fast-glob": "2.2.2", + "glob": "7.1.2", + "ignore": "3.3.8", + "pify": "3.0.0", + "slash": "1.0.0" } }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "requires": { - "globule": "1.2.1" - } - }, - "gcp-metadata": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-0.6.3.tgz", - "integrity": "sha512-MSmczZctbz91AxCvqp9GHBoZOSbJKAICV7Ow/AIWSJZRrRchUd5NL1b2P4OfP+4m490BEUPhhARfpHdqCxuCvg==", - "requires": { - "axios": "0.18.0", - "extend": "3.0.1", - "retry-axios": "0.3.2" - } + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "dev": true }, - "gcs-resumable-upload": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-0.10.2.tgz", - "integrity": "sha1-fymz7iPc7EFwNnwHEUGCScZgVF8=", + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, "requires": { - "configstore": "3.1.2", - "google-auto-auth": "0.10.1", - "pumpify": "1.5.1", - "request": "2.87.0", - "stream-events": "1.0.4" + "glob": "7.1.2", + "lodash": "4.17.10", + "minimatch": "3.0.4" } }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-pkg-repo": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", - "integrity": "sha1-xztInAbYDMVTbCyFP54FIyBWly0=", + "gonzales-pe": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.3.tgz", + "integrity": "sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw==", "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "meow": "3.7.0", - "normalize-package-data": "2.4.0", - "parse-github-repo-url": "1.4.1", - "through2": "2.0.3" + "minimist": "1.1.3" }, "dependencies": { - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" - } - }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "2.0.1" - } - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" - } - }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" - } - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "4.0.1" - } - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "version": "1.1.3", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz", + "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=", "dev": true } } }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", "requires": { - "assert-plus": "1.0.0" + "delegate": "3.2.0" } }, - "gherkin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/gherkin/-/gherkin-4.0.0.tgz", - "integrity": "sha1-edzgTRIj6kO0hip2vlzo+JwSwyw=", - "dev": true - }, - "git-remote-origin-url": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha1-UoJlna4hBxRaERJhEq0yFuxfpl8=", - "dev": true, + "google-auth-library": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.5.0.tgz", + "integrity": "sha512-xpibA/hkq4waBcpIkSJg4GiDAqcBWjJee3c47zj7xP3RQ0A9mc8MP3Vc9sc8SGRoDYA0OszZxTjW7SbcC4pJIA==", "requires": { - "gitconfiglocal": "1.0.0", - "pify": "2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "axios": "0.18.0", + "gcp-metadata": "0.6.3", + "gtoken": "2.3.0", + "jws": "3.1.5", + "lodash.isstring": "4.0.1", + "lru-cache": "4.1.3", + "retry-axios": "0.3.2" } }, - "gitconfiglocal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha1-QdBF84UaXqiPA/JMocYXgRRGS5s=", - "dev": true, + "google-auto-auth": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.10.1.tgz", + "integrity": "sha512-iIqSbY7Ypd32mnHGbYctp80vZzXoDlvI9gEfvtl3kmyy5HzOcrZCIGCBdSlIzRsg7nHpQiHE3Zl6Ycur6TSodQ==", "requires": { - "ini": "1.3.5" + "async": "2.6.1", + "gcp-metadata": "0.6.3", + "google-auth-library": "1.5.0", + "request": "2.87.0" } }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + "google-gax": { + "version": "0.16.1", + "resolved": "http://registry.npmjs.org/google-gax/-/google-gax-0.16.1.tgz", + "integrity": "sha512-eP7UUkKvaHmmvCrr+rxzkIOeEKOnXmoib7/AkENDAuqlC9T2+lWlzwpthDRnitQcV8SblDMzsk73YPMPCDwPyQ==", + "requires": { + "duplexify": "3.6.0", + "extend": "3.0.1", + "globby": "8.0.1", + "google-auto-auth": "0.10.1", + "google-proto-files": "0.15.1", + "grpc": "1.12.2", + "is-stream-ended": "0.1.4", + "lodash": "4.17.10", + "protobufjs": "6.8.6", + "through2": "2.0.3" + } }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "google-p12-pem": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", + "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", "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" + "node-forge": "0.7.5", + "pify": "3.0.0" } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true, + "google-proto-files": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.15.1.tgz", + "integrity": "sha512-ebtmWgi/ooR5Nl63qRVZZ6VLM6JOb5zTNxTT/ZAU8yfMOdcauoOZNNMOVg0pCmTjqWXeuuVbgPP0CwO5UHHzBQ==", "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" - }, - "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "2.0.1" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "1.0.0" - } - } - } - }, - "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.2" - }, - "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.1" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "globby": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", - "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", - "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "fast-glob": "2.2.2", - "glob": "7.1.2", - "ignore": "3.3.8", - "pify": "3.0.0", - "slash": "1.0.0" - } - }, - "globjoin": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", - "dev": true - }, - "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, - "requires": { - "glob": "7.1.2", - "lodash": "4.17.10", - "minimatch": "3.0.4" - } - }, - "gonzales-pe": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.3.tgz", - "integrity": "sha512-Kjhohco0esHQnOiqqdJeNz/5fyPkOMD/d6XVjwTAoPGUFh0mCollPUTUTa2OZy4dYNAqlPIQdTiNzJTWdd9Htw==", - "dev": true, - "requires": { - "minimist": "1.1.3" - }, - "dependencies": { - "minimist": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.3.tgz", - "integrity": "sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=", - "dev": true - } - } - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", - "requires": { - "delegate": "3.2.0" - } - }, - "google-auth-library": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-1.5.0.tgz", - "integrity": "sha512-xpibA/hkq4waBcpIkSJg4GiDAqcBWjJee3c47zj7xP3RQ0A9mc8MP3Vc9sc8SGRoDYA0OszZxTjW7SbcC4pJIA==", - "requires": { - "axios": "0.18.0", - "gcp-metadata": "0.6.3", - "gtoken": "2.3.0", - "jws": "3.1.5", - "lodash.isstring": "4.0.1", - "lru-cache": "4.1.3", - "retry-axios": "0.3.2" - } - }, - "google-auto-auth": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/google-auto-auth/-/google-auto-auth-0.10.1.tgz", - "integrity": "sha512-iIqSbY7Ypd32mnHGbYctp80vZzXoDlvI9gEfvtl3kmyy5HzOcrZCIGCBdSlIzRsg7nHpQiHE3Zl6Ycur6TSodQ==", - "requires": { - "async": "2.6.1", - "gcp-metadata": "0.6.3", - "google-auth-library": "1.5.0", - "request": "2.87.0" - } - }, - "google-gax": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-0.16.1.tgz", - "integrity": "sha512-eP7UUkKvaHmmvCrr+rxzkIOeEKOnXmoib7/AkENDAuqlC9T2+lWlzwpthDRnitQcV8SblDMzsk73YPMPCDwPyQ==", - "requires": { - "duplexify": "3.6.0", - "extend": "3.0.1", - "globby": "8.0.1", - "google-auto-auth": "0.10.1", - "google-proto-files": "0.15.1", - "grpc": "1.12.2", - "is-stream-ended": "0.1.4", - "lodash": "4.17.10", - "protobufjs": "6.8.6", - "through2": "2.0.3" - } - }, - "google-p12-pem": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.2.tgz", - "integrity": "sha512-+EuKr4CLlGsnXx4XIJIVkcKYrsa2xkAmCvxRhX2HsazJzUBAJ35wARGeApHUn4nNfPD03Vl057FskNr20VaCyg==", - "requires": { - "node-forge": "0.7.5", - "pify": "3.0.0" - } - }, - "google-proto-files": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/google-proto-files/-/google-proto-files-0.15.1.tgz", - "integrity": "sha512-ebtmWgi/ooR5Nl63qRVZZ6VLM6JOb5zTNxTT/ZAU8yfMOdcauoOZNNMOVg0pCmTjqWXeuuVbgPP0CwO5UHHzBQ==", - "requires": { - "globby": "7.1.1", - "power-assert": "1.5.0", - "protobufjs": "6.8.6" + "globby": "7.1.1", + "power-assert": "1.5.0", + "protobufjs": "6.8.6" }, "dependencies": { "globby": { @@ -6502,109 +7016,38 @@ "requires": { "lodash": "4.17.10", "nan": "2.10.0", - "node-pre-gyp": "0.10.0", + "node-pre-gyp": "0.10.2", "protobufjs": "5.0.3" }, "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, "balanced-match": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "brace-expansion": { - "version": "1.1.11", - "bundled": true, + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, - "chownr": { - "version": "1.0.1", - "bundled": 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 - }, - "debug": { - "version": "2.6.9", - "bundled": true, - "requires": { - "ms": "2.0.0" - } - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "requires": { - "minipass": "2.3.3" - } + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "fs.realpath": { "version": "1.0.0", - "bundled": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "requires": { - "aproba": "1.2.0", - "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" - } + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "glob": { "version": "7.1.2", - "bundled": true, + "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", @@ -6614,27 +7057,10 @@ "path-is-absolute": "1.0.1" } }, - "has-unicode": { - "version": "2.0.1", - "bundled": true - }, - "iconv-lite": { - "version": "0.4.23", - "bundled": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "requires": { - "minimatch": "3.0.4" - } - }, "inflight": { "version": "1.0.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "1.4.0", "wrappy": "1.0.2" @@ -6642,66 +7068,17 @@ }, "inherits": { "version": "2.0.3", - "bundled": true - }, - "ini": { - "version": "1.3.5", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "minimatch": { "version": "3.0.4", - "bundled": true, + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "1.2.0", - "bundled": true - }, - "minipass": { - "version": "2.3.3", - "bundled": true, - "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.2" - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "requires": { - "minipass": "2.3.3" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - }, - "dependencies": { - "minimist": { - "version": "0.0.8", - "bundled": true - } + "brace-expansion": "1.1.8" } }, - "ms": { - "version": "2.0.0", - "bundled": true - }, "needle": { "version": "2.2.1", "bundled": true, @@ -6712,8 +7089,9 @@ } }, "node-pre-gyp": { - "version": "0.10.0", - "bundled": true, + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.2.tgz", + "integrity": "sha512-16lql9QTqs6KsB9fl3neWyZm02KxIKdI9FlJjrB0y7eMTP5Nyz+xalwPbOlw3iw7EejllJPmlJSnY711PLD1ug==", "requires": { "detect-libc": "1.0.3", "mkdirp": "0.5.1", @@ -6721,18 +7099,10 @@ "nopt": "4.0.1", "npm-packlist": "1.1.10", "npmlog": "4.1.2", - "rc": "1.2.7", + "rc": "1.2.8", "rimraf": "2.6.2", "semver": "5.5.0", - "tar": "4.4.3" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "tar": "4.4.4" } }, "npm-bundled": { @@ -6747,54 +7117,18 @@ "npm-bundled": "1.0.3" } }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true - }, "once": { "version": "1.4.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1.0.2" } }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, "path-is-absolute": { "version": "1.0.1", - "bundled": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "protobufjs": { "version": "5.0.3", @@ -6807,118 +7141,23 @@ "yargs": "3.32.0" } }, - "rc": { - "version": "1.2.7", - "bundled": true, - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - } - }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" - } - }, "rimraf": { "version": "2.6.2", - "bundled": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { "glob": "7.1.2" } }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true - }, "sax": { "version": "1.2.4", - "bundled": true - }, - "semver": { - "version": "5.5.0", - "bundled": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "requires": { - "ansi-regex": "2.1.1" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true - }, - "tar": { - "version": "4.4.3", - "bundled": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.3", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "requires": { - "string-width": "1.0.2" - } + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "wrappy": { "version": "1.0.2", - "bundled": true - }, - "yallist": { - "version": "3.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" } } }, @@ -7035,7 +7274,7 @@ }, "catbox": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/catbox/-/catbox-4.3.0.tgz", + "resolved": "http://registry.npmjs.org/catbox/-/catbox-4.3.0.tgz", "integrity": "sha1-IiN3vWfxKRrA4l0AAC0GWp3385o=", "dev": true, "requires": { @@ -7132,7 +7371,7 @@ }, "joi": { "version": "6.4.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-6.4.1.tgz", + "resolved": "http://registry.npmjs.org/joi/-/joi-6.4.1.tgz", "integrity": "sha1-9Q9CRTVgBo5jg9oVrC0w3Xzra24=", "dev": true, "requires": { @@ -7150,7 +7389,7 @@ }, "moment": { "version": "2.10.3", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.10.3.tgz", + "resolved": "http://registry.npmjs.org/moment/-/moment-2.10.3.tgz", "integrity": "sha1-CruZ8wf2UhgwjGk17+KcV7Ggon8=", "dev": true } @@ -7410,6 +7649,15 @@ } } }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, "hash-stream-validation": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.1.tgz", @@ -7418,6 +7666,15 @@ "through2": "2.0.3" } }, + "hash.js": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.5.tgz", + "integrity": "sha512-eWI5HG9Np+eHV1KQhisXWwM+4EPPYe5dFX1UZZH7k/E3JzDEazVH+VGlZi6R94ZqImq+A3D1mCEtrFIfg/E7sA==", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" + } + }, "hasha": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/hasha/-/hasha-2.2.0.tgz", @@ -7450,6 +7707,16 @@ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz", "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=" }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "1.1.5", + "minimalistic-assert": "1.0.1", + "minimalistic-crypto-utils": "1.0.1" + } + }, "hoek": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", @@ -7472,64 +7739,36 @@ "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", "dev": true }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "requires": { + "whatwg-encoding": "1.0.4" + } + }, "html-tags": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", "dev": true }, - "html-to-text": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-3.3.0.tgz", - "integrity": "sha1-aptjxpm4hbt7qEsURr/mh2u/z7c=", + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", "requires": { - "he": "1.1.1", - "htmlparser2": "3.9.2", - "optimist": "0.6.1", - "underscore": "1.9.1", - "underscore.string": "3.3.4" + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.0.0", + "readable-stream": "1.1.14" }, "dependencies": { "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" - } - }, - "htmlparser2": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", - "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.3.0", - "domutils": "1.7.0", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - } - } - }, - "htmlparser2": { - "version": "3.8.3", - "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" - }, - "dependencies": { - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "version": "1.5.1", + "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" @@ -7547,7 +7786,7 @@ }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "1.0.2", @@ -7570,7 +7809,7 @@ }, "http-errors": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "integrity": "sha1-GX4izevUGYWF6GlO9nhhl7ke2UI=", "requires": { "inherits": "2.0.3", @@ -7635,6 +7874,25 @@ } } }, + "husky": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-0.14.3.tgz", + "integrity": "sha512-e21wivqHpstpoiWA/Yi8eFti8E+sQDSS53cpJsPptPs295QTOQR0ZwnHo2TXy1XOpZFD9rPOd3NpmqTK6uMLJA==", + "dev": true, + "requires": { + "is-ci": "1.2.0", + "normalize-path": "1.0.0", + "strip-indent": "2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "dev": true + } + } + }, "iconv-lite": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", @@ -7653,6 +7911,14 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==" }, + "ignore-walk": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "requires": { + "minimatch": "3.0.4" + } + }, "image-size": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.6.2.tgz", @@ -7674,7 +7940,7 @@ }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "1.0.2", @@ -7951,7 +8217,7 @@ }, "is-builtin-module": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { @@ -7963,6 +8229,15 @@ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" }, + "is-ci": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.0.tgz", + "integrity": "sha512-plgvKjQtalH2P3Gytb7L61Lmz95g2DlpzFiQyRSFew8WoJKxtKRzrZMeyRN2supblm3Psc8OQGy7Xjb6XG11jw==", + "dev": true, + "requires": { + "ci-info": "1.3.1" + } + }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -8097,7 +8372,7 @@ }, "is-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" }, "is-object": { @@ -8272,8 +8547,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", @@ -8353,6 +8627,59 @@ "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.6.0.tgz", "integrity": "sha512-xYuhvQ7I9PDJIGBWev9xm0+SMSed3ZDBAmvVjbFR1ZRLAF+vlXcQu6cRI9uAlj81rzikElRVteehwV7DuX2ZmQ==" }, + "jsdom": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", + "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", + "requires": { + "abab": "2.0.0", + "acorn": "5.7.2", + "acorn-globals": "4.1.0", + "array-equal": "1.0.0", + "cssom": "0.3.4", + "cssstyle": "1.1.1", + "data-urls": "1.0.1", + "domexception": "1.0.1", + "escodegen": "1.11.0", + "html-encoding-sniffer": "1.0.2", + "left-pad": "1.3.0", + "nwsapi": "2.0.8", + "parse5": "4.0.0", + "pn": "1.1.0", + "request": "2.87.0", + "request-promise-native": "1.0.5", + "sax": "1.2.4", + "symbol-tree": "3.2.2", + "tough-cookie": "2.3.4", + "w3c-hr-time": "1.0.1", + "webidl-conversions": "4.0.2", + "whatwg-encoding": "1.0.4", + "whatwg-mimetype": "2.1.0", + "whatwg-url": "6.5.0", + "ws": "5.2.2", + "xml-name-validator": "3.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.2.tgz", + "integrity": "sha512-cJrKCNcr2kv8dlDnbw+JPUGjHZzo4myaxOLmpOX8a+rgX94YeTcTMv/LFJUSByRpc+i4GgVnnhLxvMu/2Y+rqw==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "1.0.0" + } + } + } + }, "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", @@ -8384,7 +8711,6 @@ "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=", - "dev": true, "requires": { "jsonify": "0.0.0" } @@ -8408,7 +8734,7 @@ }, "jsonfile": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "dev": true, "requires": { @@ -8418,8 +8744,7 @@ "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" }, "jsonparse": { "version": "1.3.1", @@ -8462,6 +8787,98 @@ "verror": "1.10.0" } }, + "juice": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/juice/-/juice-4.3.2.tgz", + "integrity": "sha512-3Qym/RnFoCGa9qrDz6xn4zRnohgI6G87xKWZV+/seF3dYpaVqNS1HijsDef+elGhytRY79RIboOzk0hucLtx6g==", + "requires": { + "cheerio": "0.22.0", + "commander": "2.15.1", + "cross-spawn": "5.1.0", + "deep-extend": "0.5.1", + "mensch": "0.3.3", + "slick": "1.12.2", + "web-resource-inliner": "4.2.1" + }, + "dependencies": { + "cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "requires": { + "css-select": "1.2.0", + "dom-serializer": "0.1.0", + "entities": "1.1.1", + "htmlparser2": "3.9.2", + "lodash.assignin": "4.2.0", + "lodash.bind": "4.2.1", + "lodash.defaults": "4.2.0", + "lodash.filter": "4.6.0", + "lodash.flatten": "4.4.0", + "lodash.foreach": "4.5.0", + "lodash.map": "4.6.0", + "lodash.merge": "4.6.1", + "lodash.pick": "4.4.0", + "lodash.reduce": "4.6.0", + "lodash.reject": "4.6.0", + "lodash.some": "4.6.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.2.14" + } + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "requires": { + "boolbase": "1.0.0", + "css-what": "2.1.0", + "domutils": "1.5.1", + "nth-check": "1.0.1" + } + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=" + }, + "deep-extend": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" + }, + "domutils": { + "version": "1.5.1", + "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" + } + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.5.1", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6" + } + } + } + }, "jwa": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.1.6.tgz", @@ -8487,6 +8904,51 @@ "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", "dev": true }, + "key-encoder": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/key-encoder/-/key-encoder-1.1.6.tgz", + "integrity": "sha1-ATVYLNPQp+t5LZTso4e2gejloq0=", + "requires": { + "asn1.js": "2.2.1", + "bn.js": "3.3.0", + "elliptic": "5.2.1" + }, + "dependencies": { + "asn1.js": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-2.2.1.tgz", + "integrity": "sha1-yLpN1o6EQxKIEmIwyyBFvfqfv+E=", + "requires": { + "bn.js": "2.2.0", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-2.2.0.tgz", + "integrity": "sha1-EhYrwq5x/EClYmwzQ486h1zTdiU=" + } + } + }, + "bn.js": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-3.3.0.tgz", + "integrity": "sha1-ETjld4if3Je72rUYRPIZDfwK49c=" + }, + "elliptic": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-5.2.1.tgz", + "integrity": "sha1-+ilLZWPG3bybo9yFlGh66ECFjxA=", + "requires": { + "bn.js": "3.3.0", + "brorand": "1.1.0", + "hash.js": "1.1.5", + "inherits": "2.0.3" + } + } + } + }, "keyv": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", @@ -8570,18 +9032,23 @@ "verror": "1.10.0" } }, + "left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" + }, "less": { "version": "https://github.com/meteor/less.js/tarball/8130849eb3d7f0ecf0ca8d0af7c4207b0442e3f6", "integrity": "sha512-514pMpzrABW11ploVaRcbHLf3MhollYYCJj9SyJmNT1O8ZeLCiIeqZ2SjZUM1uudohPlHgTRwmCZouzIJFJ7Jw==", "requires": { - "errno": "0.1.7", - "graceful-fs": "3.0.11", - "image-size": "0.3.5", - "mime": "1.6.0", - "mkdirp": "0.5.1", - "promise": "6.1.0", - "request": "2.87.0", - "source-map": "0.4.4" + "errno": "^0.1.1", + "graceful-fs": "^3.0.5", + "image-size": "~0.3.5", + "mime": "^1.2.11", + "mkdirp": "^0.5.0", + "promise": "^6.0.1", + "request": "^2.51.0", + "source-map": "^0.4.2" }, "dependencies": { "asap": { @@ -8596,7 +9063,7 @@ "integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=", "optional": true, "requires": { - "natives": "1.1.4" + "natives": "^1.1.0" } }, "image-size": { @@ -8617,7 +9084,7 @@ "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=", "optional": true, "requires": { - "asap": "1.0.0" + "asap": "~1.0.0" } }, "source-map": { @@ -8626,7 +9093,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "optional": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -8659,7 +9126,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, "requires": { "prelude-ls": "1.1.2", "type-check": "0.3.2" @@ -8757,6 +9223,41 @@ "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "dev": true }, + "lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" + }, + "lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" + }, "lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", @@ -8792,6 +9293,11 @@ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" + }, "lodash.merge": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", @@ -8802,6 +9308,31 @@ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" + }, + "lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" + }, + "lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" + }, + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, "lodash.template": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", @@ -8821,6 +9352,11 @@ "lodash._reinterpolate": "3.0.0" } }, + "lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=" + }, "log-driver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", @@ -8841,3532 +9377,1536 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" - } - }, - "chalk": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", - "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "loglevel": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", - "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=" - }, - "lokijs": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/lokijs/-/lokijs-1.5.5.tgz", - "integrity": "sha1-HCH4KvdXkDf63nueSBNIXCNwi7Y=" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "longest-streak": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.2.tgz", - "integrity": "sha512-TmYTeEYxiAmSVdpbnQDXGtvYOIRsCMg89CVZzwzc2o7GFL1CjoiRPjH5ec0NFAVlAx3fVof9dX/t6KKRAo2OWA==", - "dev": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", - "dev": true, - "requires": { - "js-tokens": "3.0.2" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", - "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "mailparser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/mailparser/-/mailparser-2.2.0.tgz", - "integrity": "sha512-HVaPa+5xQtG3CQ5SUxbDuJMRnDANC8WllUKXHm46v0tKu3I4YaUlBxg4Lpkvf+qF+kOn0lGcnQgvM6xY5mYALw==", - "requires": { - "addressparser": "1.0.1", - "he": "1.1.1", - "html-to-text": "3.3.0", - "iconv-lite": "0.4.19", - "libmime": "3.1.0", - "linkify-it": "2.0.3", - "mailsplit": "4.1.2", - "tlds": "1.199.0" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", - "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" - } - } - }, - "mailsplit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/mailsplit/-/mailsplit-4.1.2.tgz", - "integrity": "sha512-5UWjUfhKlC4OR5PqZKcl4h7vnz2EP4M3Zg2SBbrztvAYX5lM/rA7tvaXkZ6zRcvK32Uul0GkRA037icDbiJIOw==", - "requires": { - "libbase64": "1.0.2", - "libmime": "3.1.0", - "libqp": "1.1.0" - }, - "dependencies": { - "libbase64": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-1.0.2.tgz", - "integrity": "sha512-CyPjvTFbsGps2Sdvy9GVjSRPvUGpji8Hxb+iunp466guzxcd3QaK0k8Hur1sPkgD9FonW8V1z2F1y066YiliEg==" - } - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "3.0.0" - } - }, - "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": "2.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", - "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", - "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.1" - } - }, - "markdown-escapes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.2.tgz", - "integrity": "sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA==", - "dev": true - }, - "markdown-table": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.2.tgz", - "integrity": "sha512-NcWuJFHDA8V3wkDgR/j4+gZx+YQwstPgfQDV8ndUeWWzta3dnDTBxpVzqS9lkmJAuV5YX35lmyojl6HO5JXAgw==", - "dev": true - }, - "marked": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.4.0.tgz", - "integrity": "sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw==" - }, - "math-random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", - "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", - "dev": true - }, - "mathml-tag-names": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.0.tgz", - "integrity": "sha512-3Zs9P/0zzwTob2pdgT0CHZuMbnSUSp8MB1bddfm+HDmnFWHGT4jvEZRf+2RuPoa+cjdn/z25SEt5gFTqdhvJAg==", - "dev": true - }, - "mdast-util-compact": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.1.tgz", - "integrity": "sha1-zbX4TitqLTEU3zO9BdnLMuPECDo=", - "dev": true, - "requires": { - "unist-util-modify-children": "1.1.2", - "unist-util-visit": "1.3.1" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "4.2.0", - "decamelize-keys": "1.1.0", - "loud-rejection": "1.6.0", - "minimist": "1.2.0", - "minimist-options": "3.0.2", - "normalize-package-data": "2.4.0", - "read-pkg-up": "3.0.0", - "redent": "2.0.0", - "trim-newlines": "2.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", - "dev": true, - "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" - } - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" - } - } - } - }, - "merge": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", - "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "merge2": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", - "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==" - }, - "meteor-promise": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/meteor-promise/-/meteor-promise-0.8.6.tgz", - "integrity": "sha512-HP6tOr67z/9XU2Dr0F2SSr8WRTuE23AG9Dj578DCJPEYHs67OLKBviU8A8rwvbwMD7Lu2+Of+yAMz2Wd8r4yxg==", - "dev": true - }, - "methmeth": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/methmeth/-/methmeth-1.1.0.tgz", - "integrity": "sha1-6AomYY5S9cQiKGG7dIUQvRDikIk=" - }, - "method-override": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.10.tgz", - "integrity": "sha1-49r41d7hDdLc59SuiNYrvud0drQ=", - "requires": { - "debug": "2.6.9", - "methods": "1.1.2", - "parseurl": "1.3.2", - "vary": "1.1.2" - }, - "dependencies": { - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - } - } - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "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.2", - "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.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "mime": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", - "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==" - }, - "mime-db": { - "version": "1.34.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.34.0.tgz", - "integrity": "sha1-RS0Oz/XDA0am3B5kseruDTcZ/5o=" - }, - "mime-type": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/mime-type/-/mime-type-3.0.5.tgz", - "integrity": "sha1-ftKSan2oImifgSVPWYf+lQNiLpo=", - "requires": { - "media-typer": "0.3.0", - "minimatch": "3.0.4", - "path.js": "1.0.7", - "util-ex": "0.3.15" - } - }, - "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "requires": { - "mime-db": "1.33.0" - }, - "dependencies": { - "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "mimic-response": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", - "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=" - }, - "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.11" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - }, - "minimist-options": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", - "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", - "dev": true, - "requires": { - "arrify": "1.0.1", - "is-plain-obj": "1.1.0" - } - }, - "minipass": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.3.tgz", - "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", - "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.2" - }, - "dependencies": { - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" - } - } - }, - "minizlib": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", - "requires": { - "minipass": "2.3.3" - } - }, - "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", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "requires": { - "minimist": "0.0.8" - } - }, - "mocha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", - "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", - "dev": true, - "requires": { - "browser-stdout": "1.3.1", - "commander": "2.15.1", - "debug": "3.1.0", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.5", - "he": "1.1.1", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "supports-color": "5.4.0" - }, - "dependencies": { - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "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" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "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 - }, - "supports-color": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", - "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, - "requires": { - "has-flag": "3.0.0" - } - } - } - }, - "mock-require": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/mock-require/-/mock-require-3.0.2.tgz", - "integrity": "sha512-aD/Y1ZFHqw5pHg3HVQ50dLbfaAAcytS6sqLuhP51Dk3TSPdFb2VkSAa3mjrHifLIlGAtwQHJHINafAyqAne7vA==", - "dev": true, - "requires": { - "get-caller-file": "1.0.2", - "normalize-path": "2.1.1" - } - }, - "modelo": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/modelo/-/modelo-4.2.3.tgz", - "integrity": "sha512-9DITV2YEMcw7XojdfvGl3gDD8J9QjZTJ7ZOUuSAkP+F3T6rDbzMJuPktxptsdHYEvZcmXrCD3LMOhdSAEq6zKA==" - }, - "modify-values": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", - "dev": true - }, - "module-not-found-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", - "integrity": "sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=", - "dev": true - }, - "moment": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", - "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" - }, - "moment-timezone": { - "version": "0.5.17", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.17.tgz", - "integrity": "sha512-Y/JpVEWIOA9Gho4vO15MTnW1FCmHi3ypprrkUaxsZ1TKg3uqC8q/qMBjTddkHoiwwZN3qvZSr4zJP7x9V3LpXA==", - "requires": { - "moment": "2.22.2" - } - }, - "morgan": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz", - "integrity": "sha1-X9gYOYxoGcuiinzWZk8pL+HAu/I=", - "requires": { - "basic-auth": "1.0.4", - "debug": "2.2.0", - "depd": "1.0.1", - "on-finished": "2.3.0", - "on-headers": "1.0.1" - }, - "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", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multiparty": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz", - "integrity": "sha1-Nd5oBNwZZD5SSfPT473GyM4wHT8=", - "requires": { - "readable-stream": "1.1.14", - "stream-counter": "0.2.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "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=" - } - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", - "optional": true, - "requires": { - "mkdirp": "0.5.1", - "ncp": "2.0.0", - "rimraf": "2.4.5" - } - }, - "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" - }, - "nanomatch": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", - "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", - "requires": { - "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-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - }, - "natives": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.4.tgz", - "integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg==", - "optional": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", - "optional": true - }, - "negotiator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", - "integrity": "sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=" - }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "nice-try": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", - "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "1.1.4" - } - }, - "node-abi": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.1.tgz", - "integrity": "sha512-pUlswqpHQ7zGPI9lGjZ4XDNIEUDbHxsltfIRb7dTnYdhgHWHOcB0MLZKLoCz6UMcGzSPG5wGl1HODZVQAUsH6w==", - "requires": { - "semver": "5.5.0" - } - }, - "node-dogstatsd": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/node-dogstatsd/-/node-dogstatsd-0.0.7.tgz", - "integrity": "sha1-VE0nTJGkE0JqLzxA/3uOiBPP2TA=" - }, - "node-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", - "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=", - "dev": true - }, - "node-fingerprint": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/node-fingerprint/-/node-fingerprint-0.0.2.tgz", - "integrity": "sha1-Mcur63GmeufdWn3AQuUcPHWGhQE=" - }, - "node-forge": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", - "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==" - }, - "noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" - }, - "normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "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.1.0" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-selector": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", - "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", - "dev": true - }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "requires": { - "prepend-http": "2.0.0", - "query-string": "5.1.1", - "sort-keys": "2.0.0" - } - }, - "npm": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.3.0.tgz", - "integrity": "sha512-oDtLFo3wXue/xe3pU/oks9VHS5501OAWlYrZrApZkFv7l2LXk+9CfPMbjbfZWK7Jqlc1jbNcJMkB6KZC7K/vEA==", - "requires": { - "JSONStream": "1.3.3", - "abbrev": "1.1.1", - "ansicolors": "0.3.2", - "ansistyles": "0.1.3", - "aproba": "1.2.0", - "archy": "1.0.0", - "bin-links": "1.1.2", - "bluebird": "3.5.1", - "byte-size": "4.0.3", - "cacache": "11.1.0", - "call-limit": "1.1.0", - "chownr": "1.0.1", - "cli-columns": "3.1.2", - "cli-table3": "0.5.0", - "cmd-shim": "2.0.2", - "columnify": "1.5.4", - "config-chain": "1.1.11", - "debuglog": "1.0.1", - "detect-indent": "5.0.0", - "detect-newline": "2.1.0", - "dezalgo": "1.0.3", - "editor": "1.0.0", - "figgy-pudding": "3.2.0", - "find-npm-prefix": "1.0.2", - "fs-vacuum": "1.2.10", - "fs-write-stream-atomic": "1.0.10", - "gentle-fs": "2.0.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "has-unicode": "2.0.1", - "hosted-git-info": "2.6.0", - "iferr": "1.0.0", - "imurmurhash": "0.1.4", - "inflight": "1.0.6", - "inherits": "2.0.3", - "ini": "1.3.5", - "init-package-json": "1.10.3", - "is-cidr": "2.0.6", - "json-parse-better-errors": "1.0.2", - "lazy-property": "1.0.0", - "libcipm": "2.0.0", - "libnpmhook": "4.0.1", - "libnpx": "10.2.0", - "lock-verify": "2.0.2", - "lockfile": "1.0.4", - "lodash._baseindexof": "3.1.0", - "lodash._baseuniq": "4.6.0", - "lodash._bindcallback": "3.0.1", - "lodash._cacheindexof": "3.0.2", - "lodash._createcache": "3.1.2", - "lodash._getnative": "3.9.1", - "lodash.clonedeep": "4.5.0", - "lodash.restparam": "3.6.1", - "lodash.union": "4.6.0", - "lodash.uniq": "4.5.0", - "lodash.without": "4.4.0", - "lru-cache": "4.1.3", - "meant": "1.0.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "node-gyp": "3.7.0", - "nopt": "4.0.1", - "normalize-package-data": "2.4.0", - "npm-audit-report": "1.3.1", - "npm-cache-filename": "1.0.2", - "npm-install-checks": "3.0.0", - "npm-lifecycle": "2.0.3", - "npm-package-arg": "6.1.0", - "npm-packlist": "1.1.10", - "npm-pick-manifest": "2.1.0", - "npm-profile": "3.0.2", - "npm-registry-client": "8.5.1", - "npm-registry-fetch": "1.1.0", - "npm-user-validate": "1.0.0", - "npmlog": "4.1.2", - "once": "1.4.0", - "opener": "1.4.3", - "osenv": "0.1.5", - "pacote": "8.1.6", - "path-is-inside": "1.0.2", - "promise-inflight": "1.0.1", - "qrcode-terminal": "0.12.0", - "query-string": "6.1.0", - "qw": "1.0.1", - "read": "1.0.7", - "read-cmd-shim": "1.0.1", - "read-installed": "4.0.3", - "read-package-json": "2.0.13", - "read-package-tree": "5.2.1", - "readable-stream": "2.3.6", - "readdir-scoped-modules": "1.0.2", - "request": "2.81.0", - "retry": "0.12.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "semver": "5.5.0", - "sha": "2.0.1", - "slide": "1.1.6", - "sorted-object": "2.0.1", - "sorted-union-stream": "2.1.3", - "ssri": "6.0.0", - "stringify-package": "1.0.0", - "tar": "4.4.4", - "text-table": "0.2.0", - "tiny-relative-date": "1.3.0", - "uid-number": "0.0.6", - "umask": "1.1.0", - "unique-filename": "1.1.0", - "unpipe": "1.0.0", - "update-notifier": "2.5.0", - "uuid": "3.3.2", - "validate-npm-package-license": "3.0.3", - "validate-npm-package-name": "3.0.0", - "which": "1.3.1", - "worker-farm": "1.6.0", - "write-file-atomic": "2.3.0" - }, - "dependencies": { - "JSONStream": { - "version": "1.3.3", - "bundled": true, - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - } - }, - "abbrev": { - "version": "1.1.1", - "bundled": true - }, - "agent-base": { - "version": "4.2.0", - "bundled": true, - "requires": { - "es6-promisify": "5.0.0" - } - }, - "agentkeepalive": { - "version": "3.4.1", - "bundled": true, - "requires": { - "humanize-ms": "1.2.1" - } - }, - "ansi-align": { - "version": "2.0.0", - "bundled": true, - "requires": { - "string-width": "2.1.1" - } - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true - }, - "ansi-styles": { - "version": "3.2.1", - "bundled": true, - "requires": { - "color-convert": "1.9.1" - } - }, - "ansicolors": { - "version": "0.3.2", - "bundled": true - }, - "ansistyles": { - "version": "0.1.3", - "bundled": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true - }, - "archy": { - "version": "1.0.0", - "bundled": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" - } - }, - "asap": { - "version": "2.0.6", - "bundled": true - }, - "asn1": { - "version": "0.2.3", - "bundled": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true - }, - "aws4": { - "version": "1.7.0", - "bundled": true - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "bin-links": { - "version": "1.1.2", - "bundled": true, - "requires": { - "bluebird": "3.5.1", - "cmd-shim": "2.0.2", - "gentle-fs": "2.0.1", - "graceful-fs": "4.1.11", - "write-file-atomic": "2.3.0" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "requires": { - "inherits": "2.0.3" - } - }, - "bluebird": { - "version": "3.5.1", - "bundled": true - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "requires": { - "hoek": "2.16.3" - } - }, - "boxen": { - "version": "1.3.0", - "bundled": true, - "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.4.1", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "requires": { - "balanced-match": "1.0.0", - "concat-map": "0.0.1" - } - }, - "buffer-from": { - "version": "1.0.0", - "bundled": true - }, - "builtin-modules": { - "version": "1.1.1", - "bundled": true - }, - "builtins": { - "version": "1.0.3", - "bundled": true - }, - "byline": { - "version": "5.0.0", - "bundled": true - }, - "byte-size": { - "version": "4.0.3", - "bundled": true - }, - "cacache": { - "version": "11.1.0", - "bundled": true, - "requires": { - "bluebird": "3.5.1", - "chownr": "1.0.1", - "figgy-pudding": "3.2.0", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "6.0.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" - } - }, - "call-limit": { - "version": "1.1.0", - "bundled": true - }, - "camelcase": { - "version": "4.1.0", - "bundled": true - }, - "capture-stack-trace": { - "version": "1.0.0", - "bundled": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true - }, - "chalk": { - "version": "2.4.1", - "bundled": true, - "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" - } - }, - "chownr": { - "version": "1.0.1", - "bundled": true - }, - "ci-info": { - "version": "1.1.3", - "bundled": true - }, - "cidr-regex": { - "version": "2.0.9", - "bundled": true, - "requires": { - "ip-regex": "2.1.0" - } - }, - "cli-boxes": { - "version": "1.0.0", - "bundled": true - }, - "cli-columns": { - "version": "3.1.2", - "bundled": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "3.0.1" - } - }, - "cli-table3": { - "version": "0.5.0", - "bundled": true, - "requires": { - "colors": "1.3.0", - "object-assign": "4.1.1", - "string-width": "2.1.1" - } - }, - "cliui": { - "version": "4.1.0", - "bundled": true, - "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, - "requires": { - "ansi-regex": "3.0.0" - } - } - } - }, - "clone": { - "version": "1.0.4", - "bundled": true - }, - "cmd-shim": { - "version": "2.0.2", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1" - } - }, - "co": { - "version": "4.6.0", - "bundled": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true - }, - "color-convert": { - "version": "1.9.1", - "bundled": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "bundled": true - }, - "colors": { - "version": "1.3.0", - "bundled": true, - "optional": true - }, - "columnify": { - "version": "1.5.4", - "bundled": true, - "requires": { - "strip-ansi": "3.0.1", - "wcwidth": "1.0.1" - } - }, - "combined-stream": { - "version": "1.0.6", - "bundled": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "bundled": true - }, - "concat-stream": { - "version": "1.6.2", - "bundled": true, - "requires": { - "buffer-from": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" - } - }, - "config-chain": { - "version": "1.1.11", - "bundled": true, - "requires": { - "ini": "1.3.5", - "proto-list": "1.2.4" - } - }, - "configstore": { - "version": "3.1.2", - "bundled": true, - "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.3.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" - } - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true - }, - "copy-concurrently": { - "version": "1.0.5", - "bundled": true, - "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "bundled": true - } - } - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true - }, - "create-error-class": { - "version": "3.0.2", - "bundled": true, - "requires": { - "capture-stack-trace": "1.0.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "bundled": true, - "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" - } - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "requires": { - "boom": "2.10.1" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "bundled": true - }, - "cyclist": { - "version": "0.2.2", - "bundled": true - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, - "debug": { - "version": "3.1.0", - "bundled": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "bundled": true - } - } - }, - "debuglog": { - "version": "1.0.1", - "bundled": true - }, - "decamelize": { - "version": "1.2.0", - "bundled": true - }, - "decode-uri-component": { - "version": "0.2.0", - "bundled": true - }, - "deep-extend": { - "version": "0.5.1", - "bundled": true - }, - "defaults": { - "version": "1.0.3", - "bundled": true, - "requires": { - "clone": "1.0.4" - } - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true - }, - "detect-indent": { - "version": "5.0.0", - "bundled": true - }, - "detect-newline": { - "version": "2.1.0", - "bundled": true - }, - "dezalgo": { - "version": "1.0.3", - "bundled": true, - "requires": { - "asap": "2.0.6", - "wrappy": "1.0.2" - } - }, - "dot-prop": { - "version": "4.2.0", - "bundled": true, - "requires": { - "is-obj": "1.0.1" - } - }, - "dotenv": { - "version": "5.0.1", - "bundled": true - }, - "duplexer3": { - "version": "0.1.4", - "bundled": true - }, - "duplexify": { - "version": "3.6.0", - "bundled": true, - "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "editor": { - "version": "1.0.0", - "bundled": true - }, - "encoding": { - "version": "0.1.12", - "bundled": true, - "requires": { - "iconv-lite": "0.4.23" - } - }, - "end-of-stream": { - "version": "1.4.1", - "bundled": true, - "requires": { - "once": "1.4.0" - } - }, - "err-code": { - "version": "1.1.2", - "bundled": true - }, - "errno": { - "version": "0.1.7", - "bundled": true, - "requires": { - "prr": "1.0.1" - } - }, - "es6-promise": { - "version": "4.2.4", - "bundled": true - }, - "es6-promisify": { - "version": "5.0.0", - "bundled": true, - "requires": { - "es6-promise": "4.2.4" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "bundled": true - }, - "execa": { - "version": "0.7.0", - "bundled": 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" - } - }, - "extend": { - "version": "3.0.1", - "bundled": true - }, - "extsprintf": { - "version": "1.3.0", - "bundled": true - }, - "figgy-pudding": { - "version": "3.2.0", - "bundled": true - }, - "find-npm-prefix": { - "version": "1.0.2", - "bundled": true - }, - "find-up": { - "version": "2.1.0", - "bundled": true, - "requires": { - "locate-path": "2.0.0" - } - }, - "flush-write-stream": { - "version": "1.0.3", - "bundled": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" - } - }, - "from2": { - "version": "2.3.0", - "bundled": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "fs-minipass": { - "version": "1.2.5", - "bundled": true, - "requires": { - "minipass": "2.3.3" - } - }, - "fs-vacuum": { - "version": "1.2.10", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "path-is-inside": "1.0.2", - "rimraf": "2.6.2" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "bundled": true - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" - } - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "requires": { - "aproba": "1.2.0", - "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" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } - } - }, - "genfun": { - "version": "4.0.1", - "bundled": true - }, - "gentle-fs": { - "version": "2.0.1", - "bundled": true, - "requires": { - "aproba": "1.2.0", - "fs-vacuum": "1.2.10", - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "path-is-inside": "1.0.2", - "read-cmd-shim": "1.0.1", - "slide": "1.1.6" - }, - "dependencies": { - "iferr": { - "version": "0.1.5", - "bundled": true - } - } - }, - "get-caller-file": { - "version": "1.0.2", - "bundled": true - }, - "get-stream": { - "version": "3.0.0", - "bundled": true - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, - "glob": { - "version": "7.1.2", - "bundled": 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" - } - }, - "global-dirs": { - "version": "0.1.1", - "bundled": true, - "requires": { - "ini": "1.3.5" - } - }, - "got": { - "version": "6.7.1", - "bundled": 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.1", - "safe-buffer": "5.1.2", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" - }, - "dependencies": { - "ajv": { - "version": "4.11.8", - "bundled": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - } - } - }, - "has-flag": { - "version": "3.0.0", - "bundled": true - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" - } - }, - "hoek": { - "version": "2.16.3", - "bundled": true - }, - "hosted-git-info": { - "version": "2.6.0", - "bundled": true - }, - "http-cache-semantics": { - "version": "3.8.1", - "bundled": true - }, - "http-proxy-agent": { - "version": "2.1.0", - "bundled": true, - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - } - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" - } - }, - "https-proxy-agent": { - "version": "2.2.1", - "bundled": true, - "requires": { - "agent-base": "4.2.0", - "debug": "3.1.0" - } - }, - "humanize-ms": { - "version": "1.2.1", - "bundled": true, - "requires": { - "ms": "2.1.1" - } - }, - "iconv-lite": { - "version": "0.4.23", - "bundled": true, - "requires": { - "safer-buffer": "2.1.2" - } - }, - "iferr": { - "version": "1.0.0", - "bundled": true - }, - "ignore-walk": { - "version": "3.0.1", - "bundled": true, - "requires": { - "minimatch": "3.0.4" - } - }, - "import-lazy": { - "version": "2.1.0", - "bundled": true - }, - "imurmurhash": { - "version": "0.1.4", - "bundled": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" - } - }, - "inherits": { - "version": "2.0.3", - "bundled": true - }, - "ini": { - "version": "1.3.5", - "bundled": true - }, - "init-package-json": { - "version": "1.10.3", - "bundled": true, - "requires": { - "glob": "7.1.2", - "npm-package-arg": "6.1.0", - "promzard": "0.3.0", - "read": "1.0.7", - "read-package-json": "2.0.13", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3", - "validate-npm-package-name": "3.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "bundled": true - }, - "ip": { - "version": "1.1.5", - "bundled": true - }, - "ip-regex": { - "version": "2.1.0", - "bundled": true - }, - "is-builtin-module": { - "version": "1.0.0", - "bundled": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, - "is-ci": { - "version": "1.1.0", - "bundled": true, - "requires": { - "ci-info": "1.1.3" - } - }, - "is-cidr": { - "version": "2.0.6", - "bundled": true, - "requires": { - "cidr-regex": "2.0.9" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-installed-globally": { - "version": "0.1.0", - "bundled": true, - "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" - } - }, - "is-npm": { - "version": "1.0.0", - "bundled": true - }, - "is-obj": { - "version": "1.0.1", - "bundled": true - }, - "is-path-inside": { - "version": "1.0.1", - "bundled": true, - "requires": { - "path-is-inside": "1.0.2" - } - }, - "is-redirect": { - "version": "1.0.0", - "bundled": true - }, - "is-retry-allowed": { - "version": "1.1.0", - "bundled": true - }, - "is-stream": { - "version": "1.1.0", - "bundled": true - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true - }, - "isexe": { - "version": "2.0.0", - "bundled": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "optional": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "bundled": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "requires": { - "jsonify": "0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true - }, - "jsonparse": { - "version": "1.3.1", - "bundled": true - }, - "jsprim": { - "version": "1.4.1", - "bundled": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } - } - }, - "latest-version": { - "version": "3.1.0", - "bundled": true, - "requires": { - "package-json": "4.0.1" - } - }, - "lazy-property": { - "version": "1.0.0", - "bundled": true - }, - "lcid": { - "version": "1.0.0", - "bundled": true, - "requires": { - "invert-kv": "1.0.0" - } - }, - "libcipm": { - "version": "2.0.0", - "bundled": true, - "requires": { - "bin-links": "1.1.2", - "bluebird": "3.5.1", - "find-npm-prefix": "1.0.2", - "graceful-fs": "4.1.11", - "lock-verify": "2.0.2", - "npm-lifecycle": "2.0.3", - "npm-logical-tree": "1.2.1", - "npm-package-arg": "6.1.0", - "pacote": "8.1.6", - "protoduck": "5.0.0", - "read-package-json": "2.0.13", - "rimraf": "2.6.2", - "worker-farm": "1.6.0" - } - }, - "libnpmhook": { - "version": "4.0.1", - "bundled": true, - "requires": { - "figgy-pudding": "3.2.0", - "npm-registry-fetch": "3.1.1" - }, - "dependencies": { - "npm-registry-fetch": { - "version": "3.1.1", - "bundled": true, - "requires": { - "bluebird": "3.5.1", - "figgy-pudding": "3.2.0", - "lru-cache": "4.1.3", - "make-fetch-happen": "4.0.1", - "npm-package-arg": "6.1.0" - } - } - } - }, - "libnpx": { - "version": "10.2.0", - "bundled": true, - "requires": { - "dotenv": "5.0.1", - "npm-package-arg": "6.1.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "update-notifier": "2.5.0", - "which": "1.3.1", - "y18n": "4.0.0", - "yargs": "11.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "bundled": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - } - }, - "lock-verify": { - "version": "2.0.2", - "bundled": true, - "requires": { - "npm-package-arg": "6.1.0", - "semver": "5.5.0" - } - }, - "lockfile": { - "version": "1.0.4", - "bundled": true, - "requires": { - "signal-exit": "3.0.2" - } - }, - "lodash._baseindexof": { - "version": "3.1.0", - "bundled": true - }, - "lodash._baseuniq": { - "version": "4.6.0", - "bundled": true, - "requires": { - "lodash._createset": "4.0.3", - "lodash._root": "3.0.1" - } - }, - "lodash._bindcallback": { - "version": "3.0.1", - "bundled": true - }, - "lodash._cacheindexof": { - "version": "3.0.2", - "bundled": true - }, - "lodash._createcache": { - "version": "3.1.2", - "bundled": true, - "requires": { - "lodash._getnative": "3.9.1" - } - }, - "lodash._createset": { - "version": "4.0.3", - "bundled": true - }, - "lodash._getnative": { - "version": "3.9.1", - "bundled": true - }, - "lodash._root": { - "version": "3.0.1", - "bundled": true - }, - "lodash.clonedeep": { - "version": "4.5.0", - "bundled": true - }, - "lodash.restparam": { - "version": "3.6.1", - "bundled": true - }, - "lodash.union": { - "version": "4.6.0", - "bundled": true - }, - "lodash.uniq": { - "version": "4.5.0", - "bundled": true - }, - "lodash.without": { - "version": "4.4.0", - "bundled": true - }, - "lowercase-keys": { - "version": "1.0.1", - "bundled": true - }, - "lru-cache": { - "version": "4.1.3", - "bundled": true, - "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "bundled": true, - "requires": { - "pify": "3.0.0" - } - }, - "make-fetch-happen": { - "version": "4.0.1", - "bundled": true, - "requires": { - "agentkeepalive": "3.4.1", - "cacache": "11.1.0", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "4.0.1", - "ssri": "6.0.0" - } - }, - "meant": { - "version": "1.0.1", - "bundled": true - }, - "mem": { - "version": "1.1.0", - "bundled": true, - "requires": { - "mimic-fn": "1.2.0" - } - }, - "mime-db": { - "version": "1.33.0", - "bundled": true - }, - "mime-types": { - "version": "2.1.18", - "bundled": true, - "requires": { - "mime-db": "1.33.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "bundled": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "requires": { - "brace-expansion": "1.1.11" - } - }, - "minimist": { - "version": "0.0.8", - "bundled": true - }, - "minipass": { - "version": "2.3.3", - "bundled": true, - "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.2" - }, - "dependencies": { - "yallist": { - "version": "3.0.2", - "bundled": true - } - } - }, - "minizlib": { - "version": "1.1.0", - "bundled": true, - "requires": { - "minipass": "2.3.3" - } - }, - "mississippi": { - "version": "3.0.0", - "bundled": true, - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.0", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.2", - "through2": "2.0.3" - } - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "requires": { - "minimist": "0.0.8" - } - }, - "move-concurrently": { - "version": "1.0.1", - "bundled": true, - "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" - } - }, - "ms": { - "version": "2.1.1", - "bundled": true - }, - "mute-stream": { - "version": "0.0.7", - "bundled": true - }, - "node-fetch-npm": { - "version": "2.0.2", - "bundled": true, - "requires": { - "encoding": "0.1.12", - "json-parse-better-errors": "1.0.2", - "safe-buffer": "5.1.2" - } - }, - "node-gyp": { - "version": "3.7.0", - "bundled": true, - "requires": { - "fstream": "1.0.11", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "npmlog": "4.1.2", - "osenv": "0.1.5", - "request": "2.81.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.1" - }, - "dependencies": { - "nopt": { - "version": "3.0.6", - "bundled": true, - "requires": { - "abbrev": "1.1.1" - } - }, - "semver": { - "version": "5.3.0", - "bundled": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - } - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" - } - }, - "normalize-package-data": { - "version": "2.4.0", - "bundled": true, - "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" - } - }, - "npm-audit-report": { - "version": "1.3.1", - "bundled": true, - "requires": { - "cli-table3": "0.5.0", - "console-control-strings": "1.1.0" - } - }, - "npm-bundled": { - "version": "1.0.3", - "bundled": true - }, - "npm-cache-filename": { - "version": "1.0.2", - "bundled": true - }, - "npm-install-checks": { - "version": "3.0.0", - "bundled": true, - "requires": { - "semver": "5.5.0" - } - }, - "npm-lifecycle": { - "version": "2.0.3", - "bundled": true, - "requires": { - "byline": "5.0.0", - "graceful-fs": "4.1.11", - "node-gyp": "3.7.0", - "resolve-from": "4.0.0", - "slide": "1.1.6", - "uid-number": "0.0.6", - "umask": "1.1.0", - "which": "1.3.1" - } - }, - "npm-logical-tree": { - "version": "1.2.1", - "bundled": true - }, - "npm-package-arg": { - "version": "6.1.0", - "bundled": true, - "requires": { - "hosted-git-info": "2.6.0", - "osenv": "0.1.5", - "semver": "5.5.0", - "validate-npm-package-name": "3.0.0" - } - }, - "npm-packlist": { - "version": "1.1.10", - "bundled": true, - "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.3" - } - }, - "npm-pick-manifest": { - "version": "2.1.0", - "bundled": true, - "requires": { - "npm-package-arg": "6.1.0", - "semver": "5.5.0" - } - }, - "npm-profile": { - "version": "3.0.2", - "bundled": true, - "requires": { - "aproba": "1.2.0", - "make-fetch-happen": "4.0.1" - } - }, - "npm-registry-client": { - "version": "8.5.1", - "bundled": true, - "requires": { - "concat-stream": "1.6.2", - "graceful-fs": "4.1.11", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npmlog": "4.1.2", - "once": "1.4.0", - "request": "2.81.0", - "retry": "0.10.1", - "safe-buffer": "5.1.2", - "semver": "5.5.0", - "slide": "1.1.6", - "ssri": "5.3.0" - }, - "dependencies": { - "retry": { - "version": "0.10.1", - "bundled": true - }, - "ssri": { - "version": "5.3.0", - "bundled": true, - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "npm-registry-fetch": { - "version": "1.1.0", - "bundled": true, - "requires": { - "bluebird": "3.5.1", - "figgy-pudding": "2.0.1", - "lru-cache": "4.1.3", - "make-fetch-happen": "3.0.0", - "npm-package-arg": "6.1.0", - "safe-buffer": "5.1.2" - }, - "dependencies": { - "cacache": { - "version": "10.0.4", - "bundled": true, - "requires": { - "bluebird": "3.5.1", - "chownr": "1.0.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.3", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" - }, - "dependencies": { - "mississippi": { - "version": "2.0.0", - "bundled": true, - "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.0", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.2", - "through2": "2.0.3" - } - } - } - }, - "figgy-pudding": { - "version": "2.0.1", - "bundled": true - }, - "make-fetch-happen": { - "version": "3.0.0", - "bundled": true, - "requires": { - "agentkeepalive": "3.4.1", - "cacache": "10.0.4", - "http-cache-semantics": "3.8.1", - "http-proxy-agent": "2.1.0", - "https-proxy-agent": "2.2.1", - "lru-cache": "4.1.3", - "mississippi": "3.0.0", - "node-fetch-npm": "2.0.2", - "promise-retry": "1.1.1", - "socks-proxy-agent": "3.0.1", - "ssri": "5.3.0" - } - }, - "pump": { - "version": "2.0.1", - "bundled": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - }, - "smart-buffer": { - "version": "1.1.15", - "bundled": true - }, - "socks": { - "version": "1.1.10", - "bundled": true, - "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" - } - }, - "socks-proxy-agent": { - "version": "3.0.1", - "bundled": true, - "requires": { - "agent-base": "4.2.0", - "socks": "1.1.10" - } - }, - "ssri": { - "version": "5.3.0", - "bundled": true, - "requires": { - "safe-buffer": "5.1.2" - } - } - } - }, - "npm-run-path": { - "version": "2.0.2", - "bundled": true, - "requires": { - "path-key": "2.0.1" - } - }, - "npm-user-validate": { - "version": "1.0.0", - "bundled": true - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "requires": { - "wrappy": "1.0.2" - } - }, - "opener": { - "version": "1.4.3", - "bundled": true - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true - }, - "os-locale": { - "version": "2.1.0", - "bundled": true, - "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" - } - }, - "p-finally": { - "version": "1.0.0", - "bundled": true - }, - "p-limit": { - "version": "1.2.0", - "bundled": true, - "requires": { - "p-try": "1.0.0" + "color-convert": "1.9.1" } }, - "p-locate": { - "version": "2.0.0", - "bundled": true, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, "requires": { - "p-limit": "1.2.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" } }, - "p-try": { - "version": "1.0.0", - "bundled": 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 }, - "package-json": { - "version": "4.0.1", - "bundled": true, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.0" + "has-flag": "3.0.0" + } + } + } + }, + "loglevel": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz", + "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=" + }, + "lokijs": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/lokijs/-/lokijs-1.5.5.tgz", + "integrity": "sha1-HCH4KvdXkDf63nueSBNIXCNwi7Y=" + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "longest-streak": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.2.tgz", + "integrity": "sha512-TmYTeEYxiAmSVdpbnQDXGtvYOIRsCMg89CVZzwzc2o7GFL1CjoiRPjH5ec0NFAVlAx3fVof9dX/t6KKRAo2OWA==", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "mailparser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/mailparser/-/mailparser-2.2.0.tgz", + "integrity": "sha512-HVaPa+5xQtG3CQ5SUxbDuJMRnDANC8WllUKXHm46v0tKu3I4YaUlBxg4Lpkvf+qF+kOn0lGcnQgvM6xY5mYALw==", + "requires": { + "addressparser": "1.0.1", + "he": "1.1.1", + "html-to-text": "3.3.0", + "iconv-lite": "0.4.19", + "libmime": "3.1.0", + "linkify-it": "2.0.3", + "mailsplit": "4.1.2", + "tlds": "1.199.0" + }, + "dependencies": { + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" } }, - "pacote": { - "version": "8.1.6", - "bundled": true, + "html-to-text": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-3.3.0.tgz", + "integrity": "sha1-aptjxpm4hbt7qEsURr/mh2u/z7c=", "requires": { - "bluebird": "3.5.1", - "cacache": "11.1.0", - "get-stream": "3.0.0", - "glob": "7.1.2", - "lru-cache": "4.1.3", - "make-fetch-happen": "4.0.1", - "minimatch": "3.0.4", - "minipass": "2.3.3", - "mississippi": "3.0.0", - "mkdirp": "0.5.1", - "normalize-package-data": "2.4.0", - "npm-package-arg": "6.1.0", - "npm-packlist": "1.1.10", - "npm-pick-manifest": "2.1.0", - "osenv": "0.1.5", - "promise-inflight": "1.0.1", - "promise-retry": "1.1.1", - "protoduck": "5.0.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", - "semver": "5.5.0", - "ssri": "6.0.0", - "tar": "4.4.4", - "unique-filename": "1.1.0", - "which": "1.3.1" + "he": "1.1.1", + "htmlparser2": "3.9.2", + "optimist": "0.6.1", + "underscore": "1.9.1", + "underscore.string": "3.3.4" } }, - "parallel-transform": { - "version": "1.1.0", - "bundled": true, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "requires": { - "cyclist": "0.2.2", + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.7.0", + "entities": "1.1.1", "inherits": "2.0.3", "readable-stream": "2.3.6" } }, - "path-exists": { - "version": "3.0.0", - "bundled": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true + "iconv-lite": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", + "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" }, - "path-is-inside": { + "tlds": { + "version": "1.199.0", + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.199.0.tgz", + "integrity": "sha512-NM0jUhibJjEX4g0+1ETxOhuODIDpyvCC0A2BjxrTfMUMZ+uRZc6ZnJl9SmFtAW1s5iQgQIxezFpUij6/6OiRbg==" + } + } + }, + "mailsplit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/mailsplit/-/mailsplit-4.1.2.tgz", + "integrity": "sha512-5UWjUfhKlC4OR5PqZKcl4h7vnz2EP4M3Zg2SBbrztvAYX5lM/rA7tvaXkZ6zRcvK32Uul0GkRA037icDbiJIOw==", + "requires": { + "libbase64": "1.0.2", + "libmime": "3.1.0", + "libqp": "1.1.0" + }, + "dependencies": { + "libbase64": { "version": "1.0.2", - "bundled": true - }, - "path-key": { - "version": "2.0.1", - "bundled": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true + "resolved": "https://registry.npmjs.org/libbase64/-/libbase64-1.0.2.tgz", + "integrity": "sha512-CyPjvTFbsGps2Sdvy9GVjSRPvUGpji8Hxb+iunp466guzxcd3QaK0k8Hur1sPkgD9FonW8V1z2F1y066YiliEg==" + } + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "3.0.0" + } + }, + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz", + "integrity": "sha1-plzSkIepJZi4eRJXpSPgISIqwfk=", + "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.1" + } + }, + "markdown-escapes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.2.tgz", + "integrity": "sha512-lbRZ2mE3Q9RtLjxZBZ9+IMl68DKIXaVAhwvwn9pmjnPLS0h/6kyBMgNhqi1xFJ/2yv6cSyv0jbiZavZv93JkkA==", + "dev": true + }, + "markdown-table": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.2.tgz", + "integrity": "sha512-NcWuJFHDA8V3wkDgR/j4+gZx+YQwstPgfQDV8ndUeWWzta3dnDTBxpVzqS9lkmJAuV5YX35lmyojl6HO5JXAgw==", + "dev": true + }, + "marked": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.4.0.tgz", + "integrity": "sha512-tMsdNBgOsrUophCAFQl0XPe6Zqk/uy9gnue+jIIKhykO51hxyu6uNx7zBPy0+y/WKYVZZMspV9YeXLNdKk+iYw==" + }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, + "mathml-tag-names": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.0.tgz", + "integrity": "sha512-3Zs9P/0zzwTob2pdgT0CHZuMbnSUSp8MB1bddfm+HDmnFWHGT4jvEZRf+2RuPoa+cjdn/z25SEt5gFTqdhvJAg==", + "dev": true + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + } + }, + "mdast-util-compact": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.1.tgz", + "integrity": "sha1-zbX4TitqLTEU3zO9BdnLMuPECDo=", + "dev": true, + "requires": { + "unist-util-modify-children": "1.1.2", + "unist-util-visit": "1.3.1" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mensch": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/mensch/-/mensch-0.3.3.tgz", + "integrity": "sha1-4gD/TdgjcX+OBWOzLj9UgfyiYrI=" + }, + "meow": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", + "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", + "dev": true, + "requires": { + "camelcase-keys": "4.2.0", + "decamelize-keys": "1.1.0", + "loud-rejection": "1.6.0", + "minimist": "1.2.0", + "minimist-options": "3.0.2", + "normalize-package-data": "2.4.0", + "read-pkg-up": "3.0.0", + "redent": "2.0.0", + "trim-newlines": "2.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true }, - "pify": { + "read-pkg": { "version": "3.0.0", - "bundled": true - }, - "prepend-http": { - "version": "1.0.4", - "bundled": true - }, - "process-nextick-args": { - "version": "2.0.0", - "bundled": true - }, - "promise-inflight": { - "version": "1.0.1", - "bundled": true - }, - "promise-retry": { - "version": "1.1.1", - "bundled": true, - "requires": { - "err-code": "1.1.2", - "retry": "0.10.1" - }, - "dependencies": { - "retry": { - "version": "0.10.1", - "bundled": true - } - } - }, - "promzard": { - "version": "0.3.0", - "bundled": true, - "requires": { - "read": "1.0.7" - } - }, - "proto-list": { - "version": "1.2.4", - "bundled": true - }, - "protoduck": { - "version": "5.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, "requires": { - "genfun": "4.0.1" + "load-json-file": "4.0.0", + "normalize-package-data": "2.4.0", + "path-type": "3.0.0" } }, - "prr": { - "version": "1.0.1", - "bundled": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true - }, - "pump": { + "read-pkg-up": { "version": "3.0.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "find-up": "2.1.0", + "read-pkg": "3.0.0" } - }, - "pumpify": { - "version": "1.5.1", - "bundled": true, + } + } + }, + "merge": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz", + "integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge2": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", + "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==" + }, + "merkle-lib": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/merkle-lib/-/merkle-lib-2.0.10.tgz", + "integrity": "sha1-grjbrnXieneFOItz+ddyXQ9vMyY=" + }, + "meteor-node-stubs": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-0.3.3.tgz", + "integrity": "sha512-TI1aQRK0vqs94OCkUMkmf5lXNWfIsjSaEDP1inUuwRGt9w8/S2V+HdRikz9r1k/gew+7NcJieaqHsHX7pSTEgA==", + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.1.4", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.12.0", + "domain-browser": "1.2.0", + "events": "1.1.1", + "https-browserify": "0.0.1", + "os-browserify": "0.2.1", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12", + "stream-browserify": "2.0.1", + "stream-http": "2.8.0", + "string_decoder": "1.1.0", + "timers-browserify": "1.4.2", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "requires": { - "duplexify": "3.6.0", - "inherits": "2.0.3", - "pump": "2.0.1" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "bundled": true, - "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" - } - } + "bn.js": "4.11.8", + "inherits": "2.0.1", + "minimalistic-assert": "1.0.0" } }, - "punycode": { + "assert": { "version": "1.4.1", - "bundled": true - }, - "qrcode-terminal": { - "version": "0.12.0", - "bundled": true - }, - "qs": { - "version": "6.4.0", - "bundled": true - }, - "query-string": { - "version": "6.1.0", - "bundled": true, + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", "requires": { - "decode-uri-component": "0.2.0", - "strict-uri-encode": "2.0.0" + "util": "0.10.3" } }, - "qw": { - "version": "1.0.1", - "bundled": true - }, - "rc": { - "version": "1.2.7", - "bundled": true, - "requires": { - "deep-extend": "0.5.1", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true - } - } + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "read": { - "version": "1.0.7", - "bundled": true, - "requires": { - "mute-stream": "0.0.7" - } + "base64-js": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.3.tgz", + "integrity": "sha512-MsAhsUW1GxCdgYSO6tAfZrNapmUKk7mWx/k5mFY/A1gBtkaCaNapTg+FExCw1r9yeaZhqx/xPg43xgTFH6KL5w==" }, - "read-cmd-shim": { - "version": "1.0.1", - "bundled": true, - "requires": { - "graceful-fs": "4.1.11" - } + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, - "read-installed": { - "version": "4.0.3", - "bundled": true, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "debuglog": "1.0.1", - "graceful-fs": "4.1.11", - "read-package-json": "2.0.13", - "readdir-scoped-modules": "1.0.2", - "semver": "5.5.0", - "slide": "1.1.6", - "util-extend": "1.0.3" + "balanced-match": "1.0.0", + "concat-map": "0.0.1" } }, - "read-package-json": { - "version": "2.0.13", - "bundled": true, - "requires": { - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "json-parse-better-errors": "1.0.2", - "normalize-package-data": "2.4.0", - "slash": "1.0.0" - } + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" }, - "read-package-tree": { - "version": "5.2.1", - "bundled": true, - "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "once": "1.4.0", - "read-package-json": "2.0.13", - "readdir-scoped-modules": "1.0.2" + "browserify-aes": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", + "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "inherits": "2.0.1", + "safe-buffer": "5.1.1" } }, - "readable-stream": { - "version": "2.3.6", - "bundled": true, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "browserify-aes": "1.1.1", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.3" } }, - "readdir-scoped-modules": { - "version": "1.0.2", - "bundled": true, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", "requires": { - "debuglog": "1.0.1", - "dezalgo": "1.0.3", - "graceful-fs": "4.1.11", - "once": "1.4.0" + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.1" } }, - "registry-auth-token": { - "version": "3.3.2", - "bundled": true, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { - "rc": "1.2.7", - "safe-buffer": "5.1.2" + "bn.js": "4.11.8", + "randombytes": "2.0.6" } }, - "registry-url": { - "version": "3.1.0", - "bundled": true, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "requires": { - "rc": "1.2.7" + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "elliptic": "6.4.0", + "inherits": "2.0.1", + "parse-asn1": "5.1.0" } }, - "request": { - "version": "2.81.0", - "bundled": true, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "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.18", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.2", - "stringstream": "0.0.6", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "pako": "0.2.9" } }, - "require-directory": { - "version": "2.1.1", - "bundled": true - }, - "require-main-filename": { - "version": "1.0.1", - "bundled": true - }, - "resolve-from": { - "version": "4.0.0", - "bundled": true - }, - "retry": { - "version": "0.12.0", - "bundled": true - }, - "rimraf": { - "version": "2.6.2", - "bundled": true, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "glob": "7.1.2" + "base64-js": "1.2.3", + "ieee754": "1.1.8", + "isarray": "1.0.0" } }, - "run-queue": { + "buffer-xor": { "version": "1.0.3", - "bundled": true, - "requires": { - "aproba": "1.2.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true - }, - "semver": { - "version": "5.5.0", - "bundled": true - }, - "semver-diff": { - "version": "2.1.0", - "bundled": true, - "requires": { - "semver": "5.5.0" - } + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, - "set-blocking": { - "version": "2.0.0", - "bundled": true + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" }, - "sha": { - "version": "2.0.1", - "bundled": true, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "graceful-fs": "4.1.11", - "readable-stream": "2.3.6" + "inherits": "2.0.1", + "safe-buffer": "5.1.1" } }, - "shebang-command": { - "version": "1.2.0", - "bundled": true, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "requires": { - "shebang-regex": "1.0.0" + "date-now": "0.1.4" } }, - "shebang-regex": { + "constants-browserify": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" }, - "signal-exit": { - "version": "3.0.2", - "bundled": true + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0" + } }, - "slash": { - "version": "1.0.0", - "bundled": true + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.1", + "ripemd160": "2.0.1", + "sha.js": "2.4.10" + } }, - "slide": { + "create-hmac": { "version": "1.1.6", - "bundled": true - }, - "smart-buffer": { - "version": "4.0.1", - "bundled": true + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.1", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.10" + } }, - "sntp": { - "version": "1.0.9", - "bundled": true, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "requires": { - "hoek": "2.16.3" + "browserify-cipher": "1.0.0", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.0", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "diffie-hellman": "5.0.2", + "inherits": "2.0.1", + "pbkdf2": "3.0.14", + "public-encrypt": "4.0.0", + "randombytes": "2.0.6", + "randomfill": "1.0.4" } }, - "socks": { - "version": "2.2.0", - "bundled": true, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=" + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "requires": { - "ip": "1.1.5", - "smart-buffer": "4.0.1" + "inherits": "2.0.1", + "minimalistic-assert": "1.0.0" } }, - "socks-proxy-agent": { - "version": "4.0.1", - "bundled": true, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", "requires": { - "agent-base": "4.2.0", - "socks": "2.2.0" + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.6" } }, - "sorted-object": { - "version": "2.0.1", - "bundled": true + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" }, - "sorted-union-stream": { - "version": "2.1.3", - "bundled": true, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "from2": "1.3.0", - "stream-iterate": "1.2.0" - }, - "dependencies": { - "from2": { - "version": "1.3.0", - "bundled": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "1.1.14" - } - }, - "isarray": { - "version": "0.0.1", - "bundled": true - }, - "readable-stream": { - "version": "1.1.14", - "bundled": true, - "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", - "bundled": true - } + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.1", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" } }, - "spdx-correct": { - "version": "3.0.0", - "bundled": true, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" } }, - "spdx-exceptions": { - "version": "2.1.0", - "bundled": true + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, - "spdx-expression-parse": { - "version": "3.0.0", - "bundled": true, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.1", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, - "spdx-license-ids": { - "version": "3.0.0", - "bundled": true + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "requires": { + "inherits": "2.0.1" + } }, - "sshpk": { - "version": "1.14.2", - "bundled": true, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" }, "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" } } }, - "ssri": { - "version": "6.0.0", - "bundled": true - }, - "stream-each": { - "version": "1.2.2", - "bundled": true, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" } }, - "stream-iterate": { - "version": "1.2.0", - "bundled": true, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=" + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "once": "1.4.0", + "wrappy": "1.0.2" } }, - "stream-shift": { - "version": "1.0.0", - "bundled": true + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" }, - "strict-uri-encode": { - "version": "2.0.0", - "bundled": true + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, - "string-width": { - "version": "2.1.1", - "bundled": true, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "hash-base": "3.0.4", + "inherits": "2.0.1" }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "bundled": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "bundled": true - }, - "strip-ansi": { - "version": "4.0.0", - "bundled": true, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "ansi-regex": "3.0.0" + "inherits": "2.0.1", + "safe-buffer": "5.1.1" } } } }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "requires": { - "safe-buffer": "5.1.2" + "bn.js": "4.11.8", + "brorand": "1.1.0" } }, - "stringify-package": { + "minimalistic-assert": { "version": "1.0.0", - "bundled": true + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" }, - "stringstream": { - "version": "0.0.6", - "bundled": true + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "ansi-regex": "2.1.1" + "brace-expansion": "1.1.11" } }, - "strip-eof": { - "version": "1.0.0", - "bundled": true - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true - }, - "supports-color": { - "version": "5.4.0", - "bundled": true, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "has-flag": "3.0.0" + "wrappy": "1.0.2" } }, - "tar": { - "version": "4.4.4", - "bundled": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.3", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.2" - }, - "dependencies": { - "yallist": { - "version": "3.0.2", - "bundled": true - } - } + "os-browserify": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=" }, - "term-size": { - "version": "1.2.0", - "bundled": true, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", "requires": { - "execa": "0.7.0" + "asn1.js": "4.10.1", + "browserify-aes": "1.1.1", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.14" } }, - "text-table": { - "version": "0.2.0", - "bundled": true + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" }, - "through": { - "version": "2.3.8", - "bundled": true + "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=" }, - "through2": { - "version": "2.0.3", - "bundled": true, + "pbkdf2": { + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", + "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.10" } }, - "timed-out": { - "version": "4.0.1", - "bundled": true - }, - "tiny-relative-date": { - "version": "1.3.0", - "bundled": true + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" }, - "tough-cookie": { - "version": "2.3.4", - "bundled": true, - "requires": { - "punycode": "1.4.1" - } + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", "requires": { - "safe-buffer": "5.1.2" + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.6" } }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "optional": true - }, - "typedarray": { - "version": "0.0.6", - "bundled": true + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, - "uid-number": { - "version": "0.0.6", - "bundled": true + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" }, - "umask": { - "version": "1.1.0", - "bundled": true + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" }, - "unique-filename": { - "version": "1.1.0", - "bundled": true, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "unique-slug": "2.0.0" + "safe-buffer": "5.1.1" } }, - "unique-slug": { - "version": "2.0.0", - "bundled": true, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "requires": { - "imurmurhash": "0.1.4" + "randombytes": "2.0.6", + "safe-buffer": "5.1.1" } }, - "unique-string": { - "version": "1.0.0", - "bundled": true, + "readable-stream": { + "version": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12", "requires": { - "crypto-random-string": "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.0", + "util-deprecate": "1.0.2" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } } }, - "unpipe": { - "version": "1.0.0", - "bundled": true - }, - "unzip-response": { - "version": "2.0.1", - "bundled": true - }, - "update-notifier": { - "version": "2.5.0", - "bundled": true, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "boxen": "1.3.0", - "chalk": "2.4.1", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.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" + "glob": "7.1.2" } }, - "url-parse-lax": { - "version": "1.0.0", - "bundled": true, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", "requires": { - "prepend-http": "1.0.4" + "hash-base": "2.0.2", + "inherits": "2.0.1" } }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true - }, - "util-extend": { - "version": "1.0.3", - "bundled": true - }, - "uuid": { - "version": "3.3.2", - "bundled": true + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, - "validate-npm-package-license": { - "version": "3.0.3", - "bundled": true, + "sha.js": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz", + "integrity": "sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==", "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "inherits": "2.0.1", + "safe-buffer": "5.1.1" } }, - "validate-npm-package-name": { - "version": "3.0.0", - "bundled": true, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "requires": { - "builtins": "1.0.3" + "inherits": "2.0.1", + "readable-stream": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12" } }, - "verror": { - "version": "1.10.0", - "bundled": true, - "requires": { - "assert-plus": "1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "1.3.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true - } + "stream-http": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.0.tgz", + "integrity": "sha512-sZOFxI/5xw058XIRHl4dU3dZ+TTOIGJR78Dvo0oEAejIt4ou27k+3ne1zYmCV+v7UucbxIFQuOgnkTVHh8YPnw==", + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.1", + "readable-stream": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" } }, - "wcwidth": { - "version": "1.0.1", - "bundled": true, + "string_decoder": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.0.tgz", + "integrity": "sha512-8zQpRF6juocE69ae7CSPmYEGJe4VCXwP6S6dxUWI7i53Gwv54/ec41fiUA+X7BPGGv7fRSQJjBQVa0gomGaOgg==", "requires": { - "defaults": "1.0.3" + "safe-buffer": "5.1.1" } }, - "which": { - "version": "1.3.1", - "bundled": true, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", "requires": { - "isexe": "2.0.0" + "process": "0.11.10" } }, - "which-module": { - "version": "2.0.0", - "bundled": true + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" }, - "wide-align": { - "version": "1.1.2", - "bundled": true, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "requires": { - "string-width": "1.0.2" + "punycode": "1.3.2", + "querystring": "0.2.0" }, "dependencies": { - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" } } }, - "widest-line": { - "version": "2.0.0", - "bundled": true, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "requires": { - "string-width": "2.1.1" + "inherits": "2.0.1" } }, - "worker-farm": { - "version": "1.6.0", - "bundled": true, - "requires": { - "errno": "0.1.7" - } + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, - "wrap-ansi": { - "version": "2.1.0", - "bundled": true, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "bundled": true, - "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" - } - } + "indexof": "0.0.1" } }, "wrappy": { "version": "1.0.2", - "bundled": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, - "write-file-atomic": { - "version": "2.3.0", - "bundled": true, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + } + } + }, + "meteor-promise": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/meteor-promise/-/meteor-promise-0.8.6.tgz", + "integrity": "sha512-HP6tOr67z/9XU2Dr0F2SSr8WRTuE23AG9Dj578DCJPEYHs67OLKBviU8A8rwvbwMD7Lu2+Of+yAMz2Wd8r4yxg==", + "dev": true + }, + "methmeth": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/methmeth/-/methmeth-1.1.0.tgz", + "integrity": "sha1-6AomYY5S9cQiKGG7dIUQvRDikIk=" + }, + "method-override": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/method-override/-/method-override-2.3.10.tgz", + "integrity": "sha1-49r41d7hDdLc59SuiNYrvud0drQ=", + "requires": { + "debug": "2.6.9", + "methods": "1.1.2", + "parseurl": "1.3.2", + "vary": "1.1.2" + }, + "dependencies": { + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + } + } + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "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.2", + "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.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + }, + "mime": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", + "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==" + }, + "mime-db": { + "version": "1.34.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.34.0.tgz", + "integrity": "sha1-RS0Oz/XDA0am3B5kseruDTcZ/5o=" + }, + "mime-type": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/mime-type/-/mime-type-3.0.5.tgz", + "integrity": "sha1-ftKSan2oImifgSVPWYf+lQNiLpo=", + "requires": { + "media-typer": "0.3.0", + "minimatch": "3.0.4", + "path.js": "1.0.7", + "util-ex": "0.3.15" + } + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "requires": { + "mime-db": "1.33.0" + }, + "dependencies": { + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + } + } + }, + "mimer": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/mimer/-/mimer-0.3.2.tgz", + "integrity": "sha512-N6NcgDQAevhP/02DQ/epK6daLy4NKrIHyTlJcO6qBiYn98q+Y4a/knNsAATCe1xLS2F0nEmJp+QYli2s8vKwyQ==" + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mimic-response": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=" + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "minimist-options": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-3.0.2.tgz", + "integrity": "sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ==", + "dev": true, + "requires": { + "arrify": "1.0.1", + "is-plain-obj": "1.1.0" + } + }, + "minipass": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.3.tgz", + "integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==", + "requires": { + "safe-buffer": "5.1.2", + "yallist": "3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" + } + } + }, + "minizlib": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", + "requires": { + "minipass": "2.3.3" + } + }, + "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": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", + "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "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": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "ms": "2.0.0" } }, - "xdg-basedir": { - "version": "3.0.0", - "bundled": true - }, - "xtend": { - "version": "4.0.1", - "bundled": true + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true }, - "y18n": { - "version": "4.0.0", - "bundled": true + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true }, - "yallist": { - "version": "2.1.2", - "bundled": 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 }, - "yargs": { - "version": "11.0.0", - "bundled": true, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "2.1.0", - "get-caller-file": "1.0.2", - "os-locale": "2.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "3.2.1", - "yargs-parser": "9.0.2" - }, - "dependencies": { - "y18n": { - "version": "3.2.1", - "bundled": true - } + "has-flag": "3.0.0" + } + } + } + }, + "mock-require": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mock-require/-/mock-require-3.0.2.tgz", + "integrity": "sha512-aD/Y1ZFHqw5pHg3HVQ50dLbfaAAcytS6sqLuhP51Dk3TSPdFb2VkSAa3mjrHifLIlGAtwQHJHINafAyqAne7vA==", + "dev": true, + "requires": { + "get-caller-file": "1.0.2", + "normalize-path": "2.1.1" + } + }, + "modelo": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/modelo/-/modelo-4.2.3.tgz", + "integrity": "sha512-9DITV2YEMcw7XojdfvGl3gDD8J9QjZTJ7ZOUuSAkP+F3T6rDbzMJuPktxptsdHYEvZcmXrCD3LMOhdSAEq6zKA==" + }, + "modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true + }, + "module-not-found-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz", + "integrity": "sha1-z4tP9PKWQGdNbN0CsOO8UjwrvcA=", + "dev": true + }, + "moment": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", + "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" + }, + "moment-timezone": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.17.tgz", + "integrity": "sha512-Y/JpVEWIOA9Gho4vO15MTnW1FCmHi3ypprrkUaxsZ1TKg3uqC8q/qMBjTddkHoiwwZN3qvZSr4zJP7x9V3LpXA==", + "requires": { + "moment": "2.22.2" + } + }, + "morgan": { + "version": "1.6.1", + "resolved": "http://registry.npmjs.org/morgan/-/morgan-1.6.1.tgz", + "integrity": "sha1-X9gYOYxoGcuiinzWZk8pL+HAu/I=", + "requires": { + "basic-auth": "1.0.4", + "debug": "2.2.0", + "depd": "1.0.1", + "on-finished": "2.3.0", + "on-headers": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" } }, - "yargs-parser": { - "version": "9.0.2", - "bundled": true, + "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", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multiparty": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/multiparty/-/multiparty-3.3.2.tgz", + "integrity": "sha1-Nd5oBNwZZD5SSfPT473GyM4wHT8=", + "requires": { + "readable-stream": "1.1.14", + "stream-counter": "0.2.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { - "camelcase": "4.1.0" + "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=" } } }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "mv": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", + "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=", + "optional": true, + "requires": { + "mkdirp": "0.5.1", + "ncp": "2.0.0", + "rimraf": "2.4.5" + } + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "requires": { + "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-odd": "2.0.0", + "is-windows": "1.0.2", + "kind-of": "6.0.2", + "object.pick": "1.3.0", + "regex-not": "1.0.2", + "snapdragon": "0.8.2", + "to-regex": "3.0.2" + } + }, + "natives": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.4.tgz", + "integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "ncp": { + "version": "2.0.0", + "resolved": "http://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=", + "optional": true + }, + "negotiator": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", + "integrity": "sha1-Jp1cR2gQ7JLtvntsLygxY4T5p+g=" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "1.1.4" + } + }, + "node-abi": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.1.tgz", + "integrity": "sha512-pUlswqpHQ7zGPI9lGjZ4XDNIEUDbHxsltfIRb7dTnYdhgHWHOcB0MLZKLoCz6UMcGzSPG5wGl1HODZVQAUsH6w==", + "requires": { + "semver": "5.5.0" + } + }, + "node-dogstatsd": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/node-dogstatsd/-/node-dogstatsd-0.0.7.tgz", + "integrity": "sha1-VE0nTJGkE0JqLzxA/3uOiBPP2TA=" + }, + "node-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", + "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" + }, + "node-fingerprint": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/node-fingerprint/-/node-fingerprint-0.0.2.tgz", + "integrity": "sha1-Mcur63GmeufdWn3AQuUcPHWGhQE=" + }, + "node-forge": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==" + }, + "noop-logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "requires": { + "abbrev": "1.1.1", + "osenv": "0.1.5" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" + } + }, + "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.1.0" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-selector": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", + "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", + "dev": true + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "requires": { + "prepend-http": "2.0.0", + "query-string": "5.1.1", + "sort-keys": "2.0.0" + } + }, "npm-install-package": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/npm-install-package/-/npm-install-package-2.1.0.tgz", @@ -12402,6 +10942,11 @@ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, + "nwsapi": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.0.8.tgz", + "integrity": "sha512-7RZ+qbFGiVc6v14Y8DSZjPN1wZPOaMbiiP4tzf5eNuyOITAeOIA3cMhjuKUypVIqBgCSg1KaSyAv8Ocq/0ZJ1A==" + }, "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", @@ -12562,7 +11107,6 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true, "requires": { "deep-is": "0.1.3", "fast-levenshtein": "2.0.6", @@ -12575,8 +11119,7 @@ "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" } } }, @@ -12592,7 +11135,7 @@ }, "os-locale": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "requires": { "lcid": "1.0.0" @@ -12601,8 +11144,16 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } }, "p-cancelable": { "version": "0.3.0", @@ -12734,6 +11285,11 @@ "json-parse-better-errors": "1.0.2" } }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" + }, "parseurl": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", @@ -12778,10 +11334,15 @@ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", "requires": { "pify": "3.0.0" } @@ -12859,7 +11420,7 @@ }, "es6-promise": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz", + "resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-4.0.5.tgz", "integrity": "sha1-eILzCt3lskDM+n99eMVIMwlRrkI=", "dev": true }, @@ -12976,12 +11537,47 @@ "pinkie": "2.0.4" } }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "1.1.2" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + } + } + }, "pluralize": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", "dev": true }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" + }, "pop-iterate": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pop-iterate/-/pop-iterate-1.0.1.tgz", @@ -13013,7 +11609,7 @@ }, "postcss-custom-properties": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-7.0.0.tgz", + "resolved": "http://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-7.0.0.tgz", "integrity": "sha512-dl/CNaM6z2RBa0vZZqsV6Hunj4HD6Spu7FcAkiVp5B2tgm6xReKKYzI7x7QNx3wTMBNj5v+ylfVcQGMW4xdkHw==", "dev": true, "requires": { @@ -13113,7 +11709,7 @@ "postcss-import": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-11.1.0.tgz", - "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", + "integrity": "sha1-Vck2LJGSmU7GiGXSJEGd8dspgfA=", "dev": true, "requires": { "postcss": "6.0.22", @@ -13162,7 +11758,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true }, "supports-color": { @@ -13879,7 +12475,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } @@ -13892,8 +12488,7 @@ "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" }, "prepend-http": { "version": "2.0.0", @@ -13959,6 +12554,22 @@ "long": "4.0.0" } }, + "proxy-addr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", + "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "requires": { + "forwarded": "0.1.2", + "ipaddr.js": "1.8.0" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", + "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" + } + } + }, "proxyquire": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/proxyquire/-/proxyquire-2.0.1.tgz", @@ -13984,8 +12595,7 @@ "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "optional": true + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" }, "pseudomap": { "version": "1.0.2", @@ -14016,6 +12626,14 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, + "pushdata-bitcoin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", + "integrity": "sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=", + "requires": { + "bitcoin-ops": "1.4.1" + } + }, "q": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/q/-/q-2.0.3.tgz", @@ -14089,6 +12707,14 @@ } } }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "requires": { + "safe-buffer": "5.1.2" + } + }, "range-parser": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", @@ -14129,7 +12755,7 @@ "dependencies": { "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } @@ -14164,7 +12790,7 @@ "dependencies": { "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { @@ -14245,7 +12871,7 @@ }, "readable-stream": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { "core-util-is": "1.0.2", @@ -14501,6 +13127,24 @@ "throttleit": "1.0.0" } }, + "request-promise-core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", + "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", + "requires": { + "lodash": "4.17.10" + } + }, + "request-promise-native": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.5.tgz", + "integrity": "sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=", + "requires": { + "request-promise-core": "1.1.1", + "stealthy-require": "1.1.1", + "tough-cookie": "2.3.4" + } + }, "requestretry": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-1.5.0.tgz", @@ -14622,7 +13266,7 @@ }, "rimraf": { "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", + "resolved": "http://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=", "requires": { "glob": "6.0.4" @@ -14642,6 +13286,15 @@ } } }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + } + }, "rndm": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/rndm/-/rndm-1.2.0.tgz", @@ -14711,9 +13364,24 @@ }, "sax": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "resolved": "http://registry.npmjs.org/sax/-/sax-1.2.1.tgz", "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" }, + "schema-inspector": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/schema-inspector/-/schema-inspector-1.6.8.tgz", + "integrity": "sha1-ueU5g8xV/y29e2Xj2+CF2dEoXyo=", + "requires": { + "async": "1.5.2" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + } + } + }, "scmp": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/scmp/-/scmp-0.0.3.tgz", @@ -14765,7 +13433,7 @@ }, "minimist": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, @@ -14807,7 +13475,7 @@ "dependencies": { "debug": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "requires": { "ms": "0.7.1" @@ -14869,7 +13537,7 @@ "dependencies": { "debug": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", "requires": { "ms": "0.7.1" @@ -14924,6 +13592,20 @@ } } }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.2" + } + }, "sharp": { "version": "0.20.3", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.20.3.tgz", @@ -14945,7 +13627,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, "requires": { "shebang-regex": "1.0.0" } @@ -14953,8 +13634,7 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "signal-exit": { "version": "3.0.2", @@ -15026,6 +13706,11 @@ } } }, + "slick": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/slick/-/slick-1.12.2.tgz", + "integrity": "sha1-vQSN23TefRymkV+qSldXCzVQwtc=" + }, "snakeize": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/snakeize/-/snakeize-0.1.0.tgz", @@ -15370,6 +14055,11 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + }, "stream-counter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/stream-counter/-/stream-counter-0.2.0.tgz", @@ -15385,7 +14075,7 @@ }, "readable-stream": { "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "requires": { "core-util-is": "1.0.2", @@ -15798,7 +14488,7 @@ "stylelint-order": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-0.8.1.tgz", - "integrity": "sha512-8mp1P2wnI9XShYXVXDsxVigE2eXnc0C2O4ktbwUvTBwjCP4xZskIbUVxp1evSG3OK4R7hXVNl/2BnJCZkrcc/w==", + "integrity": "sha1-Nfca86FZVBVODpnlZGuj1vvjT40=", "dev": true, "requires": { "lodash": "4.17.10", @@ -15846,7 +14536,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", "dev": true }, "supports-color": { @@ -15982,6 +14672,11 @@ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", "dev": true }, + "symbol-tree": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", + "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=" + }, "table": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/table/-/table-4.0.2.tgz", @@ -16167,7 +14862,7 @@ }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, @@ -16190,10 +14885,17 @@ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz", "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==" }, - "tlds": { - "version": "1.199.0", - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.199.0.tgz", - "integrity": "sha512-NM0jUhibJjEX4g0+1ETxOhuODIDpyvCC0A2BjxrTfMUMZ+uRZc6ZnJl9SmFtAW1s5iQgQIxezFpUij6/6OiRbg==" + "tiny-secp256k1": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.0.0.tgz", + "integrity": "sha512-Wd4YPIQUtNmFoszG9f4PAkpCTurF5deVrbS1KuIZ9LTo9AHmXwbl1iNTrDqT3/xI62TRi0OcVs6eXk+8OcDziQ==", + "requires": { + "bindings": "1.3.0", + "bn.js": "4.11.8", + "create-hmac": "1.1.7", + "elliptic": "6.4.1", + "nan": "2.10.0" + } }, "tmp": { "version": "0.0.33", @@ -16269,6 +14971,21 @@ "punycode": "1.4.1" } }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "requires": { + "punycode": "2.1.1" + }, + "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==" + } + } + }, "traverse": { "version": "0.6.6", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", @@ -16323,6 +15040,14 @@ "safe-buffer": "5.1.2" } }, + "turndown": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/turndown/-/turndown-5.0.1.tgz", + "integrity": "sha512-OuNongGmx5vo1TWuSFmVa4Rkm/HxFNPU3dyP9OpOMF2RFTtl0RU+QLIIROcDvXWauFJaLpZaZeVMAsL8vrt3Tw==", + "requires": { + "jsdom": "11.12.0" + } + }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", @@ -16378,7 +15103,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, "requires": { "prelude-ls": "1.1.2" } @@ -16408,6 +15132,16 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "typeforce": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.12.0.tgz", + "integrity": "sha512-fvnkvueAOFLhtAqDgIA/wMP21SMwS/NQESFKZuwVrj5m/Ew6eK2S0z0iB++cwtROPWDOhaT6OUfla8UwMw4Adg==" + }, + "typescript": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==" + }, "ua-parser-js": { "version": "0.7.18", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz", @@ -16789,6 +15523,11 @@ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" }, + "valid-data-url": { + "version": "0.1.6", + "resolved": "http://registry.npmjs.org/valid-data-url/-/valid-data-url-0.1.6.tgz", + "integrity": "sha512-FXg2qXMzfAhZc0y2HzELNfUeiOjPr+52hU1DNBWiJJ2luXD+dD1R9NA48Ug5aj0ibbxroeGDc/RJv6ThiGgkDw==" + }, "validate-npm-package-license": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", @@ -16799,6 +15538,19 @@ "spdx-expression-parse": "3.0.0" } }, + "validator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-7.2.0.tgz", + "integrity": "sha512-c8NGTUYeBEcUIGeMppmNVKHE7wwfm3mYbNZxV+c5mlv9fDHI7Ad3p07qfNrn/CvpdkK2k61fOLRO2sTEhgQXmg==" + }, + "varuint-bitcoin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.0.tgz", + "integrity": "sha512-jCEPG+COU/1Rp84neKTyDJQr478/hAfVp5xxYn09QEH0yBjbmPeMfuuQIrp+BUD83hybtYZKhr5elV3bvdV1bA==", + "requires": { + "safe-buffer": "5.1.2" + } + }, "vary": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", @@ -16869,6 +15621,14 @@ "resolved": "https://registry.npmjs.org/vhost/-/vhost-3.0.2.tgz", "integrity": "sha1-L7HezUxGaqiLD5NBrzPcGv8keNU=" }, + "w3c-hr-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", + "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", + "requires": { + "browser-process-hrtime": "0.1.2" + } + }, "wdio-dot-reporter": { "version": "0.0.9", "resolved": "https://registry.npmjs.org/wdio-dot-reporter/-/wdio-dot-reporter-0.0.9.tgz", @@ -16909,6 +15669,45 @@ "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.5.tgz", "integrity": "sha1-eWkVhNmGB/UHC9O3CkDmuyLkAes=" }, + "web-resource-inliner": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-4.2.1.tgz", + "integrity": "sha512-fOWnBQHVX8zHvEbECDTxtYL0FXIIZZ5H3LWoez8mGopYJK7inEru1kVMDzM1lVdeJBNEqUnNP5FBGxvzuMcwwQ==", + "requires": { + "async": "2.6.1", + "chalk": "1.1.3", + "datauri": "1.1.0", + "htmlparser2": "3.9.2", + "lodash.unescape": "4.0.1", + "request": "2.87.0", + "valid-data-url": "0.1.6", + "xtend": "4.0.1" + }, + "dependencies": { + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "htmlparser2": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", + "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.3.0", + "domutils": "1.7.0", + "entities": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6" + } + } + } + }, "webdav": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/webdav/-/webdav-1.5.2.tgz", @@ -16925,6 +15724,20 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.0.0.tgz", "integrity": "sha1-mCu6Q+zU8pIqKcwYamu7C7c/y6Y=" + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "requires": { + "sax": "1.2.1", + "xmlbuilder": "9.0.7" + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" } } }, @@ -17082,6 +15895,11 @@ } } }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, "websocket-driver": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", @@ -17104,11 +15922,33 @@ "integrity": "sha1-7vikudVYzEla06mit1FZfs2a9pA=", "dev": true }, + "whatwg-encoding": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.4.tgz", + "integrity": "sha512-vM9KWN6MP2mIHZ86ytcyIv7e8Cj3KTfO2nd2c8PFDqcI4bxFmQp83ibq4wadq7rL9l9sZV6o9B0LTt8ygGAAXg==", + "requires": { + "iconv-lite": "0.4.23" + } + }, + "whatwg-mimetype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.1.0.tgz", + "integrity": "sha512-FKxhYLytBQiUKjkYteN71fAUA3g6KpNXoho1isLiLSB3N1G4F35Q5vUxWfKFhBwi5IWF27VE6WxhrnnC+m0Mew==" + }, + "whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "requires": { + "lodash.sortby": "4.7.0", + "tr46": "1.0.1", + "webidl-conversions": "4.0.2" + } + }, "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" } @@ -17126,6 +15966,14 @@ "string-width": "1.0.2" } }, + "wif": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", + "integrity": "sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=", + "requires": { + "bs58check": "1.3.4" + } + }, "window-size": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", @@ -17143,7 +15991,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "1.0.2", @@ -17210,20 +16058,17 @@ } } }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, "xml2js": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", - "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.0.tgz", + "integrity": "sha1-99pSJ33rtkeYMFOtti2XLe5loaw=", "requires": { - "sax": "1.2.1", - "xmlbuilder": "9.0.7" - }, - "dependencies": { - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" - } + "sax": "1.2.1" } }, "xmlbuilder": { @@ -17238,7 +16083,7 @@ }, "xolvio-ddp": { "version": "0.12.3", - "resolved": "https://registry.npmjs.org/xolvio-ddp/-/xolvio-ddp-0.12.3.tgz", + "resolved": "http://registry.npmjs.org/xolvio-ddp/-/xolvio-ddp-0.12.3.tgz", "integrity": "sha1-NqarlhKyQLWg0cCoNJCK8XwLjwI=", "dev": true, "requires": { @@ -17284,7 +16129,7 @@ }, "bluebird": { "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "resolved": "http://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=", "dev": true }, @@ -17296,7 +16141,7 @@ }, "combined-stream": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", "dev": true, "requires": { @@ -17390,7 +16235,7 @@ }, "readable-stream": { "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { @@ -17402,7 +16247,7 @@ }, "request": { "version": "2.53.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.53.0.tgz", + "resolved": "http://registry.npmjs.org/request/-/request-2.53.0.tgz", "integrity": "sha1-GAo66St7Y5gC5PlUXdj83rcddgw=", "dev": true, "requires": { @@ -17441,7 +16286,7 @@ }, "xolvio-fiber-utils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/xolvio-fiber-utils/-/xolvio-fiber-utils-2.0.3.tgz", + "resolved": "http://registry.npmjs.org/xolvio-fiber-utils/-/xolvio-fiber-utils-2.0.3.tgz", "integrity": "sha1-vsjXDHQGGjFjFbun0w0lyz6C3FA=", "dev": true, "requires": { @@ -17451,7 +16296,7 @@ }, "xolvio-jasmine-expect": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xolvio-jasmine-expect/-/xolvio-jasmine-expect-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/xolvio-jasmine-expect/-/xolvio-jasmine-expect-1.1.0.tgz", "integrity": "sha1-vCud1ghCMR8EV59agtzqaisxnH0=", "dev": true, "requires": { @@ -17499,7 +16344,7 @@ }, "yargs": { "version": "3.32.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", "requires": { "camelcase": "2.1.1", @@ -17547,6 +16392,11 @@ "lodash": "4.17.10", "readable-stream": "2.3.6" } + }, + "zone-file": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/zone-file/-/zone-file-0.2.3.tgz", + "integrity": "sha512-JVLtJPAo09NRdrwQrxX917ZQFUXEPDlH94XiISsZQJTJBSHuRgbtk9sSjxv5BAEByQwKwXBbQSK6VG2m4rLNmQ==" } } } diff --git a/package.json b/package.json index 6f273ba04b4b..7505e78fe1a0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Rocket.Chat", "description": "The Ultimate Open Source WebChat Platform", - "version": "0.68.5", + "version": "0.70.4", "author": { "name": "Rocket.Chat", "url": "https://rocket.chat/" @@ -60,12 +60,12 @@ "chat" ], "scripts": { - "start": "meteor npm i && meteor", + "start": "meteor", "debug": "meteor run --inspect", "debug-brk": "meteor run --inspect-brk", - "lint": "eslint .", - "lint-fix": "eslint . --fix", - "stylelint": "stylelint packages/**/*.css", + "lint": "meteor npm run jslint && meteor npm run stylelint", + "jslint": "eslint .", + "stylelint": "stylelint \"packages/**/*.css\"", "test": "node .scripts/start.js", "test-resume": "/bin/bash .scripts/continueTesting.sh", "chimp-path": "chimp tests/chimp-config.js --path=$CHIMP_PATH", @@ -77,7 +77,8 @@ "testunit": "mocha --opts ./mocha.opts \"`node -e \"console.log(require('./package.json').mocha.tests.join(' '))\"`\"", "version": "node .scripts/version.js", "set-version": "node .scripts/set-version.js", - "release": "npm run set-version --silent" + "release": "meteor npm run set-version --silent", + "prepush": "meteor npm run lint && meteor npm run testunit" }, "license": "MIT", "repository": { @@ -90,12 +91,14 @@ }, "devDependencies": { "@octokit/rest": "^15.8.1", + "@rocket.chat/eslint-config": "^0.1.2", "autoprefixer": "^8.6.0", "babel-mocha-es6-compiler": "^0.1.0", "babel-plugin-array-includes": "^2.0.3", "chimp": "^0.51.1", "conventional-changelog-cli": "^2.0.0", "eslint": "^4.19.1", + "husky": "^0.14.3", "mocha": "^5.2.0", "mock-require": "^3.0.2", "postcss-custom-properties": "^7.0.0", @@ -115,6 +118,7 @@ "@google-cloud/language": "^1.2.0", "@google-cloud/storage": "^1.7.0", "@google-cloud/vision": "^0.19.0", + "@rocket.chat/apps-engine": "1.1.1", "@slack/client": "^4.2.2", "adm-zip": "^0.4.11", "archiver": "^2.1.1", @@ -124,11 +128,14 @@ "aws-sdk": "^2.250.1", "bad-words": "^1.6.1", "bcrypt": "^2.0.1", + "blockstack": "18.0.4", "bson": "^2.0.7", "bugsnag": "^2.4.0", "bunyan": "^1.8.12", "busboy": "^0.2.14", + "bytebuffer": "5.0.1", "cas": "https://github.com/kcbanner/node-cas/tarball/fcd27dad333223b3b75a048bce27973fb3ca0f62", + "chart.js": "^2.7.2", "clipboard": "^2.0.1", "codemirror": "^5.38.0", "coffeescript": "^1.12.7", @@ -136,6 +143,7 @@ "core-js": "^2.5.7", "csv-parse": "^2.4.0", "emailreplyparser": "^0.0.5", + "express": "^4.16.3", "file-type": "^8.0.0", "filesize": "^3.6.1", "grapheme-splitter": "^1.0.2", @@ -148,6 +156,7 @@ "ip-range-check": "^0.0.2", "jquery": "^3.3.1", "jschardet": "^1.6.0", + "juice": "^4.3.2", "ldapjs": "^1.0.2", "less": "https://github.com/meteor/less.js/tarball/8130849eb3d7f0ecf0ca8d0af7c4207b0442e3f6", "less-plugin-autoprefix": "^1.5.1", @@ -156,13 +165,13 @@ "lru-cache": "^4.1.3", "mailparser": "^2.2.0", "marked": "^0.4.0", + "meteor-node-stubs": "^0.3.2", "mime-db": "^1.34.0", "mime-type": "^3.0.5", "mkdirp": "^0.5.1", "moment": "^2.22.2", "moment-timezone": "^0.5.17", "node-dogstatsd": "^0.0.7", - "npm": "^6.3.0", "object-path": "^0.11.4", "photoswipe": "^4.1.2", "poplib": "^0.1.7", @@ -175,6 +184,7 @@ "speakeasy": "^2.0.0", "tar-stream": "^1.6.1", "toastr": "^2.1.4", + "turndown": "^5.0.1", "twilio": "^3.17.1", "twit": "^2.2.10", "ua-parser-js": "^0.7.18", @@ -183,6 +193,7 @@ "webdav": "^1.5.2", "wolfy87-eventemitter": "^5.2.4", "xml-crypto": "^0.10.1", + "xml2js": "0.2.0", "xmlbuilder": "^10.0.0", "xmldom": "^0.1.27", "yaqrcode": "^0.2.1" diff --git a/packages/assistify-ai/assistify-ai.js b/packages/assistify-ai/assistify-ai.js index 415e662744f6..67a68786d863 100644 --- a/packages/assistify-ai/assistify-ai.js +++ b/packages/assistify-ai/assistify-ai.js @@ -1,4 +1,4 @@ -import {getKnowledgeAdapter as getAdapter} from './server/lib/KnowledgeAdapterProvider'; +import { getKnowledgeAdapter as getAdapter } from './server/lib/KnowledgeAdapterProvider'; export const name = 'assistify:ai'; diff --git a/packages/assistify-ai/client/chatpalAdoption.js b/packages/assistify-ai/client/chatpalAdoption.js index 5c391b69aa43..28be00a7cfbb 100644 --- a/packages/assistify-ai/client/chatpalAdoption.js +++ b/packages/assistify-ai/client/chatpalAdoption.js @@ -1,8 +1,8 @@ TAPi18n.loadTranslations({ en: { - CHATPAL_ENTER_SEARCH_STRING: 'Search knowledge base' + CHATPAL_ENTER_SEARCH_STRING: 'Search knowledge base', }, de: { - CHATPAL_ENTER_SEARCH_STRING: 'Wissensbasis durchsuchen' - } + CHATPAL_ENTER_SEARCH_STRING: 'Wissensbasis durchsuchen', + }, }); diff --git a/packages/assistify-ai/client/hooks/openAiTab.js b/packages/assistify-ai/client/hooks/openAiTab.js index 07747d8fa7c0..94b3fdb24b69 100644 --- a/packages/assistify-ai/client/hooks/openAiTab.js +++ b/packages/assistify-ai/client/hooks/openAiTab.js @@ -4,12 +4,12 @@ */ RocketChat.callbacks.add('enter-room', function(subscription) { if (Meteor.isCordova) { - return; //looks awkward on mobile if panel is opened by default + return; // looks awkward on mobile if panel is opened by default } - if (subscription && subscription.t === 'l') { //no subscription: if a user joins a room without being subscribed to it - if ($('.rc-header .messages-container-wrapper .contextual-bar').length === 0) { //the tab bar is closed - Meteor.setTimeout(()=>$('div:not(.active) .rc-header .rc-room-actions .rc-room-actions__action[data-id="assistify-ai"] > button').click(), 1000); + if (subscription && subscription.t === 'l') { // no subscription: if a user joins a room without being subscribed to it + if ($('.rc-header .messages-container-wrapper .contextual-bar').length === 0) { // the tab bar is closed + Meteor.setTimeout(() => $('div:not(.active) .rc-header .rc-room-actions .rc-room-actions__action[data-id="assistify-ai"] > button').click(), 1000); } } }); diff --git a/packages/assistify-ai/client/public/stylesheets/smarti.css b/packages/assistify-ai/client/public/stylesheets/smarti.css index a7fe024135a9..4b68655f7df6 100644 --- a/packages/assistify-ai/client/public/stylesheets/smarti.css +++ b/packages/assistify-ai/client/public/stylesheets/smarti.css @@ -1,6 +1,8 @@ .smarti-widget .loading-notification { margin: 0 20px; + text-align: justify; + font-style: italic; line-height: 1.4; } @@ -11,25 +13,34 @@ .smarti #widgetContainer { position: absolute; - font-family: "Helvetica Neue", Arial, sans-serif; - font-size: 16px; - color: #3D3D3D; + top: 0; right: 0; + + overflow: hidden; + width: 400px; height: 100%; + + color: #3d3d3d; + border-right: 1px solid #dfdfdf; border-left: 1px solid #dfdfdf; background: #f4f4f4; - overflow: hidden; + + font-family: "Helvetica Neue", Arial, sans-serif; + font-size: 16px; + line-height: normal; } .smarti #widgetContainer #widgetWrapper { position: relative; - height: 100%; + display: flex; flex-direction: column; + + height: 100%; } .smarti #widgetContainer #widgetWrapper #widgetHeader { @@ -37,42 +48,55 @@ } .smarti #widgetContainer #widgetWrapper #widgetHeader .widgetHeaderWrapper { - padding: 15px 15px; + padding: 15px; } .smarti #widgetContainer #widgetWrapper #widgetHeader h4 { - font-size: 20px; - color: #3D3D3D; - letter-spacing: 0; + margin-top: -10px; - /*margin-bottom: 30px;*/ + + letter-spacing: 0; + + color: #3d3d3d; + + font-size: 20px; } .smarti #widgetContainer #widgetWrapper #widgetHeader h4 img { position: relative; top: 5px; + height: 30px; margin-right: 4px; } .smarti #widgetContainer #widgetWrapper #widgetBody { position: relative; - background: #ffffff; - width: 100%; - padding: 10px 10px 10px 10px; + overflow-y: auto; flex: 1; + + width: 100%; + padding: 10px; + + background: #ffffff; } .smarti #widgetContainer #widgetWrapper #widgetFooter { position: relative; - background: #f4f4f4; - color: #747474; - opacity: 1; + width: 100%; - text-align: center; - border-top: 1px solid #CBCBCB; + transition: 0.2s; + + text-align: center; + + opacity: 1; + color: #747474; + + border-top: 1px solid #cbcbcb; + + background: #f4f4f4; } .smarti #widgetContainer #widgetWrapper #widgetFooter .help-request-actions { @@ -80,26 +104,38 @@ } .smarti #widgetContainer #widgetWrapper #widgetFooter button { + + position: relative; + + display: inline-block; + + width: calc(100% - 20px); + + margin: 10px; + + padding: 15px 30px; + -o-transition: 0.2s; -ms-transition: 0.2s; -moz-transition: 0.2s; -webkit-transition: 0.2s; transition: 0.2s; - position: relative; - color: #747474; + + text-align: center; + text-decoration: none; - padding: 15px 30px 15px 30px; - width: calc(100% - 20px); - font-size: 14px; - margin: 10px; + text-transform: uppercase; - background: #CBCBCB; + + color: #747474; border-radius: 3px; - display: inline-block; - text-align: center; + + background: #cbcbcb; + + font-size: 14px; } .smarti #widgetContainer #widgetWrapper #widgetFooter button:hover { - background: #d5195b; color: #ffffff; + background: #d5195b; } diff --git a/packages/assistify-ai/client/tabbar.js b/packages/assistify-ai/client/tabbar.js index c209179509df..96bf27f00a6e 100755 --- a/packages/assistify-ai/client/tabbar.js +++ b/packages/assistify-ai/client/tabbar.js @@ -6,6 +6,6 @@ RocketChat.TabBar.addButton({ i18nTitle: 'Knowledge_Base', icon: 'lightbulb', template: 'AssistifySmarti', - order: 0 + order: 0, }); diff --git a/packages/assistify-ai/client/views/app/tabbar/smarti.js b/packages/assistify-ai/client/views/app/tabbar/smarti.js index cb855269f9b7..16609cac11ae 100644 --- a/packages/assistify-ai/client/views/app/tabbar/smarti.js +++ b/packages/assistify-ai/client/views/app/tabbar/smarti.js @@ -31,9 +31,9 @@ Template.AssistifySmarti.onRendered(function() { const instance = this; /* in order to avoid duplicated scrollbars, have the outer one hidden */ - //const parentContainer = this.$(':parent').parent(); - //parentContainer.css('overflow-y', 'initial'); - //this.$('.smarti-widget').css('overflow-y', 'auto'); + // const parentContainer = this.$(':parent').parent(); + // parentContainer.css('overflow-y', 'initial'); + // this.$('.smarti-widget').css('overflow-y', 'auto'); function createSmarti() { if (window.SmartiWidget === undefined) { @@ -56,12 +56,12 @@ Template.AssistifySmarti.onRendered(function() { channel: instance.data.rid, postings: { type: WIDGET_POSTING_TYPE, - cssInputSelector: '.rc-message-box .js-input-message' + cssInputSelector: '.rc-message-box .js-input-message', }, - lang: localStorage.getItem('userLanguage').split('-')[0] + lang: localStorage.getItem('userLanguage').split('-')[0], }; - //propagate i18n - support formatted strings while doing that + // propagate i18n - support formatted strings while doing that const i18nSetting = RocketChat.settings.get('Assistify_AI_Smarti_Widget_i18n'); const i18n = i18nSetting.search('\n') > -1 ? JSON.parse(i18nSetting) : i18nSetting; if (i18n) { @@ -112,7 +112,7 @@ Template.AssistifySmarti.helpers({ } else if (instance.currentTryLoading.get() === instance.maxTriesLoading) { return TAPi18n.__('Widget_could_not_load'); } - } + }, }); Template.AssistifySmarti.events({ @@ -120,5 +120,5 @@ Template.AssistifySmarti.events({ if (instance.data.rid) { Meteor.call('resyncRoom', instance.data.rid); } - } + }, }); diff --git a/packages/assistify-ai/config.js b/packages/assistify-ai/config.js index aa4e9f85c411..ca817b3bcb59 100644 --- a/packages/assistify-ai/config.js +++ b/packages/assistify-ai/config.js @@ -8,29 +8,29 @@ Meteor.startup(() => { this.add('Assistify_AI_Enabled', false, { type: 'boolean', public: true, - i18nLabel: 'Enabled' + i18nLabel: 'Enabled', }); this.add('Assistify_AI_Source', '0', { type: 'select', values: [ - {key: '0', i18nLabel: 'Assistify_AI_Source_Smarti'}, - {key: '1', i18nLabel: 'Assistify_AI_Source_APIAI'} + { key: '0', i18nLabel: 'Assistify_AI_Source_Smarti' }, + { key: '1', i18nLabel: 'Assistify_AI_Source_APIAI' }, ], public: true, - i18nLabel: 'Assistify_AI_Source' + i18nLabel: 'Assistify_AI_Source', }); this.add('Assistify_AI_Reload', 'reloadSmarti', { type: 'action', - actionText: 'Reload_Settings' + actionText: 'Reload_Settings', }); this.add('Assistify_AI_Smarti_Base_URL', '', { type: 'string', public: true, i18nLabel: 'Assistify_AI_Smarti_Base_URL', - i18nDescription: 'Assistify_AI_Smarti_Base_URL_Description' + i18nDescription: 'Assistify_AI_Smarti_Base_URL_Description', }); let domain = RocketChat.settings.get('Site_Url'); @@ -46,47 +46,47 @@ Meteor.startup(() => { type: 'string', public: true, i18nLabel: 'Assistify_AI_Smarti_Domain', - i18nDescription: 'Assistify_AI_Smarti_Domain_Description' + i18nDescription: 'Assistify_AI_Smarti_Domain_Description', }); this.add('Assistify_AI_Smarti_Auth_Token', '', { type: 'string', public: true, i18nLabel: 'Assistify_AI_Smarti_Auth_Token', - i18nDescription: 'Assistify_AI_Smarti_Auth_Token_Description' + i18nDescription: 'Assistify_AI_Smarti_Auth_Token_Description', }); this.add('Assistify_AI_Widget_Posting_Type', '', { type: 'select', values: [ - {key: 'suggestText', i18nLabel: 'Assistify_AI_Widget_Posting_Type_SuggestText'}, - {key: 'postText', i18nLabel: 'Assistify_AI_Widget_Posting_Type_PostText'}, - {key: 'postRichText', i18nLabel: 'Assistify_AI_Widget_Posting_Type_PostRichText'} + { key: 'suggestText', i18nLabel: 'Assistify_AI_Widget_Posting_Type_SuggestText' }, + { key: 'postText', i18nLabel: 'Assistify_AI_Widget_Posting_Type_PostText' }, + { key: 'postRichText', i18nLabel: 'Assistify_AI_Widget_Posting_Type_PostRichText' }, ], public: true, i18nLabel: 'Assistify_AI_Widget_Posting_Type', - i18nDescription: 'Assistify_AI_Widget_Posting_Type_Description' + i18nDescription: 'Assistify_AI_Widget_Posting_Type_Description', }); this.add('Assistify_AI_RocketChat_Webhook_Token', '', { type: 'string', public: true, i18nLabel: 'Assistify_AI_RocketChat_Webhook_Token', - i18nDescription: 'Assistify_AI_RocketChat_Webhook_Token_Description' + i18nDescription: 'Assistify_AI_RocketChat_Webhook_Token_Description', }); this.add('Assistify_AI_RocketChat_Callback_URL', '', { type: 'string', public: true, i18nLabel: 'Assistify_AI_RocketChat_Callback_URL', - i18nDescription: 'Assistify_AI_RocketChat_Callback_URL_Description' + i18nDescription: 'Assistify_AI_RocketChat_Callback_URL_Description', }); this.add('Assistify_AI_Resync', 'triggerResync', { type: 'action', i18nDescription: 'Assistify_AI_Resync_Description', actionText: 'Assistify_AI_Resync_Text', - sorter: 99 + sorter: 99, }); this.add('Assistify_AI_Resync_Full', 'triggerFullResync', { @@ -94,25 +94,25 @@ Meteor.startup(() => { i18nLabel: 'Assistify_AI_Resync_Full', i18nDescription: 'Assistify_AI_Resync_Full_Description', actionText: 'Assistify_AI_Resync_Full_Text', - sorter: 100 + sorter: 100, }); this.add('Assistify_AI_Resync_Batchsize', 10, { type: 'int', public: true, - i18nLabel: 'Assistify_AI_Resync_Batchsize' + i18nLabel: 'Assistify_AI_Resync_Batchsize', }); this.add('Assistify_AI_Resync_Batch_Timeout', 1000, { type: 'int', public: true, - i18nLabel: 'Assistify_AI_Resync_Batch_Timeout' + i18nLabel: 'Assistify_AI_Resync_Batch_Timeout', }); this.add('Assistify_AI_Resync_Message_Limit', 1000, { type: 'int', public: true, - i18nLabel: 'Assistify_AI_Resync_Message_Limit' + i18nLabel: 'Assistify_AI_Resync_Message_Limit', }); this.add('Assistify_AI_Smarti_Widget_i18n', '', { @@ -120,7 +120,7 @@ Meteor.startup(() => { public: true, i18nLabel: 'Assistify_AI_Smarti_Widget_i18n', i18nDescription: 'Assistify_AI_Smarti_Widget_i18n_Description', - sorter: 200 + sorter: 200, }); }); }; @@ -139,8 +139,8 @@ const setChatpalUrl = (smartiUrl) => { $set: { 'value.baseurl': smartiUrl, - 'value.backendtype': 'onsite' - } + 'value.backendtype': 'onsite', + }, }); }; @@ -152,6 +152,6 @@ RocketChat.settings.get('Assistify_AI_Smarti_Base_URL', (id, smartiUrl) => { }); RocketChat.settings.get('Assistify_AI_Smarti_Auth_Token', (id, smartiAuthToken) => { - RocketChat.models.Settings.update('CHATPAL_CONFIG', {$set: {'value.headerstring': `X-Auth-Token: ${ smartiAuthToken }`}}); + RocketChat.models.Settings.update('CHATPAL_CONFIG', { $set: { 'value.headerstring': `X-Auth-Token: ${ smartiAuthToken }` } }); }); diff --git a/packages/assistify-ai/models/AssistifySmarti.js b/packages/assistify-ai/models/AssistifySmarti.js index 9904eb9180fc..5bdcd9e1b0f5 100644 --- a/packages/assistify-ai/models/AssistifySmarti.js +++ b/packages/assistify-ai/models/AssistifySmarti.js @@ -20,7 +20,7 @@ class AssistifySmarti extends RocketChat.models._Base { } findOneByConversationId(convId, options) { - const query = { 'conversationId': convId }; + const query = { conversationId: convId }; return this.findOne(query, options); } diff --git a/packages/assistify-ai/package.js b/packages/assistify-ai/package.js index bffc007b3839..5b4c8e745094 100755 --- a/packages/assistify-ai/package.js +++ b/packages/assistify-ai/package.js @@ -3,7 +3,7 @@ Package.describe({ version: '0.2.0', summary: 'Integration of artificial knowledge', git: 'http://github.com/assistify/Rocket.Chat', - documentation: 'README.md' + documentation: 'README.md', }); function addDirectory(api, pathInPackage, environment) { @@ -19,10 +19,10 @@ function addDirectory(api, pathInPackage, environment) { Package.onUse(function(api) { api.use(['ecmascript', 'underscore']); api.use('templating', 'client'); - api.use('rocketchat:lib'); //in order to make general settings load earlier - api.use('rocketchat:ui-master'); //for the loading animation - api.use('chatpal:search'); //for the loading animation - api.use('meteorhacks:inject-initial'); //for provisioning of svg-icons + api.use('rocketchat:lib'); // in order to make general settings load earlier + api.use('rocketchat:ui-master'); // for the loading animation + api.use('chatpal:search'); // for the loading animation + api.use('meteorhacks:inject-initial'); // for provisioning of svg-icons // Libraries api.addFiles('server/inject.js', 'server'); @@ -30,7 +30,7 @@ Package.onUse(function(api) { // common components for client and server api.addFiles('models/AssistifySmarti.js', ['client', 'server']); - //Server business logic + // Server business logic addDirectory(api, 'server/lib', 'server'); addDirectory(api, 'server/hooks', 'server'); addDirectory(api, 'server/methods', 'server'); @@ -39,30 +39,30 @@ Package.onUse(function(api) { api.addFiles('server/SmartiProxy.js', 'server'); api.addFiles('server/SmartiRouter.js', 'server'); - //Configuration + // Configuration api.addFiles('config.js', 'server'); - //migration scripts + // migration scripts api.addFiles('server/migrations.js', 'server'); - //Client business logic + // Client business logic api.addFiles('client/tabbar.js', 'client'); api.addFiles('client/hooks/openAiTab.js', 'client'); - //client views + // client views addDirectory(api, 'client/views/app/tabbar', 'client'); api.addFiles('client/smartiLoader.js', 'client'); - //styling + // styling api.addFiles('client/public/stylesheets/smarti.css', 'client'); - //Assets + // Assets api.addAssets('client/public/assistify.png', 'client'); // UI artifacts which are pre-processed or packaged by the server api.addAssets('client/public/icons.svg', 'server'); - //i18n in Rocket.Chat-package (packages/rocketchat-i18n/i18n + // i18n in Rocket.Chat-package (packages/rocketchat-i18n/i18n api.mainModule('assistify-ai.js', 'server'); diff --git a/packages/assistify-ai/server/SmartiProxy.js b/packages/assistify-ai/server/SmartiProxy.js index cc2106c0f048..2384a95e6920 100644 --- a/packages/assistify-ai/server/SmartiProxy.js +++ b/packages/assistify-ai/server/SmartiProxy.js @@ -5,7 +5,7 @@ export const verbs = { get: 'GET', post: 'POST', put: 'PUT', - delete: 'DELETE' + delete: 'DELETE', }; /** @@ -38,17 +38,19 @@ export class SmartiProxy { const url = `${ SmartiProxy.smartiUrl }${ path }`; const header = { 'X-Auth-Token': SmartiProxy.smartiAuthToken, - 'Content-Type': 'application/json; charset=utf-8' + 'Content-Type': 'application/json; charset=utf-8', }; try { SystemLogger.debug('Sending request to Smarti', method, 'to', url, 'body', JSON.stringify(body)); + const response = HTTP.call(method, url, { params: parameters, data: body, - headers: header + headers: header, }); + if (response.statusCode < 400) { - return response.data || response.content; //.data if it's a json-response + return response.data || response.content; // .data if it's a json-response } else { SystemLogger.debug('Got unexpected result from Smarti', method, 'to', url, 'response', JSON.stringify(response)); } @@ -63,7 +65,7 @@ export class SmartiProxy { SystemLogger.error('Could not complete', method, 'to', url, error.response); SystemLogger.debug(error); - return {error}; + return { error }; } } } diff --git a/packages/assistify-ai/server/SmartiRouter.js b/packages/assistify-ai/server/SmartiRouter.js index 285aec09984b..3e387efd7803 100644 --- a/packages/assistify-ai/server/SmartiRouter.js +++ b/packages/assistify-ai/server/SmartiRouter.js @@ -1,6 +1,6 @@ /* globals SystemLogger, RocketChat */ -import {SmartiAdapter} from './lib/SmartiAdapter'; +import { SmartiAdapter } from './lib/SmartiAdapter'; /** * The SmartiRouter handles all incoming HTTP requests from Smarti. @@ -12,13 +12,13 @@ import {SmartiAdapter} from './lib/SmartiAdapter'; * Add an incoming webhook '/newConversationResult' to receive answers from Smarti. * This allows asynchronous callback from Smarti, when analyzing the conversation has finished. */ -RocketChat.API.v1.addRoute('smarti.result/:_token', {authRequired: false}, { +RocketChat.API.v1.addRoute('smarti.result/:_token', { authRequired: false }, { post() { SystemLogger.debug('Smarti - Incoming HTTP requests', JSON.stringify(this.bodyParams, null, 2)); check(this.bodyParams.data, Match.ObjectIncluding({ - conversation: String + conversation: String, })); const rcWebhookToken = RocketChat.settings.get('Assistify_AI_RocketChat_Webhook_Token'); @@ -28,7 +28,7 @@ RocketChat.API.v1.addRoute('smarti.result/:_token', {authRequired: false}, { SmartiAdapter.analysisCompleted(null, this.bodyParams.data.conversation, this.bodyParams.data); return RocketChat.API.v1.success(); } else { - return RocketChat.API.v1.unauthorized({msg: 'token not valid'}); + return RocketChat.API.v1.unauthorized({ msg: 'token not valid' }); } - } + }, }); diff --git a/packages/assistify-ai/server/hooks/closeLivechatKnowledgeAdapter.js b/packages/assistify-ai/server/hooks/closeLivechatKnowledgeAdapter.js index 73c0a310cc84..b1b10d87e165 100755 --- a/packages/assistify-ai/server/hooks/closeLivechatKnowledgeAdapter.js +++ b/packages/assistify-ai/server/hooks/closeLivechatKnowledgeAdapter.js @@ -1,10 +1,10 @@ -import {RocketChat} from 'meteor/rocketchat:lib'; -import {SystemLogger} from 'meteor/rocketchat:logger'; +import { RocketChat } from 'meteor/rocketchat:lib'; +import { SystemLogger } from 'meteor/rocketchat:logger'; /** * Notifies the knowledgeProvider about the end of a livechat conversation */ -import {getKnowledgeAdapter} from 'meteor/assistify:ai'; +import { getKnowledgeAdapter } from 'meteor/assistify:ai'; const _callbackOnClose = function(room) { try { const knowledgeAdapter = getKnowledgeAdapter(); diff --git a/packages/assistify-ai/server/hooks/sendMessageToKnowledgeAdapter.js b/packages/assistify-ai/server/hooks/sendMessageToKnowledgeAdapter.js index d9efa31ad5f5..e80a0ed03fcb 100755 --- a/packages/assistify-ai/server/hooks/sendMessageToKnowledgeAdapter.js +++ b/packages/assistify-ai/server/hooks/sendMessageToKnowledgeAdapter.js @@ -1,6 +1,6 @@ -import {RocketChat} from 'meteor/rocketchat:lib'; -import {SystemLogger} from 'meteor/rocketchat:logger'; -import {getKnowledgeAdapter} from '../lib/KnowledgeAdapterProvider'; +import { RocketChat } from 'meteor/rocketchat:lib'; +import { SystemLogger } from 'meteor/rocketchat:logger'; +import { getKnowledgeAdapter } from '../lib/KnowledgeAdapterProvider'; // unregister callbacks for livechat and the hard-coded api.ai RocketChat.callbacks.remove('afterSaveMessage', 'externalWebHook'); @@ -8,8 +8,8 @@ RocketChat.callbacks.remove('afterSaveMessage', 'externalWebHook'); function isMessageRelevant(message, room) { const user = RocketChat.models.Users.findOneById(message.u._id); - if (user && user.roles['bot']) { - return; //do not trigger a new evaluation if the message was sent from a bot (particularly by assistify itself) + if (user && user.roles.bot) { + return; // do not trigger a new evaluation if the message was sent from a bot (particularly by assistify itself) } const knowledgeEnabled = RocketChat.settings.get('Assistify_AI_Enabled'); @@ -32,7 +32,7 @@ RocketChat.callbacks.add('afterSaveMessage', function(message, room) { Meteor.defer(() => { const helpRequest = RocketChat.models.Rooms.findOne(room.helpRequestId); const context = {}; - if (helpRequest) { //there might be rooms without help request objects if they have been created inside the chat-application + if (helpRequest) { // there might be rooms without help request objects if they have been created inside the chat-application context.contextType = 'ApplicationHelp'; context.environmentType = helpRequest.supportArea; context.environment = helpRequest.environment; diff --git a/packages/assistify-ai/server/lib/AiApiAdapter.js b/packages/assistify-ai/server/lib/AiApiAdapter.js index 6b891f8c4f84..762baa5d08bf 100644 --- a/packages/assistify-ai/server/lib/AiApiAdapter.js +++ b/packages/assistify-ai/server/lib/AiApiAdapter.js @@ -5,7 +5,7 @@ export class ApiAiAdapter { this.properties = adapterProps; this.headers = { 'Content-Type': 'application/json; charset=utf-8', - 'Authorization': `Bearer ${ this.properties.token }` + Authorization: `Bearer ${ this.properties.token }`, }; } @@ -13,21 +13,21 @@ export class ApiAiAdapter { const responseAPIAI = HTTP.post(this.properties.url, { data: { query: message.msg, - lang: this.properties.language + lang: this.properties.language, }, - headers: this.headers + headers: this.headers, }); if (responseAPIAI.data && responseAPIAI.data.status.code === 200 && !_.isEmpty(responseAPIAI.data.result.fulfillment.speech)) { RocketChat.models.LivechatExternalMessage.insert({ rid: message.rid, msg: responseAPIAI.data.result.fulfillment.speech, orig: message._id, - ts: new Date() + ts: new Date(), }); } } onClose() { - //do nothing, api.ai does not learn from us. + // do nothing, api.ai does not learn from us. } } diff --git a/packages/assistify-ai/server/lib/KnowledgeAdapterProvider.js b/packages/assistify-ai/server/lib/KnowledgeAdapterProvider.js index 9f1a23b5236d..963f2369ed96 100644 --- a/packages/assistify-ai/server/lib/KnowledgeAdapterProvider.js +++ b/packages/assistify-ai/server/lib/KnowledgeAdapterProvider.js @@ -1,7 +1,7 @@ /* globals RocketChat */ -import {SmartiAdapter} from './SmartiAdapter'; -import {ApiAiAdapter} from './AiApiAdapter'; +import { SmartiAdapter } from './SmartiAdapter'; +import { ApiAiAdapter } from './AiApiAdapter'; export function getKnowledgeAdapter() { let knowledgeSource = ''; @@ -16,7 +16,7 @@ export function getKnowledgeAdapter() { const adapterProps = { url: '', token: '', - language: '' + language: '', }; switch (knowledgeSource) { diff --git a/packages/assistify-ai/server/lib/SmartiAdapter.js b/packages/assistify-ai/server/lib/SmartiAdapter.js index 77066bda79d1..2f3e34ecb3c9 100644 --- a/packages/assistify-ai/server/lib/SmartiAdapter.js +++ b/packages/assistify-ai/server/lib/SmartiAdapter.js @@ -72,15 +72,15 @@ export class SmartiAdapter { } const requestBodyMessage = { - 'id': message._id, - 'time': message.ts, - 'origin': 'User', //user.type, - 'content': message.msg, - 'user': { - 'id': message.u._id + id: message._id, + time: message.ts, + origin: 'User', // user.type, + content: message.msg, + user: { + id: message.u._id, }, - 'metadata': {} - //,"private" : false + metadata: {}, + // ,"private" : false }; if (message.origin === 'smartiWidget') { @@ -108,7 +108,7 @@ export class SmartiAdapter { if (request_result) { Meteor.defer(() => SmartiAdapter._markMessageAsSynced(message._id)); SmartiAdapter._getAnalysisResult(message.rid, conversationId); - //autosync: If a room was not in sync, but the new message could be synced, try to sync the room again + // autosync: If a room was not in sync, but the new message could be synced, try to sync the room again Meteor.defer(() => SmartiAdapter._tryResync(message.rid, false)); } else { // if the message could not be synced this time, re-synch the complete room next time @@ -268,8 +268,8 @@ export class SmartiAdapter { $or: [ { t: 'c' }, { t: 'p' }, - { t: 'l' } - ] + { t: 'l' }, + ], }; const query = { $and: [roomTypesQuery, syncModeQuery] }; @@ -279,7 +279,7 @@ export class SmartiAdapter { closedAt: 1, outOfSync: 1, u: 1, - v: 1 + v: 1, }; const options = { fields: roomProperties, sort: { _id: 1 } }; @@ -333,7 +333,7 @@ export class SmartiAdapter { syncTimer = Meteor.setInterval(syncBatch, batchTimeout); return { - message: 'sync-triggered-successfully' + message: 'sync-triggered-successfully', }; } @@ -416,23 +416,23 @@ export class SmartiAdapter { let userId = ''; // we need a small decision tree for the owner of a room. There even are channels without owner (GENERAL)! - if (room.u) { //normal rooms + if (room.u) { // normal rooms userId = room.u._id; } else if (room.v) { // livechat rooms userId = room.v._id; } const conversationBody = { - 'meta': { - 'support_area': [supportArea], - 'channel_id': [room._id] + meta: { + support_area: [supportArea], + channel_id: [room._id], }, - 'user': { - 'id': userId + user: { + id: userId, + }, + messages: [], + context: { + contextType: 'rocket.chat', }, - 'messages': [], - 'context': { - 'contextType': 'rocket.chat' - } }; if (room.closedAt) { conversationBody.meta.status = 'Complete'; @@ -443,13 +443,13 @@ export class SmartiAdapter { conversationBody.messages = []; for (let i = 0; i < messages.length; i++) { const newMessage = { - 'id': messages[i]._id, - 'time': messages[i].ts, - 'origin': 'User', - 'content': messages[i].msg, - 'user': { - 'id': messages[i].u._id - } + id: messages[i]._id, + time: messages[i].ts, + origin: 'User', + content: messages[i].msg, + user: { + id: messages[i].u._id, + }, }; conversationBody.messages.push(newMessage); } @@ -500,8 +500,8 @@ export class SmartiAdapter { { _id: messageId }, { $set: { - lastSync: lastUpdate - } + lastSync: lastUpdate, + }, }); SystemLogger.debug('Message Id: ', messageId, ' has been synced'); } else { @@ -515,8 +515,8 @@ export class SmartiAdapter { { _id: rid }, { $set: { - outOfSync: false - } + outOfSync: false, + }, }); SystemLogger.debug('Room Id: ', rid, ' is in sync now'); } @@ -527,8 +527,8 @@ export class SmartiAdapter { { _id: rid }, { $set: { - outOfSync: true - } + outOfSync: true, + }, }); SystemLogger.debug('Room Id: ', rid, ' is out of sync'); } @@ -542,13 +542,13 @@ export class SmartiAdapter { RocketChat.models.AssistifySmarti.update( { - _id: roomId + _id: roomId, }, { rid: roomId, knowledgeProvider: 'smarti', - conversationId + conversationId, }, { - upsert: true + upsert: true, } ); } diff --git a/packages/assistify-ai/server/methods/SmartiReload.js b/packages/assistify-ai/server/methods/SmartiReload.js index bf0a2dc19451..e30e0132ecbb 100644 --- a/packages/assistify-ai/server/methods/SmartiReload.js +++ b/packages/assistify-ai/server/methods/SmartiReload.js @@ -1,10 +1,10 @@ /* globals RocketChat */ -import {SmartiAdapter} from '../lib/SmartiAdapter'; +import { SmartiAdapter } from '../lib/SmartiAdapter'; Meteor.methods({ - resyncRoom(rid, ignoreSyncFlag=true) { + resyncRoom(rid, ignoreSyncFlag = true) { if (!RocketChat.authz.hasRole(Meteor.userId(), 'admin')) { throw new Meteor.Error(`SmartiResynch - triggerResync not permitted for user [ ${ Meteor.userId() } ]`); } @@ -23,7 +23,7 @@ Meteor.methods({ throw new Meteor.Error(`SmartiResynch - triggerResync not permitted for user [ ${ Meteor.userId() } ]`); } return SmartiAdapter.resync(true); - } + }, }); /** @@ -31,8 +31,8 @@ Meteor.methods({ */ RocketChat.RateLimiter.limitMethod('triggerResync', 1, 2000, { - userId() { return true; } + userId() { return true; }, }); RocketChat.RateLimiter.limitMethod('triggerFullResync', 1, 2000, { - userId() { return true; } + userId() { return true; }, }); diff --git a/packages/assistify-ai/server/methods/SmartiWidgetBackend.js b/packages/assistify-ai/server/methods/SmartiWidgetBackend.js index c8d7331bb885..f7eb761e21c2 100644 --- a/packages/assistify-ai/server/methods/SmartiWidgetBackend.js +++ b/packages/assistify-ai/server/methods/SmartiWidgetBackend.js @@ -1,7 +1,7 @@ -import {RocketChat} from 'meteor/rocketchat:lib'; -import {SystemLogger} from 'meteor/rocketchat:logger'; -import {SmartiProxy, verbs} from '../SmartiProxy'; -import {SmartiAdapter} from '../lib/SmartiAdapter'; +import { RocketChat } from 'meteor/rocketchat:lib'; +import { SystemLogger } from 'meteor/rocketchat:logger'; +import { SmartiProxy, verbs } from '../SmartiProxy'; +import { SmartiAdapter } from '../lib/SmartiAdapter'; /** @namespace RocketChat.RateLimiter.limitFunction */ @@ -23,7 +23,7 @@ Meteor.methods({ SmartiAdapter.getConversationId, 5, 1000, { userId(userId) { return !RocketChat.authz.hasPermission(userId, 'send-many-messages'); - } + }, } )(channelId); }, @@ -40,7 +40,7 @@ Meteor.methods({ SmartiProxy.propagateToSmarti, 5, 1000, { userId(userId) { return !RocketChat.authz.hasPermission(userId, 'send-many-messages'); - } + }, } )(verbs.get, `conversation/${ conversationId }/analysis`, null, null, (error) => { // 404 is expected if no mapping exists @@ -66,7 +66,7 @@ Meteor.methods({ SmartiProxy.propagateToSmarti, 5, 1000, { userId(userId) { return !RocketChat.authz.hasPermission(userId, 'send-many-messages'); - } + }, } )(verbs.get, `conversation/${ conversationId }/analysis/template/${ templateIndex }/result/${ creator }`, { start, rows }); }, @@ -79,32 +79,32 @@ Meteor.methods({ const solrFilterBooleanLimit = 256; // there is a limit for boolean expressinos in a filter query of default 1024 and an additional limiter by the HTTP-server. Experiments showed this limit as magic number. const findOptions = { limit: solrFilterBooleanLimit, sort: { ts: -1 }, fields: { _id: 1 } }; - const subscribedRooms = RocketChat.models.Subscriptions.find({'u._id': Meteor.userId()}, { limit: solrFilterBooleanLimit, sort: { ts: -1 }, fields: { rid: 1 } }).fetch().map(subscription => subscription.rid); - const publicChannels = RocketChat.authz.hasPermission(Meteor.userId(), 'view-c-room') ? RocketChat.models.Rooms.find({t: 'c'}, findOptions).fetch().map(room => room._id) : []; - const livechats = RocketChat.authz.hasPermission(Meteor.userId(), 'view-l-room') ? RocketChat.models.Rooms.find({t: 'l'}, findOptions).fetch().map(room => room._id) : []; + const subscribedRooms = RocketChat.models.Subscriptions.find({ 'u._id': Meteor.userId() }, { limit: solrFilterBooleanLimit, sort: { ts: -1 }, fields: { rid: 1 } }).fetch().map((subscription) => subscription.rid); + const publicChannels = RocketChat.authz.hasPermission(Meteor.userId(), 'view-c-room') ? RocketChat.models.Rooms.find({ t: 'c' }, findOptions).fetch().map((room) => room._id) : []; + const livechats = RocketChat.authz.hasPermission(Meteor.userId(), 'view-l-room') ? RocketChat.models.Rooms.find({ t: 'l' }, findOptions).fetch().map((room) => room._id) : []; const accessibleRooms = livechats.concat(subscribedRooms).concat(publicChannels); let fq = `${ accessibleRooms.filter(unique).slice(0, solrFilterBooleanLimit).join(' OR ') }`; - fq = fq ? { fq: `meta_channel_id:(${ fq })` } : { fq: 'meta_channel_id:""'}; //fallback: if the user's not authorized to view any room, filter for "nothing" + fq = fq ? { fq: `meta_channel_id:(${ fq })` } : { fq: 'meta_channel_id:""' }; // fallback: if the user's not authorized to view any room, filter for "nothing" const params = Object.assign(queryParams, fq); const searchResult = RocketChat.RateLimiter.limitFunction( SmartiProxy.propagateToSmarti, 5, 1000, { userId(userId) { return !RocketChat.authz.hasPermission(userId, 'send-many-messages'); - } + }, } )(verbs.get, 'conversation/search', params); SystemLogger.debug('SearchResult: ', JSON.stringify(searchResult, null, 2)); return searchResult; - } + }, }); -//////////////////////////////////////////// -//////// LOAD THE SMARTI JavaScript //////// -//////////////////////////////////////////// +// ////////////////////////////////////////// +// ////// LOAD THE SMARTI JavaScript //////// +// ////////////////////////////////////////// // TODO: Prevent writing JavaScript into a inline

Verified

'; if (err) { @@ -228,7 +226,7 @@ const samlUrlToObject = function(url) { const result = { actionName: splitPath[2], serviceName: splitPath[3], - credentialToken: splitPath[4] + credentialToken: splitPath[4], }; if (Accounts.saml.settings.debug) { console.log(result); @@ -250,8 +248,10 @@ const middleware = function(req, res, next) { throw new Error('Missing SAML action'); } - console.log(Accounts.saml.settings.providers); - console.log(samlObject.serviceName); + if (Accounts.saml.settings.debug) { + console.log(Accounts.saml.settings.providers); + console.log(samlObject.serviceName); + } const service = _.find(Accounts.saml.settings.providers, function(samlSetting) { return samlSetting.provider === samlObject.serviceName; }); @@ -268,7 +268,7 @@ const middleware = function(req, res, next) { res.writeHead(200); res.write(_saml.generateServiceProviderMetadata(service.callbackUrl)); res.end(); - //closePopup(res); + // closePopup(res); break; case 'logout': // This is where we receive SAML LogoutResponse @@ -280,25 +280,25 @@ const middleware = function(req, res, next) { console.log(`Logging Out user via inResponseTo ${ inResponseTo }`); } const loggedOutUser = Meteor.users.find({ - 'services.saml.inResponseTo': inResponseTo + 'services.saml.inResponseTo': inResponseTo, }).fetch(); if (loggedOutUser.length === 1) { if (Accounts.saml.settings.debug) { console.log(`Found user ${ loggedOutUser[0]._id }`); } Meteor.users.update({ - _id: loggedOutUser[0]._id + _id: loggedOutUser[0]._id, }, { $set: { - 'services.resume.loginTokens': [] - } + 'services.resume.loginTokens': [], + }, }); Meteor.users.update({ - _id: loggedOutUser[0]._id + _id: loggedOutUser[0]._id, }, { $unset: { - 'services.saml': '' - } + 'services.saml': '', + }, }); } else { throw new Meteor.Error('Found multiple users matching SAML inResponseTo fields'); @@ -311,7 +311,7 @@ const middleware = function(req, res, next) { res.writeHead(302, { - 'Location': req.query.RelayState + Location: req.query.RelayState, }); res.end(); } @@ -323,7 +323,7 @@ const middleware = function(req, res, next) { case 'sloRedirect': res.writeHead(302, { // credentialToken here is the SAML LogOut Request that we'll send back to IDP - 'Location': req.query.redirect + Location: req.query.redirect, }); res.end(); break; @@ -336,7 +336,7 @@ const middleware = function(req, res, next) { throw new Error('Unable to generate authorize url'); } res.writeHead(302, { - 'Location': url + Location: url, }); res.end(); }); @@ -344,14 +344,14 @@ const middleware = function(req, res, next) { case 'validate': _saml = new SAML(service); Accounts.saml.RelayState = req.body.RelayState; - _saml.validateResponse(req.body.SAMLResponse, req.body.RelayState, function(err, profile/*, loggedOut*/) { + _saml.validateResponse(req.body.SAMLResponse, req.body.RelayState, function(err, profile/* , loggedOut*/) { if (err) { throw new Error(`Unable to validate response url: ${ err }`); } const credentialToken = (profile.inResponseToId && profile.inResponseToId.value) || profile.inResponseToId || profile.InResponseTo || samlObject.credentialToken; const loginResult = { - profile + profile, }; if (!credentialToken) { // No credentialToken in IdP-initiated SSO @@ -360,7 +360,7 @@ const middleware = function(req, res, next) { const url = `${ Meteor.absoluteUrl('home') }?saml_idp_credentialToken=${ saml_idp_credentialToken }`; res.writeHead(302, { - 'Location': url + Location: url, }); res.end(); } else { diff --git a/packages/meteor-accounts-saml/saml_utils.js b/packages/meteor-accounts-saml/saml_utils.js index 0d9bffa01fcf..3fb1776a7a1c 100644 --- a/packages/meteor-accounts-saml/saml_utils.js +++ b/packages/meteor-accounts-saml/saml_utils.js @@ -15,9 +15,9 @@ SAML = function(options) { this.options = this.initialize(options); }; -function debugLog() { +function debugLog(...args) { if (Meteor.settings.debug) { - console.log.apply(this, arguments); + console.log.apply(this, args); } } @@ -140,7 +140,7 @@ SAML.prototype.generateLogoutRequest = function(options) { return { request, - id + id, }; }; @@ -177,7 +177,7 @@ SAML.prototype.requestToUrl = function(request, operation, callback) { const samlRequest = { SAMLRequest: base64, - RelayState: relayState + RelayState: relayState, }; if (self.options.privateCert) { @@ -253,7 +253,7 @@ SAML.prototype.validateStatus = function(doc) { return { success: successStatus, message: messageText, - statusCode: status + statusCode: status, }; }; @@ -266,12 +266,12 @@ SAML.prototype.validateSignature = function(xml, cert) { const sig = new xmlCrypto.SignedXml(); sig.keyInfoProvider = { - getKeyInfo(/*key*/) { + getKeyInfo(/* key*/) { return ''; }, - getKey(/*keyInfo*/) { + getKey(/* keyInfo*/) { return self.certToPEM(cert); - } + }, }; sig.loadSignature(signature); @@ -286,8 +286,8 @@ SAML.prototype.validateLogoutResponse = function(samlResponse, callback) { if (err) { debugLog(`Error while inflating. ${ err }`); } else { - console.log(`constructing new DOM parser: ${ Object.prototype.toString.call(decoded) }`); - console.log(`>>>> ${ decoded }`); + debugLog(`constructing new DOM parser: ${ Object.prototype.toString.call(decoded) }`); + debugLog(`>>>> ${ decoded }`); const doc = new xmldom.DOMParser().parseFromString(array2string(decoded), 'text/xml'); if (doc) { const response = doc.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:protocol', 'LogoutResponse')[0]; @@ -300,9 +300,9 @@ SAML.prototype.validateLogoutResponse = function(samlResponse, callback) { debugLog(`In Response to: ${ inResponseTo }`); } catch (e) { if (Meteor.settings.debug) { - console.log(`Caught error: ${ e }`); + debugLog(`Caught error: ${ e }`); const msg = doc.getElementsByTagNameNS('urn:oasis:names:tc:SAML:2.0:protocol', 'StatusMessage'); - console.log(`Unexpected msg from IDP. Does your session still exist at IDP? Idp returned: \n ${ msg }`); + debugLog(`Unexpected msg from IDP. Does your session still exist at IDP? Idp returned: \n ${ msg }`); } } @@ -336,7 +336,7 @@ SAML.prototype.mapAttributes = function(attributeStatement, profile) { value = values[0].textContent; } else { value = []; - for (let j=0;j { + string.forEach((key) => { obj = obj[key]; }); return obj; @@ -78,21 +78,19 @@ this.AutoComplete = class { this.selector = { constainer: '.-autocomplete-container', item: '.-autocomplete-item', - ...settings.selector + ...settings.selector, }; - const rules = this.rules; + const { rules } = this; - Object.keys(rules).forEach(key => { + Object.keys(rules).forEach((key) => { const rule = rules[key]; validateRule(rule); }); - this.expressions = (() => { - return Object.keys(rules).map(key => { - const rule = rules[key]; - return getRegExp(rule); - }); - })(); + this.expressions = (() => Object.keys(rules).map((key) => { + const rule = rules[key]; + return getRegExp(rule); + }))(); this.matched = -1; this.loaded = true; @@ -171,7 +169,7 @@ this.AutoComplete = class { setLoaded(val) { if (val === this.loaded) { - return; //Don't cause redraws unnecessarily + return; // Don't cause redraws unnecessarily } this.loaded = val; this.loadingDep.changed(); @@ -179,7 +177,7 @@ this.AutoComplete = class { onKeyUp() { if (!this.$element) { - return; //Don't try to do this while loading + return; // Don't try to do this while loading } const startpos = this.element.selectionStart; const val = this.getText().substring(0, startpos); @@ -223,23 +221,23 @@ this.AutoComplete = class { return; } switch (e.keyCode) { - case 9: //TAB - case 13: //ENTER - if (this.select()) { //Don't jump fields or submit if select successful + case 9: // TAB + case 13: // ENTER + if (this.select()) { // Don't jump fields or submit if select successful e.preventDefault(); e.stopPropagation(); } break; // preventDefault needed below to avoid moving cursor when selecting - case 40: //DOWN + case 40: // DOWN e.preventDefault(); this.next(); break; - case 38: //UP + case 38: // UP e.preventDefault(); this.prev(); break; - case 27: //ESCAPE + case 27: // ESCAPE this.$element.blur(); this.hideList(); } @@ -270,7 +268,7 @@ this.AutoComplete = class { filteredList() { // @ruleDep.depend() # optional as long as we use depend on filter, because list will always get re-rendered - const filter = this.getFilter(); //Reactively depend on the filter + const filter = this.getFilter(); // Reactively depend on the filter if (this.matched === -1) { return null; } @@ -317,7 +315,7 @@ this.AutoComplete = class { } const doc = Blaze.getData(node); if (!doc) { - return false; //Don't select if nothing matched + return false; // Don't select if nothing matched } this.processSelection(doc, this.rules[this.matched]); @@ -392,10 +390,10 @@ this.AutoComplete = class { if (rule && isWholeField(rule)) { pos.left = position.left; if (rule.doNotChangeWidth !== false) { - pos.width = this.$element.outerWidth(); //position.offsetWidth + pos.width = this.$element.outerWidth(); // position.offsetWidth } - } else { //Normal positioning, at token word + } else { // Normal positioning, at token word pos = { left: position.left + offset.left }; } @@ -427,22 +425,22 @@ this.AutoComplete = class { const next = currentItem.next(); if (next.length) { next.addClass('selected'); - } else { //End of list or lost selection; Go back to first item + } else { // End of list or lost selection; Go back to first item this.tmplInst.$(`${ this.selector.item }:first-child`).addClass('selected'); } } - //Select previous item in list + // Select previous item in list prev() { const currentItem = this.tmplInst.$(`${ this.selector.item }.selected`); if (!currentItem.length) { - return; //Don't try to iterate an empty list + return; // Don't try to iterate an empty list } currentItem.removeClass('selected'); const prev = currentItem.prev(); if (prev.length) { prev.addClass('selected'); - } else { //Beginning of list or lost selection; Go to end of list + } else { // Beginning of list or lost selection; Go to end of list this.tmplInst.$(`${ this.selector.item }:last-child`).addClass('selected'); } } diff --git a/packages/meteor-autocomplete/client/templates.js b/packages/meteor-autocomplete/client/templates.js index ffce35eb749e..4ed6be7fca72 100755 --- a/packages/meteor-autocomplete/client/templates.js +++ b/packages/meteor-autocomplete/client/templates.js @@ -14,7 +14,7 @@ const acEvents = { }, 'blur'(e, t) { t.ac.onBlur(e); - } + }, }; Template.inputAutocomplete.events(acEvents); @@ -22,7 +22,7 @@ Template.inputAutocomplete.events(acEvents); Template.textareaAutocomplete.events(acEvents); const attributes = function() { - return _.omit(this, 'settings'); //Render all but the settings parameter + return _.omit(this, 'settings'); // Render all but the settings parameter }; @@ -41,7 +41,7 @@ const autocompleteHelpers = { return Blaze.With(ac, function() { //eslint-disable-line return Template._autocompleteContainer; }); - }) + }), }; Template.inputAutocomplete.helpers(autocompleteHelpers); @@ -69,7 +69,7 @@ Template._autocompleteContainer.events({ }, 'mouseenter .-autocomplete-item'(e, t) { t.data.onItemHover(this, e); - } + }, }); Template._autocompleteContainer.helpers({ @@ -78,6 +78,6 @@ Template._autocompleteContainer.helpers({ }, noMatchTemplate() { return this.matchedRule().noMatchTemplate || Template._noMatch; - } + }, }); export { acEvents, attributes, autocompleteHelpers }; diff --git a/packages/meteor-autocomplete/package.js b/packages/meteor-autocomplete/package.js index bd8abb2a0d84..3143f3f22275 100755 --- a/packages/meteor-autocomplete/package.js +++ b/packages/meteor-autocomplete/package.js @@ -2,7 +2,7 @@ Package.describe({ name: 'mizzao:autocomplete', summary: 'Client/server autocompletion designed for Meteor\'s collections and reactivity', version: '0.5.1', - git: 'https://github.com/mizzao/meteor-autocomplete.git' + git: 'https://github.com/mizzao/meteor-autocomplete.git', }); Package.onUse(function(api) { @@ -17,11 +17,11 @@ Package.onUse(function(api) { 'client/autocomplete.css', 'client/inputs.html', 'client/autocomplete-client.js', - 'client/templates.js' + 'client/templates.js', ], 'client'); api.addFiles([ - 'server/autocomplete-server.js' + 'server/autocomplete-server.js', ], 'server'); api.export('Autocomplete', 'server'); diff --git a/packages/rocketchat-2fa/client/TOTPPassword.js b/packages/rocketchat-2fa/client/TOTPPassword.js index aacc881d5be9..d8bf6b114bb7 100644 --- a/packages/rocketchat-2fa/client/TOTPPassword.js +++ b/packages/rocketchat-2fa/client/TOTPPassword.js @@ -11,9 +11,9 @@ function reportError(error, callback) { Meteor.loginWithPasswordAndTOTP = function(selector, password, code, callback) { if (typeof selector === 'string') { if (selector.indexOf('@') === -1) { - selector = {username: selector}; + selector = { username: selector }; } else { - selector = {email: selector}; + selector = { email: selector }; } } @@ -22,10 +22,10 @@ Meteor.loginWithPasswordAndTOTP = function(selector, password, code, callback) { totp: { login: { user: selector, - password: Accounts._hashPassword(password) + password: Accounts._hashPassword(password), }, - code - } + code, + }, }], userCallback(error) { if (error) { @@ -33,11 +33,11 @@ Meteor.loginWithPasswordAndTOTP = function(selector, password, code, callback) { } else { callback && callback(); } - } + }, }); }; -const loginWithPassword = Meteor.loginWithPassword; +const { loginWithPassword } = Meteor; Meteor.loginWithPassword = function(email, password, cb) { loginWithPassword(email, password, (error) => { @@ -53,7 +53,7 @@ Meteor.loginWithPassword = function(email, password, cb) { showCancelButton: true, closeOnConfirm: true, confirmButtonText: t('Verify'), - cancelButtonText: t('Cancel') + cancelButtonText: t('Cancel'), }, (code) => { if (code === false) { return cb(); diff --git a/packages/rocketchat-2fa/client/accountSecurity.html b/packages/rocketchat-2fa/client/accountSecurity.html index 3496ee8a53ad..935a10b007c6 100644 --- a/packages/rocketchat-2fa/client/accountSecurity.html +++ b/packages/rocketchat-2fa/client/accountSecurity.html @@ -1,48 +1,48 @@