From d0f350bcbb191ff15676ce74fccbedce8ba18f73 Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Fri, 13 Sep 2019 10:48:37 -0300 Subject: [PATCH 1/5] CHeery-Pick of a0d8658 Update Meteor to 1.8.1 (#15358) * Meteor update to 1.8.1 meteor update meteor update --all-packages * Remove deprecated rocketchat:monitoring package * Fix calling WebAppInternals.staticFilesMiddleware new signature * Update Node version to 8.15 * Clear main files to cache some build files * Meteor npm install --- .circleci/config.yml | 97 ++++++++- .meteor/packages | 36 ++-- .meteor/release | 2 +- .meteor/versions | 49 ++--- .snapcraft/resources/preparenode | 2 +- app/assets/server/assets.js | 2 +- package-lock.json | 354 +++++++++++++++++++++++++------ 7 files changed, 419 insertions(+), 123 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c79d8e92fa1b7..83ff88631107d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -44,7 +44,7 @@ test-save-npm-cache: &test-save-npm-cache - ./node_modules test-docker-image: &test-docker-image - circleci/node:8.11-stretch-browsers + circleci/node:8.15-stretch-browsers test-with-oplog: &test-with-oplog <<: *defaults @@ -70,8 +70,8 @@ jobs: build: <<: *defaults docker: - - image: circleci/node:8.11-stretch - - image: mongo:3.2 + - image: circleci/node:8.15-stretch + - image: mongo:3.4 steps: - checkout @@ -135,13 +135,15 @@ jobs: keys: - meteor-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum ".meteor/versions" }} - - restore_cache: - keys: - - livechat-meteor-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum "packages/rocketchat-livechat/.app/.meteor/versions" }} - - - restore_cache: - keys: - - livechat-node-modules-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum "packages/rocketchat-livechat/.app/package.json" }} + # To reduce memory need during actual build, build the packages solely first + - run: + name: Build a Meteor cache + command: | + # to do this we can clear the main files and it build the rest + echo "" > server/main.js + echo "" > client/main.js + meteor build --server-only --debug --directory /tmp/build-temp + git checkout -- server/main.js client/main.js - run: name: Build Rocket.Chat @@ -236,7 +238,7 @@ jobs: deploy: <<: *defaults docker: - - image: circleci/node:8.11-stretch + - image: circleci/node:8.15-stretch steps: - attach_workspace: @@ -332,6 +334,79 @@ jobs: exit 0 fi; + pr-build: + <<: *defaults + docker: + - image: circleci/node:8.15-stretch + + steps: + - checkout + + - restore_cache: + keys: + - node-modules-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum "package.json" }} + + - restore_cache: + keys: + - meteor-{{ checksum ".circleci/config.yml" }}-{{ checksum ".meteor/release" }} + + - run: + name: Install Meteor + command: | + # Restore bin from cache + set +e + METEOR_SYMLINK_TARGET=$(readlink ~/.meteor/meteor) + METEOR_TOOL_DIRECTORY=$(dirname "$METEOR_SYMLINK_TARGET") + set -e + LAUNCHER=$HOME/.meteor/$METEOR_TOOL_DIRECTORY/scripts/admin/launch-meteor + if [ -e $LAUNCHER ] + then + echo "Cached Meteor bin found, restoring it" + sudo cp "$LAUNCHER" "/usr/local/bin/meteor" + else + echo "No cached Meteor bin found." + fi + + # only install meteor if bin isn't found + command -v meteor >/dev/null 2>&1 || curl https://install.meteor.com | sed s/--progress-bar/-sL/g | /bin/sh + + - run: + name: Versions + command: | + npm --versions + node -v + meteor --version + meteor npm --versions + meteor node -v + git version + + - run: + name: Meteor npm install + command: | + # rm -rf node_modules + # rm -f package-lock.json + meteor npm install + + - restore_cache: + keys: + - meteor-cache-{{ checksum ".circleci/config.yml" }}-{{ checksum ".meteor/versions" } + + - run: + name: Build Rocket.Chat + environment: + TOOL_NODE_FLAGS: --max_old_space_size=3072 + command: | + meteor build --server-only /tmp/build-pr + + + - persist_to_workspace: + root: /tmp/ + paths: + - build-pr + + - store_artifacts: + path: /tmp/build-pr + pr-image-build: <<: *defaults diff --git a/.meteor/packages b/.meteor/packages index 95b455acb1476..eefefd7c8084c 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -15,32 +15,31 @@ blaze-html-templates check@1.3.1 ddp-rate-limiter@1.0.7 ddp-common@1.4.0 -dynamic-import@0.5.0 +dynamic-import@0.5.1 ecmascript@0.12.4 ejson@1.1.0 email@1.2.3 fastclick@1.0.13 -http@1.4.1 +http@1.4.2 jquery@1.11.10 logging@1.1.20 meteor-base@1.4.0 mobile-experience@1.0.5 -mongo@1.6.0 +mongo@1.6.2 random@1.1.0 rate-limit@1.0.9 -reactive-dict@1.2.1 +reactive-dict@1.3.0 reactive-var@1.0.11 -reload@1.2.0 +reload@1.3.0 service-configuration@1.0.11 session@1.2.0 shell-server@0.4.0 spacebars -standard-minifier-js@2.4.0 +standard-minifier-js@2.4.1 tracker@1.2.0 #rocketchat:google-natural-language rocketchat:livechat -rocketchat:monitoring rocketchat:streamer rocketchat:version @@ -80,23 +79,22 @@ littledata:synced-cron edgee:slingshot jalik:ufs-local@0.2.5 -accounts-base -accounts-oauth -autoupdate -babel-compiler -google-oauth +accounts-base@1.4.3 +accounts-oauth@1.1.16 +autoupdate@1.6.0 +babel-compiler@7.3.4 +google-oauth@1.2.6 htmljs less matb33:collection-hooks meteorhacks:inject-initial -oauth -oauth2 +oauth@1.2.8 +oauth2@1.2.1 raix:eventemitter -routepolicy -sha -swydo:graphql +routepolicy@1.1.0 +sha@1.0.9 templating -webapp -webapp-hashing +webapp@1.7.3 +webapp-hashing@1.0.9 rocketchat:oauth2-server rocketchat:i18n diff --git a/.meteor/release b/.meteor/release index 91e05fc15b2fe..97064e19937b1 100644 --- a/.meteor/release +++ b/.meteor/release @@ -1 +1 @@ -METEOR@1.8.0.2 +METEOR@1.8.1 diff --git a/.meteor/versions b/.meteor/versions index babbbf8f8b29e..4363fad755cf6 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -1,17 +1,17 @@ -accounts-base@1.4.3 +accounts-base@1.4.4 accounts-facebook@1.3.2 accounts-github@1.4.2 -accounts-google@1.3.2 +accounts-google@1.3.3 accounts-meteor-developer@1.4.2 accounts-oauth@1.1.16 accounts-password@1.5.1 accounts-twitter@1.4.2 aldeed:simple-schema@1.5.4 allow-deny@1.1.0 -autoupdate@1.5.0 -babel-compiler@7.2.4 +autoupdate@1.6.0 +babel-compiler@7.3.4 babel-runtime@1.3.0 -base64@1.0.11 +base64@1.0.12 binary-heap@1.0.11 blaze@2.3.3 blaze-html-templates@1.1.2 @@ -28,13 +28,13 @@ ddp@1.4.0 ddp-client@2.3.3 ddp-common@1.4.0 ddp-rate-limiter@1.0.7 -ddp-server@2.2.0 +ddp-server@2.3.0 deepwell:bootstrap-datepicker2@1.3.0 deps@1.0.12 diff-sequence@1.1.1 dispatch:run-as-user@1.1.1 dynamic-import@0.5.1 -ecmascript@0.12.4 +ecmascript@0.12.7 ecmascript-runtime@0.7.0 ecmascript-runtime-client@0.8.0 ecmascript-runtime-server@0.7.1 @@ -42,10 +42,9 @@ edgee:slingshot@0.7.1 ejson@1.1.0 email@1.2.3 es5-shim@4.8.0 -facebook-oauth@1.5.0 +facebook-oauth@1.6.0 fastclick@1.0.13 -fetch@0.1.0 -francocatena:status@1.5.3 +fetch@0.1.1 geojson-utils@1.0.10 github-oauth@1.2.2 google-oauth@1.2.6 @@ -79,24 +78,23 @@ localstorage@1.2.0 logging@1.1.20 matb33:collection-hooks@0.8.4 mdg:validation-error@0.5.1 -meteor@1.9.2 +meteor@1.9.3 meteor-base@1.4.0 meteor-developer-oauth@1.2.1 meteorhacks:inject-initial@1.0.4 -meteorhacks:meteorx@1.4.1 meteorspark:util@0.2.0 -minifier-css@1.4.1 -minifier-js@2.4.0 +minifier-css@1.4.2 +minifier-js@2.4.1 minimongo@1.4.5 mizzao:autocomplete@0.5.1 mizzao:timesync@0.3.4 mobile-experience@1.0.5 mobile-status-bar@1.0.14 -modern-browsers@0.1.3 +modern-browsers@0.1.4 modules@0.13.0 modules-runtime@0.10.3 -mongo@1.6.0 -mongo-decimal@0.1.0 +mongo@1.6.3 +mongo-decimal@0.1.1 mongo-dev-server@1.1.0 mongo-id@1.0.7 mongo-livedata@1.0.12 @@ -105,13 +103,13 @@ mystor:device-detection@0.2.0 nimble:restivus@0.8.12 nooitaf:colors@1.1.2_1 npm-bcrypt@0.9.3 -npm-mongo@3.1.1 -oauth@1.2.7 +npm-mongo@3.1.2 +oauth@1.2.8 oauth1@1.2.2 oauth2@1.2.1 observe-sequence@1.0.16 ordered-dict@1.1.0 -ostrio:cookies@2.3.0 +ostrio:cookies@2.4.0 pauli:accounts-linkedin@5.0.0 pauli:linkedin-oauth@5.0.0 promise@0.11.2 @@ -121,14 +119,13 @@ raix:handlebar-helpers@0.2.5 raix:ui-dropped-event@0.0.7 random@1.1.0 rate-limit@1.0.9 -reactive-dict@1.2.1 +reactive-dict@1.3.0 reactive-var@1.0.11 -reload@1.2.0 +reload@1.3.0 retry@1.1.0 rocketchat:i18n@0.0.1 rocketchat:livechat@0.0.1 rocketchat:mongo-config@0.0.1 -rocketchat:monitoring@2.30.2_3 rocketchat:oauth2-server@2.1.0 rocketchat:push@3.3.1 rocketchat:streamer@1.0.2 @@ -143,9 +140,7 @@ socket-stream-client@0.2.2 spacebars@1.0.15 spacebars-compiler@1.1.3 srp@1.0.12 -standard-minifier-js@2.4.0 -swydo:graphql@0.4.0 -tap:i18n@1.8.2 +standard-minifier-js@2.4.1 templating@1.3.2 templating-compiler@1.3.3 templating-runtime@1.3.2 @@ -157,5 +152,5 @@ twitter-oauth@1.2.0 ui@1.0.13 underscore@1.0.10 url@1.2.0 -webapp@1.7.2 +webapp@1.7.4 webapp-hashing@1.0.9 diff --git a/.snapcraft/resources/preparenode b/.snapcraft/resources/preparenode index f6e0c58d3cc54..a9f4807fed1fd 100755 --- a/.snapcraft/resources/preparenode +++ b/.snapcraft/resources/preparenode @@ -1,6 +1,6 @@ #!/bin/bash -node_version="v8.11.3" +node_version="v8.15.1" unamem="$(uname -m)" if [[ $unamem == *aarch64* ]]; then diff --git a/app/assets/server/assets.js b/app/assets/server/assets.js index 7dcf409e6e478..bc76743ea1c6b 100644 --- a/app/assets/server/assets.js +++ b/app/assets/server/assets.js @@ -495,7 +495,7 @@ WebApp.connectHandlers.use('/assets/', Meteor.bindEnvironment(function(req, res, if (defaultUrl) { const assetUrl = format && ['png', 'svg'].includes(format) ? defaultUrl.replace(/(svg|png)$/, format) : defaultUrl; req.url = `/${ assetUrl }`; - WebAppInternals.staticFilesMiddleware(WebAppInternals.staticFiles, req, res, next); + WebAppInternals.staticFilesMiddleware(WebAppInternals.staticFilesByArch, req, res, next); } else { res.writeHead(404); res.end(); diff --git a/package-lock.json b/package-lock.json index 92a8453773b18..fde2ecc7c9c4b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "Rocket.Chat", - "version": "1.3.2", + "name": "Assistify.Chat", + "version": "1.3.2-0.9.14", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -696,6 +696,123 @@ "eslint-plugin-import": "^2.17.2" } }, + "@rocket.chat/fuselage": { + "version": "0.2.0-alpha.2", + "resolved": "https://registry.npmjs.org/@rocket.chat/fuselage/-/fuselage-0.2.0-alpha.2.tgz", + "integrity": "sha512-fAGRMPGvluQAxwUCWmgn28anFT0NPsKEzM1yYOdo1xPbYbs48QKg6f9aUgNEAAqpviw58AKq8d/re8KPjzEYLw==", + "requires": { + "@rocket.chat/icons": "^0.2.0-alpha.0" + } + }, + "@rocket.chat/icons": { + "version": "0.2.0-alpha.0", + "resolved": "https://registry.npmjs.org/@rocket.chat/icons/-/icons-0.2.0-alpha.0.tgz", + "integrity": "sha512-7bzc7frrOfSypD/QvJ+eBfiD5XZSpxzN8taaOB2g0AHDUYcS/yIDpZLRH0Eq0fVe4A4gXsg0MRgcU0cJzuXQ+g==" + }, + "@rocket.chat/livechat": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@rocket.chat/livechat/-/livechat-1.1.6.tgz", + "integrity": "sha512-KUq18sGCQEZhxygwxIb89uQZ3bcYVcAaeyUJRCQG7zKdEbdYK1wvMoP+/RLBHF5lw1OnFu2GfDHRxf4W+4Hf4A==", + "dev": true, + "requires": { + "@kossnocorp/desvg": "^0.2.0", + "@rocket.chat/sdk": "^1.0.0-alpha.29", + "date-fns": "^1.29.0", + "desvg": "^1.0.2", + "fast-async": "^6.3.8", + "history": "^4.7.2", + "i18n": "^0.8.3", + "i18nline": "^2.0.1", + "markdown-it": "^8.4.2", + "mem": "^4.2.0", + "msgpack": "^1.0.2", + "preact": "^8.2.6", + "preact-context": "^1.1.1", + "preact-i18nline": "^2.0.0", + "preact-router": "^2.5.7", + "query-string": "6.3.0", + "tiny-events": "^1.0.1", + "wolfy87-eventemitter": "^5.2.5" + }, + "dependencies": { + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "query-string": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.3.0.tgz", + "integrity": "sha512-jkpCkoHiAA2BYZvni5GieU3x860QDfkh2+M6bPnrYUywqOWbGwPq5VzntTS06ixX4GVHEiq2ZhlmGy/e9LQ3zA==", + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "strict-uri-encode": "^2.0.0" + } + }, + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", + "dev": true + } + } + }, + "@rocket.chat/sdk": { + "version": "1.0.0-alpha.30", + "resolved": "https://registry.npmjs.org/@rocket.chat/sdk/-/sdk-1.0.0-alpha.30.tgz", + "integrity": "sha512-beKIoCw0XLjN8dcusqwBiS1hCVKE+y1IzpRYHUtNciS5LhOPujLUwrzF+pys2xkia5TohbRlsbNYlXPehvSHLQ==", + "dev": true, + "requires": { + "@types/event-emitter": "^0.3.2", + "@types/eventemitter3": "^2.0.2", + "@types/lru-cache": "^4.1.0", + "@types/node": "^9.4.6", + "axios": "^0.18.0", + "create-hash": "^1.2.0", + "crypto-browserify": "^3.12.0", + "eventemitter3": "^3.1.0", + "js-sha256": "^0.9.0", + "lru-cache": "^4.1.1", + "mem": "^4.0.0", + "mqtt": "^2.18.8", + "msgpack": "^1.0.2", + "msgpack-lite": "^0.1.26", + "node-fetch": "^2.2.1", + "node-fetch-polyfill": "^2.0.6", + "paho-mqtt": "github:eclipse/paho.mqtt.javascript#master", + "protobufjs": "^6.8.8", + "sha256": "^0.2.0", + "tiny-events": "^1.0.1", + "universal-websocket-client": "^1.0.2", + "web-mqtt-client": "^1.3.1", + "ws": "^5.2.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, "@slack/client": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/@slack/client/-/client-4.8.0.tgz", @@ -3867,8 +3984,8 @@ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, "camelcase": { @@ -4206,13 +4323,13 @@ "chokidar": "1.6.1", "chromedriver": "2.44.1", "colors": "1.1.2", - "commander": "2.17.1", - "cucumber": "github:xolvio/cucumber-js#cf953cb5b5de30dbcc279f59e4ebff3aa040071c", - "deep-extend": "0.4.2", - "exit": "0.1.2", - "fibers": "1.0.15", - "freeport": "1.0.5", - "fs-extra": "1.0.0", + "commander": "^2.9.0", + "cucumber": "github:xolvio/cucumber-js#v1.3.0-chimp.6", + "deep-extend": "^0.4.1", + "exit": "^0.1.2", + "fibers": "^1.0.14", + "freeport": "~1.0.5", + "fs-extra": "^1.0.0", "glob": "github:lucetius/node-glob#51c7ca6e69bfbd17db5f1ea710e3f2a7a457d9ce", "hapi": "8.8.0", "jasmine": "2.99.0", @@ -4243,12 +4360,12 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.0.1", + "check-error": "^1.0.1", + "deep-eql": "^3.0.0", + "get-func-name": "^2.0.0", + "pathval": "^1.0.0", + "type-detect": "^4.0.0" } }, "debug": { @@ -4515,6 +4632,23 @@ } } }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "dev": true, + "requires": { + "colors": "1.0.3" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + } + } + }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", @@ -4631,7 +4765,7 @@ }, "colors": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "resolved": "http://registry.npmjs.org/colors/-/colors-1.1.2.tgz", "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, @@ -5067,23 +5201,24 @@ }, "cucumber": { "version": "github:xolvio/cucumber-js#cf953cb5b5de30dbcc279f59e4ebff3aa040071c", + "from": "github:xolvio/cucumber-js#v1.3.0-chimp.6", "dev": true, "requires": { - "camel-case": "3.0.0", - "cli-table": "0.3.1", - "co": "4.6.0", - "colors": "1.1.2", - "commander": "2.17.1", - "duration": "0.2.2", - "fibers": "1.0.15", + "camel-case": "^3.0.0", + "cli-table": "^0.3.1", + "co": "^4.6.0", + "colors": "^1.1.2", + "commander": "^2.9.0", + "duration": "^0.2.0", + "fibers": "^1.0.7", "figures": "1.7.0", "gherkin": "4.0.0", - "glob": "7.1.3", - "is-generator": "1.0.3", - "lodash": "4.17.11", - "meteor-promise": "0.8.6", - "stack-chain": "1.3.7", - "stacktrace-js": "1.3.1" + "glob": "^7.0.0", + "is-generator": "^1.0.2", + "lodash": "^4.0.0", + "meteor-promise": "^0.8.0", + "stack-chain": "^1.3.5", + "stacktrace-js": "^1.3.0" }, "dependencies": { "fibers": { @@ -5731,6 +5866,16 @@ "resolved": "https://registry.npmjs.org/duration/-/duration-0.2.2.tgz", "integrity": "sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==", "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.46" + } + }, + "eachr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/eachr/-/eachr-2.0.4.tgz", + "integrity": "sha1-Rm98qhBwj2EFCeMsgHqv5X/BIr8=", + "dev": true, "requires": { "d": "1.0.0", "es5-ext": "0.10.48" @@ -5927,7 +6072,7 @@ "integrity": "sha1-4Oc7k+QXE40c18C3RrGkoUhUwpI=", "dev": true, "requires": { - "stackframe": "0.3.1" + "stackframe": "^0.3.1" } }, "es-abstract": { @@ -6970,8 +7115,8 @@ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" } }, "file-entry-cache": { @@ -7286,7 +7431,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -7309,13 +7455,15 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7331,17 +7479,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -7470,7 +7621,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -7484,6 +7636,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -7500,6 +7653,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -7507,13 +7661,15 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -7534,6 +7690,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -7623,7 +7780,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -7637,6 +7795,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -7731,7 +7890,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -7772,6 +7932,7 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -7793,6 +7954,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -7840,12 +8002,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -7926,7 +8090,7 @@ }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-value": { @@ -7968,6 +8132,12 @@ "integrity": "sha1-edzgTRIj6kO0hip2vlzo+JwSwyw=", "dev": true }, + "gherkin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/gherkin/-/gherkin-4.0.0.tgz", + "integrity": "sha1-edzgTRIj6kO0hip2vlzo+JwSwyw=", + "dev": true + }, "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -8706,10 +8876,10 @@ "integrity": "sha1-eg4rztHZcXjsVs48ykjgxW3un40=", "dev": true, "requires": { - "boom": "2.7.2", - "hoek": "2.14.0", - "joi": "6.4.1", - "wreck": "6.0.0" + "boom": "2.x.x", + "hoek": "2.x.x", + "joi": "6.x.x", + "wreck": "5.x.x" } }, "heavy": { @@ -8718,9 +8888,9 @@ "integrity": "sha1-/QEIdiExYy+IVIontVQSws9SKwA=", "dev": true, "requires": { - "boom": "2.7.2", - "hoek": "2.14.0", - "joi": "6.4.1" + "boom": "2.x.x", + "hoek": "2.x.x", + "joi": "5.x.x" } }, "hoek": { @@ -11941,7 +12111,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", @@ -12028,7 +12198,7 @@ }, "string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "5.1.2" @@ -12731,7 +12901,7 @@ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { - "lower-case": "1.1.4" + "lower-case": "^1.1.1" } }, "node-abi": { @@ -13001,6 +13171,16 @@ } } }, + "node-web-streams": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/node-web-streams/-/node-web-streams-0.2.2.tgz", + "integrity": "sha1-CH52u+t+jcVmhrJdtOYMX/nbCR8=", + "dev": true, + "requires": { + "is-stream": "^1.1.0", + "web-streams-polyfill": "git://github.com/gwicke/web-streams-polyfill.git#spec_performance_improvements" + } + }, "nodejieba": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/nodejieba/-/nodejieba-2.3.0.tgz", @@ -13096,7 +13276,7 @@ "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", "requires": { "are-we-there-yet": "1.1.5", "console-control-strings": "1.1.0", @@ -13417,6 +13597,16 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==" }, + "paho-mqtt": { + "version": "github:eclipse/paho.mqtt.javascript#f5859463aba9a9b7c19f99ab7c4849a723f8d832", + "from": "github:eclipse/paho.mqtt.javascript#master", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "http://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, "parallel-transform": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", @@ -13773,7 +13963,7 @@ }, "tough-cookie": { "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "resolved": "http://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "dev": true, "requires": { @@ -14633,6 +14823,16 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, "protobufjs": { "version": "6.8.8", "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz", @@ -16149,6 +16349,29 @@ } } }, + "stack-chain": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz", + "integrity": "sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=", + "dev": true + }, + "stack-generator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-1.1.0.tgz", + "integrity": "sha1-NvapIHUabBD0maE8Msu19RoLiyU=", + "dev": true, + "requires": { + "stackframe": "^1.0.2" + }, + "dependencies": { + "stackframe": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz", + "integrity": "sha512-to7oADIniaYwS3MhtCa/sQhrxidCCQiF/qp4/m5iN3ipf0Y7Xlri0f6eG29r08aL7JYl8n32AF3Q5GYBZ7K8vw==", + "dev": true + } + } + }, "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -16167,7 +16390,7 @@ "dev": true, "requires": { "source-map": "0.5.6", - "stackframe": "0.3.1" + "stackframe": "~0.3" }, "dependencies": { "source-map": { @@ -16184,9 +16407,9 @@ "integrity": "sha1-Z8qyWJr1xBe5Yvc2mUAne7O2oYs=", "dev": true, "requires": { - "error-stack-parser": "1.3.6", - "stack-generator": "1.1.0", - "stacktrace-gps": "2.4.4" + "error-stack-parser": "^1.3.6", + "stack-generator": "^1.0.7", + "stacktrace-gps": "^2.4.3" } }, "starttls": { @@ -17763,7 +17986,7 @@ "integrity": "sha512-dNdEXHfPCvzyOlEaaQ+DcXpcxEz+pFvdrebKLiAMjobjaBC2bMeWoHOKPwJ+I8A4jQOEUDH7uoVcLWDLF1qhVQ==", "dev": true, "requires": { - "unist-util-stringify-position": "1.1.2" + "unist-util-stringify-position": "^1.1.1" } }, "vm-browserify": { @@ -17899,6 +18122,11 @@ "xtend": "^4.0.0" } }, + "web-streams-polyfill": { + "version": "git://github.com/gwicke/web-streams-polyfill.git#42c488428adea1dc0c0245014e4896ad456b1ded", + "from": "git://github.com/gwicke/web-streams-polyfill.git#spec_performance_improvements", + "dev": true + }, "webdav": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/webdav/-/webdav-2.0.0.tgz", From dda39a68136300f9ed43283b2e05da73b241d799 Mon Sep 17 00:00:00 2001 From: mrsimpson Date: Thu, 19 Sep 2019 16:40:24 +0200 Subject: [PATCH 2/5] Try to make CircleCI build docker image on develop --- .circleci/config.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 83ff88631107d..3c51012aad748 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -322,6 +322,7 @@ jobs: echo "Build official Docker image" cp ~/repo/.docker/Dockerfile . + cp ~/repo/.docker/startup.sh . docker build -t assistify/chat:develop . docker push assistify/chat:develop @@ -474,6 +475,7 @@ workflows: - deploy: requires: - image-build + - image-build-prod - test-with-oplog-mongo-3-2 - test-with-oplog-mongo-3-4 - test-with-oplog-mongo-3-6 @@ -485,16 +487,22 @@ workflows: - master tags: only: /^v[0-9]+\.[0-9]+\.[0-9]-[0-9]+\.[0-9]+\.[0-9]+$/ - - image-build: + - image-build-prod: requires: - hold filters: branches: only: - - develop - master tags: only: /^v[0-9]+\.[0-9]+\.[0-9]-[0-9]+\.[0-9]+\.[0-9]+$/ + - image-build: + filters: + branches: + only: + - develop + tags: + only: /^v[0-9]+\.[0-9]+\.[0-9]-[0-9]+\.[0-9]+\.[0-9]+$/ - hold: type: approval requires: From c6941e7929842dc57c128d93ea35d0e2950931bd Mon Sep 17 00:00:00 2001 From: mrsimpson Date: Thu, 19 Sep 2019 17:30:50 +0200 Subject: [PATCH 3/5] Remove graphql Not completely (including dependencies) in order to avoid merge conflict when merging 2.0 lateron (which also removes GraphQL) --- .meteor/versions | 2 + app/graphql/README.md | 3 - app/graphql/index.js | 1 - app/graphql/server/api.js | 79 - app/graphql/server/helpers/authenticated.js | 5 - app/graphql/server/helpers/dateToFloat.js | 5 - app/graphql/server/index.js | 2 - .../server/mocks/accounts/graphql-api.js | 21 - .../resolvers/accounts/OauthProvider-type.js | 5 - .../server/resolvers/accounts/index.js | 22 - .../resolvers/accounts/oauthProviders.js | 38 - .../server/resolvers/channels/Channel-type.js | 51 - .../resolvers/channels/ChannelFilter-input.js | 5 - .../channels/ChannelNameAndDirect-input.js | 5 - .../resolvers/channels/ChannelSort-enum.js | 5 - .../server/resolvers/channels/Privacy-enum.js | 5 - .../resolvers/channels/channelByName.js | 24 - .../server/resolvers/channels/channels.js | 55 - .../resolvers/channels/channelsByUser.js | 31 - .../resolvers/channels/createChannel.js | 39 - .../resolvers/channels/deleteChannel.js | 41 - .../resolvers/channels/directChannel.js | 36 - .../server/resolvers/channels/hideChannel.js | 41 - .../server/resolvers/channels/index.js | 52 - .../server/resolvers/channels/leaveChannel.js | 31 - .../server/resolvers/channels/settings.js | 12 - .../server/resolvers/messages/Message-type.js | 74 - .../messages/MessageIdentifier-input.js | 5 - .../messages/MessagesWithCursor-type.js | 5 - .../resolvers/messages/Reaction-type.js | 5 - .../messages/addReactionToMessage.js | 22 - .../resolvers/messages/chatMessageAdded.js | 52 - .../resolvers/messages/deleteMessage.js | 32 - .../server/resolvers/messages/editMessage.js | 34 - .../server/resolvers/messages/index.js | 47 - .../server/resolvers/messages/messages.js | 90 - .../server/resolvers/messages/sendMessage.js | 27 - .../server/resolvers/users/User-type.js | 29 - .../server/resolvers/users/UserStatus-enum.js | 5 - app/graphql/server/resolvers/users/index.js | 22 - .../server/resolvers/users/setStatus.js | 22 - app/graphql/server/schema.js | 29 - .../accounts/LoginResult-type.graphqls | 4 - .../accounts/OauthProvider-type.graphqls | 3 - .../schemas/accounts/oauthProviders.graphqls | 3 - .../schemas/channels/Channel-type.graphqls | 16 - .../channels/ChannelFilter-input.graphqls | 6 - .../ChannelNameAndDirect-input.graphqls | 4 - .../channels/ChannelSort-enum.graphqls | 4 - .../schemas/channels/Privacy-enum.graphqls | 5 - .../schemas/channels/channelByName.graphqls | 3 - .../server/schemas/channels/channels.graphqls | 7 - .../schemas/channels/channelsByUser.graphqls | 3 - .../schemas/channels/createChannel.graphqls | 8 - .../schemas/channels/deleteChannel.graphqls | 3 - .../schemas/channels/directChannel.graphqls | 3 - .../schemas/channels/hideChannel.graphqls | 3 - .../schemas/channels/leaveChannel.graphqls | 3 - .../schemas/messages/Message-type.graphqls | 15 - .../messages/MessageIdentifier-input.graphqls | 4 - .../messages/MessagesWithCursor-type.graphqls | 5 - .../schemas/messages/Reaction-type.graphqls | 4 - .../messages/addReactionToMessage.graphqls | 3 - .../messages/chatMessageAdded.graphqls | 3 - .../schemas/messages/deleteMessage.graphqls | 3 - .../schemas/messages/editMessage.graphqls | 3 - .../server/schemas/messages/messages.graphqls | 11 - .../schemas/messages/sendMessage.graphqls | 3 - .../server/schemas/users/User-type.graphqls | 8 - .../schemas/users/UserStatus-enum.graphqls | 7 - .../server/schemas/users/setStatus.graphqls | 3 - app/graphql/server/settings.js | 9 - app/graphql/server/subscriptions.js | 3 - package-lock.json | 1512 ++++++++--------- server/importPackages.js | 1 - 75 files changed, 733 insertions(+), 2058 deletions(-) delete mode 100644 app/graphql/README.md delete mode 100644 app/graphql/index.js delete mode 100644 app/graphql/server/api.js delete mode 100644 app/graphql/server/helpers/authenticated.js delete mode 100644 app/graphql/server/helpers/dateToFloat.js delete mode 100644 app/graphql/server/index.js delete mode 100644 app/graphql/server/mocks/accounts/graphql-api.js delete mode 100644 app/graphql/server/resolvers/accounts/OauthProvider-type.js delete mode 100644 app/graphql/server/resolvers/accounts/index.js delete mode 100644 app/graphql/server/resolvers/accounts/oauthProviders.js delete mode 100644 app/graphql/server/resolvers/channels/Channel-type.js delete mode 100644 app/graphql/server/resolvers/channels/ChannelFilter-input.js delete mode 100644 app/graphql/server/resolvers/channels/ChannelNameAndDirect-input.js delete mode 100644 app/graphql/server/resolvers/channels/ChannelSort-enum.js delete mode 100644 app/graphql/server/resolvers/channels/Privacy-enum.js delete mode 100644 app/graphql/server/resolvers/channels/channelByName.js delete mode 100644 app/graphql/server/resolvers/channels/channels.js delete mode 100644 app/graphql/server/resolvers/channels/channelsByUser.js delete mode 100644 app/graphql/server/resolvers/channels/createChannel.js delete mode 100644 app/graphql/server/resolvers/channels/deleteChannel.js delete mode 100644 app/graphql/server/resolvers/channels/directChannel.js delete mode 100644 app/graphql/server/resolvers/channels/hideChannel.js delete mode 100644 app/graphql/server/resolvers/channels/index.js delete mode 100644 app/graphql/server/resolvers/channels/leaveChannel.js delete mode 100644 app/graphql/server/resolvers/channels/settings.js delete mode 100644 app/graphql/server/resolvers/messages/Message-type.js delete mode 100644 app/graphql/server/resolvers/messages/MessageIdentifier-input.js delete mode 100644 app/graphql/server/resolvers/messages/MessagesWithCursor-type.js delete mode 100644 app/graphql/server/resolvers/messages/Reaction-type.js delete mode 100644 app/graphql/server/resolvers/messages/addReactionToMessage.js delete mode 100644 app/graphql/server/resolvers/messages/chatMessageAdded.js delete mode 100644 app/graphql/server/resolvers/messages/deleteMessage.js delete mode 100644 app/graphql/server/resolvers/messages/editMessage.js delete mode 100644 app/graphql/server/resolvers/messages/index.js delete mode 100644 app/graphql/server/resolvers/messages/messages.js delete mode 100644 app/graphql/server/resolvers/messages/sendMessage.js delete mode 100644 app/graphql/server/resolvers/users/User-type.js delete mode 100644 app/graphql/server/resolvers/users/UserStatus-enum.js delete mode 100644 app/graphql/server/resolvers/users/index.js delete mode 100644 app/graphql/server/resolvers/users/setStatus.js delete mode 100644 app/graphql/server/schema.js delete mode 100644 app/graphql/server/schemas/accounts/LoginResult-type.graphqls delete mode 100644 app/graphql/server/schemas/accounts/OauthProvider-type.graphqls delete mode 100644 app/graphql/server/schemas/accounts/oauthProviders.graphqls delete mode 100644 app/graphql/server/schemas/channels/Channel-type.graphqls delete mode 100644 app/graphql/server/schemas/channels/ChannelFilter-input.graphqls delete mode 100644 app/graphql/server/schemas/channels/ChannelNameAndDirect-input.graphqls delete mode 100644 app/graphql/server/schemas/channels/ChannelSort-enum.graphqls delete mode 100644 app/graphql/server/schemas/channels/Privacy-enum.graphqls delete mode 100644 app/graphql/server/schemas/channels/channelByName.graphqls delete mode 100644 app/graphql/server/schemas/channels/channels.graphqls delete mode 100644 app/graphql/server/schemas/channels/channelsByUser.graphqls delete mode 100644 app/graphql/server/schemas/channels/createChannel.graphqls delete mode 100644 app/graphql/server/schemas/channels/deleteChannel.graphqls delete mode 100644 app/graphql/server/schemas/channels/directChannel.graphqls delete mode 100644 app/graphql/server/schemas/channels/hideChannel.graphqls delete mode 100644 app/graphql/server/schemas/channels/leaveChannel.graphqls delete mode 100644 app/graphql/server/schemas/messages/Message-type.graphqls delete mode 100644 app/graphql/server/schemas/messages/MessageIdentifier-input.graphqls delete mode 100644 app/graphql/server/schemas/messages/MessagesWithCursor-type.graphqls delete mode 100644 app/graphql/server/schemas/messages/Reaction-type.graphqls delete mode 100644 app/graphql/server/schemas/messages/addReactionToMessage.graphqls delete mode 100644 app/graphql/server/schemas/messages/chatMessageAdded.graphqls delete mode 100644 app/graphql/server/schemas/messages/deleteMessage.graphqls delete mode 100644 app/graphql/server/schemas/messages/editMessage.graphqls delete mode 100644 app/graphql/server/schemas/messages/messages.graphqls delete mode 100644 app/graphql/server/schemas/messages/sendMessage.graphqls delete mode 100644 app/graphql/server/schemas/users/User-type.graphqls delete mode 100644 app/graphql/server/schemas/users/UserStatus-enum.graphqls delete mode 100644 app/graphql/server/schemas/users/setStatus.graphqls delete mode 100644 app/graphql/server/settings.js delete mode 100644 app/graphql/server/subscriptions.js diff --git a/.meteor/versions b/.meteor/versions index 4363fad755cf6..d56d3c0bca483 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -45,6 +45,7 @@ es5-shim@4.8.0 facebook-oauth@1.6.0 fastclick@1.0.13 fetch@0.1.1 +francocatena:status@1.5.3 geojson-utils@1.0.10 github-oauth@1.2.2 google-oauth@1.2.6 @@ -141,6 +142,7 @@ spacebars@1.0.15 spacebars-compiler@1.1.3 srp@1.0.12 standard-minifier-js@2.4.1 +tap:i18n@1.8.2 templating@1.3.2 templating-compiler@1.3.3 templating-runtime@1.3.2 diff --git a/app/graphql/README.md b/app/graphql/README.md deleted file mode 100644 index 712c36fd39aef..0000000000000 --- a/app/graphql/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# rocketchat:graphql - -GraphQL API diff --git a/app/graphql/index.js b/app/graphql/index.js deleted file mode 100644 index ca39cd0df4b1a..0000000000000 --- a/app/graphql/index.js +++ /dev/null @@ -1 +0,0 @@ -export * from './server/index'; diff --git a/app/graphql/server/api.js b/app/graphql/server/api.js deleted file mode 100644 index 60e56262e109a..0000000000000 --- a/app/graphql/server/api.js +++ /dev/null @@ -1,79 +0,0 @@ -import { graphqlExpress, graphiqlExpress } from 'apollo-server-express'; -import { JSAccountsContext as jsAccountsContext } from '@accounts/graphql-api'; -import { SubscriptionServer } from 'subscriptions-transport-ws'; -import { execute, subscribe } from 'graphql'; -import { Meteor } from 'meteor/meteor'; -import { WebApp } from 'meteor/webapp'; -import bodyParser from 'body-parser'; -import express from 'express'; -import cors from 'cors'; - -import { executableSchema } from './schema'; -import { settings } from '../../settings'; - - -const subscriptionPort = settings.get('Graphql_Subscription_Port') || 3100; - -// the Meteor GraphQL server is an Express server -const graphQLServer = express(); - -graphQLServer.disable('x-powered-by'); - -if (settings.get('Graphql_CORS')) { - graphQLServer.use(cors()); -} - -graphQLServer.use('/api/graphql', (req, res, next) => { - if (settings.get('Graphql_Enabled')) { - next(); - } else { - res.status(400).send('Graphql is not enabled in this server'); - } -}); - -graphQLServer.use( - '/api/graphql', - bodyParser.json(), - graphqlExpress((request) => ({ - schema: executableSchema, - context: jsAccountsContext(request), - formatError: (e) => ({ - message: e.message, - locations: e.locations, - path: e.path, - }), - debug: Meteor.isDevelopment, - })) -); - -graphQLServer.use( - '/graphiql', - graphiqlExpress({ - endpointURL: '/api/graphql', - subscriptionsEndpoint: `ws://localhost:${ subscriptionPort }`, - }) -); - -const startSubscriptionServer = () => { - if (settings.get('Graphql_Enabled')) { - SubscriptionServer.create({ - schema: executableSchema, - execute, - subscribe, - onConnect: (connectionParams) => ({ authToken: connectionParams.Authorization }), - }, - { - port: subscriptionPort, - host: process.env.BIND_IP || '0.0.0.0', - }); - - console.log('GraphQL Subscription server runs on port:', subscriptionPort); - } -}; - -WebApp.onListening(() => { - startSubscriptionServer(); -}); - -// this binds the specified paths to the Express server running Apollo + GraphiQL -WebApp.connectHandlers.use(graphQLServer); diff --git a/app/graphql/server/helpers/authenticated.js b/app/graphql/server/helpers/authenticated.js deleted file mode 100644 index 4e542109459cc..0000000000000 --- a/app/graphql/server/helpers/authenticated.js +++ /dev/null @@ -1,5 +0,0 @@ -import { AccountsServer } from '../../../accounts'; -// import { authenticated as _authenticated } from '@accounts/graphql-api'; -import { authenticated as _authenticated } from '../mocks/accounts/graphql-api'; - -export const authenticated = (resolver) => _authenticated(AccountsServer, resolver); diff --git a/app/graphql/server/helpers/dateToFloat.js b/app/graphql/server/helpers/dateToFloat.js deleted file mode 100644 index faf206706f1bf..0000000000000 --- a/app/graphql/server/helpers/dateToFloat.js +++ /dev/null @@ -1,5 +0,0 @@ -export function dateToFloat(date) { - if (date) { - return new Date(date).getTime(); - } -} diff --git a/app/graphql/server/index.js b/app/graphql/server/index.js deleted file mode 100644 index c19d98f29eb55..0000000000000 --- a/app/graphql/server/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import './settings'; -import './api'; diff --git a/app/graphql/server/mocks/accounts/graphql-api.js b/app/graphql/server/mocks/accounts/graphql-api.js deleted file mode 100644 index 4dc6a6783eca5..0000000000000 --- a/app/graphql/server/mocks/accounts/graphql-api.js +++ /dev/null @@ -1,21 +0,0 @@ -// Same as here: https://github.com/js-accounts/graphql/blob/master/packages/graphql-api/src/utils/authenticated-resolver.js -// except code below works -// It might be like that because of async/await, -// maybe Promise is not wrapped with Fiber -// See: https://github.com/meteor/meteor/blob/a362e20a37547362b581fed52f7171d022e83b62/packages/promise/server.js -// Opened issue: https://github.com/js-accounts/graphql/issues/16 -export const authenticated = (Accounts, func) => async (root, args, context, info) => { - const { authToken } = context; - - if (!authToken || authToken === '' || authToken === null) { - throw new Error('Unable to find authorization token in request'); - } - - const userObject = await Accounts.resumeSession(authToken); - - if (userObject === null) { - throw new Error('Invalid or expired token!'); - } - - return func(root, args, Object.assign(context, { user: userObject }), info); -}; diff --git a/app/graphql/server/resolvers/accounts/OauthProvider-type.js b/app/graphql/server/resolvers/accounts/OauthProvider-type.js deleted file mode 100644 index 0444479b4bf37..0000000000000 --- a/app/graphql/server/resolvers/accounts/OauthProvider-type.js +++ /dev/null @@ -1,5 +0,0 @@ -import schema from '../../schemas/accounts/OauthProvider-type.graphqls'; - -export { - schema, -}; diff --git a/app/graphql/server/resolvers/accounts/index.js b/app/graphql/server/resolvers/accounts/index.js deleted file mode 100644 index 8d49638291a71..0000000000000 --- a/app/graphql/server/resolvers/accounts/index.js +++ /dev/null @@ -1,22 +0,0 @@ -import { createJSAccountsGraphQL } from '@accounts/graphql-api'; -import { mergeTypes, mergeResolvers } from 'merge-graphql-schemas'; - - -// queries -import * as oauthProviders from './oauthProviders'; -// types -import * as OauthProviderType from './OauthProvider-type'; -import { AccountsServer } from '../../../../accounts'; - -const accountsGraphQL = createJSAccountsGraphQL(AccountsServer); - -export const schema = mergeTypes([ - accountsGraphQL.schema, - oauthProviders.schema, - OauthProviderType.schema, -]); - -export const resolvers = mergeResolvers([ - accountsGraphQL.extendWithResolvers({}), - oauthProviders.resolver, -]); diff --git a/app/graphql/server/resolvers/accounts/oauthProviders.js b/app/graphql/server/resolvers/accounts/oauthProviders.js deleted file mode 100644 index 7928e07705e31..0000000000000 --- a/app/graphql/server/resolvers/accounts/oauthProviders.js +++ /dev/null @@ -1,38 +0,0 @@ -import { HTTP } from 'meteor/http'; -import { Meteor } from 'meteor/meteor'; - -import schema from '../../schemas/accounts/oauthProviders.graphqls'; - -function isJSON(obj) { - try { - JSON.parse(obj); - return true; - } catch (e) { - return false; - } -} - -const resolver = { - Query: { - oauthProviders: async () => { - // depends on rocketchat:grant package - try { - const result = HTTP.get(Meteor.absoluteUrl('_oauth_apps/providers')).content; - - if (isJSON(result)) { - const providers = JSON.parse(result).data; - - return providers.map((name) => ({ name })); - } - throw new Error('Could not parse the result'); - } catch (e) { - throw new Error('rocketchat:grant not installed'); - } - }, - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/channels/Channel-type.js b/app/graphql/server/resolvers/channels/Channel-type.js deleted file mode 100644 index c21d7102ca840..0000000000000 --- a/app/graphql/server/resolvers/channels/Channel-type.js +++ /dev/null @@ -1,51 +0,0 @@ -import property from 'lodash.property'; - -import { Subscriptions, Users } from '../../../../models'; -import schema from '../../schemas/channels/Channel-type.graphqls'; - -const resolver = { - Channel: { - id: property('_id'), - name: (root, args, { user }) => { - if (root.t === 'd') { - return root.usernames.find((u) => u !== user.username); - } - - return root.name; - }, - members: (root) => { - const ids = Subscriptions.findByRoomIdWhenUserIdExists(root._id, { fields: { 'u._id': 1 } }) - .fetch() - .map((sub) => sub.u._id); - return Users.findByIds(ids).fetch(); - }, - owners: (root) => { - // there might be no owner - if (!root.u) { - return; - } - - return [Users.findOneByUsername(root.u.username)]; - }, - numberOfMembers: (root) => Subscriptions.findByRoomId(root._id).count(), - numberOfMessages: property('msgs'), - readOnly: (root) => root.ro === true, - direct: (root) => root.t === 'd', - privateChannel: (root) => root.t === 'p', - favourite: (root, args, { user }) => { - const room = Subscriptions.findOneByRoomIdAndUserId(root._id, user._id); - - return room && room.f === true; - }, - unseenMessages: (root, args, { user }) => { - const room = Subscriptions.findOneByRoomIdAndUserId(root._id, user._id); - - return (room || {}).unread; - }, - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/channels/ChannelFilter-input.js b/app/graphql/server/resolvers/channels/ChannelFilter-input.js deleted file mode 100644 index c34d51653561a..0000000000000 --- a/app/graphql/server/resolvers/channels/ChannelFilter-input.js +++ /dev/null @@ -1,5 +0,0 @@ -import schema from '../../schemas/channels/ChannelFilter-input.graphqls'; - -export { - schema, -}; diff --git a/app/graphql/server/resolvers/channels/ChannelNameAndDirect-input.js b/app/graphql/server/resolvers/channels/ChannelNameAndDirect-input.js deleted file mode 100644 index 5285a9ac0fc06..0000000000000 --- a/app/graphql/server/resolvers/channels/ChannelNameAndDirect-input.js +++ /dev/null @@ -1,5 +0,0 @@ -import schema from '../../schemas/channels/ChannelNameAndDirect-input.graphqls'; - -export { - schema, -}; diff --git a/app/graphql/server/resolvers/channels/ChannelSort-enum.js b/app/graphql/server/resolvers/channels/ChannelSort-enum.js deleted file mode 100644 index fbd6ec8643627..0000000000000 --- a/app/graphql/server/resolvers/channels/ChannelSort-enum.js +++ /dev/null @@ -1,5 +0,0 @@ -import schema from '../../schemas/channels/ChannelSort-enum.graphqls'; - -export { - schema, -}; diff --git a/app/graphql/server/resolvers/channels/Privacy-enum.js b/app/graphql/server/resolvers/channels/Privacy-enum.js deleted file mode 100644 index b306754f60758..0000000000000 --- a/app/graphql/server/resolvers/channels/Privacy-enum.js +++ /dev/null @@ -1,5 +0,0 @@ -import schema from '../../schemas/channels/Privacy-enum.graphqls'; - -export { - schema, -}; diff --git a/app/graphql/server/resolvers/channels/channelByName.js b/app/graphql/server/resolvers/channels/channelByName.js deleted file mode 100644 index 21fb67f95155b..0000000000000 --- a/app/graphql/server/resolvers/channels/channelByName.js +++ /dev/null @@ -1,24 +0,0 @@ -import { roomPublicFields } from './settings'; -import { Rooms } from '../../../../models'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/channels/channelByName.graphqls'; - -const resolver = { - Query: { - channelByName: authenticated((root, { name }) => { - const query = { - name, - t: 'c', - }; - - return Rooms.findOne(query, { - fields: roomPublicFields, - }); - }), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/channels/channels.js b/app/graphql/server/resolvers/channels/channels.js deleted file mode 100644 index 638504a3b5e7c..0000000000000 --- a/app/graphql/server/resolvers/channels/channels.js +++ /dev/null @@ -1,55 +0,0 @@ -import { roomPublicFields } from './settings'; -import { Rooms } from '../../../../models'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/channels/channels.graphqls'; - -const resolver = { - Query: { - channels: authenticated((root, args) => { - const query = {}; - const options = { - sort: { - name: 1, - }, - fields: roomPublicFields, - }; - - // Filter - if (typeof args.filter !== 'undefined') { - // nameFilter - if (typeof args.filter.nameFilter !== 'undefined') { - query.name = { - $regex: new RegExp(args.filter.nameFilter, 'i'), - }; - } - - // sortBy - if (args.filter.sortBy === 'NUMBER_OF_MESSAGES') { - options.sort = { - msgs: -1, - }; - } - - // privacy - switch (args.filter.privacy) { - case 'PRIVATE': - query.t = 'p'; - break; - case 'PUBLIC': - query.t = { - $ne: 'p', - }; - break; - } - } - - return Rooms.find(query, options).fetch(); - }), - }, -}; - - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/channels/channelsByUser.js b/app/graphql/server/resolvers/channels/channelsByUser.js deleted file mode 100644 index 09cff66757735..0000000000000 --- a/app/graphql/server/resolvers/channels/channelsByUser.js +++ /dev/null @@ -1,31 +0,0 @@ -import { roomPublicFields } from './settings'; -import { Users, Subscriptions, Rooms } from '../../../../models'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/channels/channelsByUser.graphqls'; - -const resolver = { - Query: { - channelsByUser: authenticated((root, { userId }) => { - const user = Users.findOneById(userId); - - if (!user) { - throw new Error('No user'); - } - - const roomIds = Subscriptions.findByUserId(userId, { fields: { rid: 1 } }).fetch().map((s) => s.rid); - const rooms = Rooms.findByIds(roomIds, { - sort: { - name: 1, - }, - fields: roomPublicFields, - }).fetch(); - - return rooms; - }), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/channels/createChannel.js b/app/graphql/server/resolvers/channels/createChannel.js deleted file mode 100644 index 3ef544bb1994b..0000000000000 --- a/app/graphql/server/resolvers/channels/createChannel.js +++ /dev/null @@ -1,39 +0,0 @@ -import { API } from '../../../../api'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/channels/createChannel.graphqls'; - -const resolver = { - Mutation: { - createChannel: authenticated((root, args, { user }) => { - try { - API.channels.create.validate({ - user: { - value: user._id, - }, - name: { - value: args.name, - key: 'name', - }, - members: { - value: args.membersId, - key: 'membersId', - }, - }); - } catch (e) { - throw e; - } - - const { channel } = API.channels.create.execute(user._id, { - name: args.name, - members: args.membersId, - }); - - return channel; - }), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/channels/deleteChannel.js b/app/graphql/server/resolvers/channels/deleteChannel.js deleted file mode 100644 index 3c3aaca6de96c..0000000000000 --- a/app/graphql/server/resolvers/channels/deleteChannel.js +++ /dev/null @@ -1,41 +0,0 @@ -import { Meteor } from 'meteor/meteor'; - -import { Rooms, Subscriptions } from '../../../../models'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/channels/deleteChannel.graphqls'; - -const resolver = { - Mutation: { - deleteChannel: authenticated((root, { channelId }, { user }) => { - const channel = Rooms.findOne({ - _id: channelId, - t: 'c', - }); - - if (!channel) { - throw new Error('error-room-not-found', 'The required "channelId" param provided does not match any channel'); - } - - const sub = Subscriptions.findOneByRoomIdAndUserId(channel._id, user._id); - - if (!sub) { - throw new Error(`The user/callee is not in the channel "${ channel.name }.`); - } - - if (!sub.open) { - throw new Error(`The channel, ${ channel.name }, is already closed to the sender`); - } - - Meteor.runAsUser(user._id, () => { - Meteor.call('eraseRoom', channel._id); - }); - - return true; - }), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/channels/directChannel.js b/app/graphql/server/resolvers/channels/directChannel.js deleted file mode 100644 index a23219814f177..0000000000000 --- a/app/graphql/server/resolvers/channels/directChannel.js +++ /dev/null @@ -1,36 +0,0 @@ -import { roomPublicFields } from './settings'; -import { Rooms } from '../../../../models'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/channels/directChannel.graphqls'; - -const resolver = { - Query: { - directChannel: authenticated((root, { username, channelId }, { user }) => { - const query = { - t: 'd', - usernames: user.username, - }; - - if (typeof username !== 'undefined') { - if (username === user.username) { - throw new Error('You cannot specify your username'); - } - - query.usernames = { $all: [user.username, username] }; - } else if (typeof channelId !== 'undefined') { - query.id = channelId; - } else { - throw new Error('Use one of those fields: username, channelId'); - } - - return Rooms.findOne(query, { - fields: roomPublicFields, - }); - }), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/channels/hideChannel.js b/app/graphql/server/resolvers/channels/hideChannel.js deleted file mode 100644 index b0865c7e4fb1a..0000000000000 --- a/app/graphql/server/resolvers/channels/hideChannel.js +++ /dev/null @@ -1,41 +0,0 @@ -import { Meteor } from 'meteor/meteor'; - -import { Rooms, Subscriptions } from '../../../../models'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/channels/hideChannel.graphqls'; - -const resolver = { - Mutation: { - hideChannel: authenticated((root, args, { user }) => { - const channel = Rooms.findOne({ - _id: args.channelId, - t: 'c', - }); - - if (!channel) { - throw new Error('error-room-not-found', 'The required "channelId" param provided does not match any channel'); - } - - const sub = Subscriptions.findOneByRoomIdAndUserId(channel._id, user._id); - - if (!sub) { - throw new Error(`The user/callee is not in the channel "${ channel.name }.`); - } - - if (!sub.open) { - throw new Error(`The channel, ${ channel.name }, is already closed to the sender`); - } - - Meteor.runAsUser(user._id, () => { - Meteor.call('hideRoom', channel._id); - }); - - return true; - }), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/channels/index.js b/app/graphql/server/resolvers/channels/index.js deleted file mode 100644 index f463dccabea4b..0000000000000 --- a/app/graphql/server/resolvers/channels/index.js +++ /dev/null @@ -1,52 +0,0 @@ -import { mergeTypes, mergeResolvers } from 'merge-graphql-schemas'; - -// queries -import * as channels from './channels'; -import * as channelByName from './channelByName'; -import * as directChannel from './directChannel'; -import * as channelsByUser from './channelsByUser'; -// mutations -import * as createChannel from './createChannel'; -import * as leaveChannel from './leaveChannel'; -import * as hideChannel from './hideChannel'; -import * as deleteChannel from './deleteChannel'; -// types -import * as ChannelType from './Channel-type'; -import * as ChannelSort from './ChannelSort-enum'; -import * as ChannelFilter from './ChannelFilter-input'; -import * as Privacy from './Privacy-enum'; -import * as ChannelNameAndDirect from './ChannelNameAndDirect-input'; - -export const schema = mergeTypes([ - // queries - channels.schema, - channelByName.schema, - directChannel.schema, - channelsByUser.schema, - // mutations - createChannel.schema, - leaveChannel.schema, - hideChannel.schema, - deleteChannel.schema, - // types - ChannelType.schema, - ChannelSort.schema, - ChannelFilter.schema, - Privacy.schema, - ChannelNameAndDirect.schema, -]); - -export const resolvers = mergeResolvers([ - // queries - channels.resolver, - channelByName.resolver, - directChannel.resolver, - channelsByUser.resolver, - // mutations - createChannel.resolver, - leaveChannel.resolver, - hideChannel.resolver, - deleteChannel.resolver, - // types - ChannelType.resolver, -]); diff --git a/app/graphql/server/resolvers/channels/leaveChannel.js b/app/graphql/server/resolvers/channels/leaveChannel.js deleted file mode 100644 index 8448e778b5393..0000000000000 --- a/app/graphql/server/resolvers/channels/leaveChannel.js +++ /dev/null @@ -1,31 +0,0 @@ -import { Meteor } from 'meteor/meteor'; - -import { Rooms } from '../../../../models'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/channels/leaveChannel.graphqls'; - -const resolver = { - Mutation: { - leaveChannel: authenticated((root, args, { user }) => { - const channel = Rooms.findOne({ - _id: args.channelId, - t: 'c', - }); - - if (!channel) { - throw new Error('error-room-not-found', 'The required "channelId" param provided does not match any channel'); - } - - Meteor.runAsUser(user._id, () => { - Meteor.call('leaveRoom', channel._id); - }); - - return true; - }), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/channels/settings.js b/app/graphql/server/resolvers/channels/settings.js deleted file mode 100644 index 4aa8081e1ebbe..0000000000000 --- a/app/graphql/server/resolvers/channels/settings.js +++ /dev/null @@ -1,12 +0,0 @@ -export const roomPublicFields = { - t: 1, - name: 1, - description: 1, - announcement: 1, - topic: 1, - usernames: 1, - msgs: 1, - ro: 1, - u: 1, - archived: 1, -}; diff --git a/app/graphql/server/resolvers/messages/Message-type.js b/app/graphql/server/resolvers/messages/Message-type.js deleted file mode 100644 index 5f9bd1cbc69fa..0000000000000 --- a/app/graphql/server/resolvers/messages/Message-type.js +++ /dev/null @@ -1,74 +0,0 @@ -import property from 'lodash.property'; - -import { Rooms, Users } from '../../../../models'; -import { dateToFloat } from '../../helpers/dateToFloat'; -import schema from '../../schemas/messages/Message-type.graphqls'; - -const resolver = { - Message: { - id: property('_id'), - content: property('msg'), - creationTime: (root) => dateToFloat(root.ts), - author: (root) => { - const user = Users.findOne(root.u._id); - - return user || root.u; - }, - channel: (root) => Rooms.findOne(root.rid), - fromServer: (root) => typeof root.t !== 'undefined', // on a message sent by user `true` otherwise `false` - type: property('t'), - channelRef: (root) => { - if (!root.channels) { - return; - } - - return Rooms.find({ - _id: { - $in: root.channels.map((c) => c._id), - }, - }, { - sort: { - name: 1, - }, - }).fetch(); - }, - userRef: (root) => { - if (!root.mentions) { - return; - } - - return Users.find({ - _id: { - $in: root.mentions.map((c) => c._id), - }, - }, { - sort: { - username: 1, - }, - }).fetch(); - }, - reactions: (root) => { - if (!root.reactions || Object.keys(root.reactions).length === 0) { - return; - } - - const reactions = []; - - Object.keys(root.reactions).forEach((icon) => { - root.reactions[icon].usernames.forEach((username) => { - reactions.push({ - icon, - username, - }); - }); - }); - - return reactions; - }, - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/messages/MessageIdentifier-input.js b/app/graphql/server/resolvers/messages/MessageIdentifier-input.js deleted file mode 100644 index 010001040b606..0000000000000 --- a/app/graphql/server/resolvers/messages/MessageIdentifier-input.js +++ /dev/null @@ -1,5 +0,0 @@ -import schema from '../../schemas/messages/MessageIdentifier-input.graphqls'; - -export { - schema, -}; diff --git a/app/graphql/server/resolvers/messages/MessagesWithCursor-type.js b/app/graphql/server/resolvers/messages/MessagesWithCursor-type.js deleted file mode 100644 index d6a720856b6a4..0000000000000 --- a/app/graphql/server/resolvers/messages/MessagesWithCursor-type.js +++ /dev/null @@ -1,5 +0,0 @@ -import schema from '../../schemas/messages/MessagesWithCursor-type.graphqls'; - -export { - schema, -}; diff --git a/app/graphql/server/resolvers/messages/Reaction-type.js b/app/graphql/server/resolvers/messages/Reaction-type.js deleted file mode 100644 index 843a7a940cd5c..0000000000000 --- a/app/graphql/server/resolvers/messages/Reaction-type.js +++ /dev/null @@ -1,5 +0,0 @@ -import schema from '../../schemas/messages/Reaction-type.graphqls'; - -export { - schema, -}; diff --git a/app/graphql/server/resolvers/messages/addReactionToMessage.js b/app/graphql/server/resolvers/messages/addReactionToMessage.js deleted file mode 100644 index a90b8e57f4938..0000000000000 --- a/app/graphql/server/resolvers/messages/addReactionToMessage.js +++ /dev/null @@ -1,22 +0,0 @@ -import { Meteor } from 'meteor/meteor'; - -import { Messages } from '../../../../models'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/messages/addReactionToMessage.graphqls'; - -const resolver = { - Mutation: { - addReactionToMessage: authenticated((root, { id, icon, shouldReact }, { user }) => new Promise((resolve) => { - Meteor.runAsUser(user._id, () => { - Meteor.call('setReaction', icon, id.messageId, shouldReact, () => { - resolve(Messages.findOne(id.messageId)); - }); - }); - })), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/messages/chatMessageAdded.js b/app/graphql/server/resolvers/messages/chatMessageAdded.js deleted file mode 100644 index dc8ee0ddba7c0..0000000000000 --- a/app/graphql/server/resolvers/messages/chatMessageAdded.js +++ /dev/null @@ -1,52 +0,0 @@ -import { withFilter } from 'graphql-subscriptions'; - -import { Rooms } from '../../../../models'; -import { callbacks } from '../../../../callbacks'; -import { pubsub } from '../../subscriptions'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/messages/chatMessageAdded.graphqls'; - -export const CHAT_MESSAGE_SUBSCRIPTION_TOPIC = 'CHAT_MESSAGE_ADDED'; - -export function publishMessage(message) { - pubsub.publish(CHAT_MESSAGE_SUBSCRIPTION_TOPIC, { chatMessageAdded: message }); -} - -function shouldPublish(message, { id, directTo }, username) { - if (id) { - return message.rid === id; - } if (directTo) { - const room = Rooms.findOne({ - usernames: { $all: [directTo, username] }, - t: 'd', - }); - - return room && room._id === message.rid; - } - - return false; -} - -const resolver = { - Subscription: { - chatMessageAdded: { - subscribe: withFilter(() => pubsub.asyncIterator(CHAT_MESSAGE_SUBSCRIPTION_TOPIC), authenticated((payload, args, { user }) => { - const channel = { - id: args.channelId, - directTo: args.directTo, - }; - - return shouldPublish(payload.chatMessageAdded, channel, user.username); - })), - }, - }, -}; - -callbacks.add('afterSaveMessage', (message) => { - publishMessage(message); -}, callbacks.priority.MEDIUM, 'chatMessageAddedSubscription'); - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/messages/deleteMessage.js b/app/graphql/server/resolvers/messages/deleteMessage.js deleted file mode 100644 index feb2374ba29cc..0000000000000 --- a/app/graphql/server/resolvers/messages/deleteMessage.js +++ /dev/null @@ -1,32 +0,0 @@ -import { Meteor } from 'meteor/meteor'; - -import { Messages } from '../../../../models'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/messages/deleteMessage.graphqls'; - -const resolver = { - Mutation: { - deleteMessage: authenticated((root, { id }, { user }) => { - const msg = Messages.findOneById(id.messageId, { fields: { u: 1, rid: 1 } }); - - if (!msg) { - throw new Error(`No message found with the id of "${ id.messageId }".`); - } - - if (id.channelId !== msg.rid) { - throw new Error('The room id provided does not match where the message is from.'); - } - - Meteor.runAsUser(user._id, () => { - Meteor.call('deleteMessage', { _id: msg._id }); - }); - - return msg; - }), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/messages/editMessage.js b/app/graphql/server/resolvers/messages/editMessage.js deleted file mode 100644 index 9511a3dfc1038..0000000000000 --- a/app/graphql/server/resolvers/messages/editMessage.js +++ /dev/null @@ -1,34 +0,0 @@ -import { Meteor } from 'meteor/meteor'; - -import { Messages } from '../../../../models'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/messages/editMessage.graphqls'; - -const resolver = { - Mutation: { - editMessage: authenticated((root, { id, content }, { user }) => { - const msg = Messages.findOneById(id.messageId); - - // Ensure the message exists - if (!msg) { - throw new Error(`No message found with the id of "${ id.messageId }".`); - } - - if (id.channelId !== msg.rid) { - throw new Error('The channel id provided does not match where the message is from.'); - } - - // Permission checks are already done in the updateMessage method, so no need to duplicate them - Meteor.runAsUser(user._id, () => { - Meteor.call('updateMessage', { _id: msg._id, msg: content, rid: msg.rid }); - }); - - return Messages.findOneById(msg._id); - }), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/messages/index.js b/app/graphql/server/resolvers/messages/index.js deleted file mode 100644 index 8a77927f97218..0000000000000 --- a/app/graphql/server/resolvers/messages/index.js +++ /dev/null @@ -1,47 +0,0 @@ -import { mergeTypes, mergeResolvers } from 'merge-graphql-schemas'; - -// queries -import * as messages from './messages'; -// mutations -import * as sendMessage from './sendMessage'; -import * as editMessage from './editMessage'; -import * as deleteMessage from './deleteMessage'; -import * as addReactionToMessage from './addReactionToMessage'; -// subscriptions -import * as chatMessageAdded from './chatMessageAdded'; -// types -import * as MessageType from './Message-type'; -import * as MessagesWithCursorType from './MessagesWithCursor-type'; -import * as MessageIdentifier from './MessageIdentifier-input'; -import * as ReactionType from './Reaction-type'; - -export const schema = mergeTypes([ - // queries - messages.schema, - // mutations - sendMessage.schema, - editMessage.schema, - deleteMessage.schema, - addReactionToMessage.schema, - // subscriptions - chatMessageAdded.schema, - // types - MessageType.schema, - MessagesWithCursorType.schema, - MessageIdentifier.schema, - ReactionType.schema, -]); - -export const resolvers = mergeResolvers([ - // queries - messages.resolver, - // mutations - sendMessage.resolver, - editMessage.resolver, - deleteMessage.resolver, - addReactionToMessage.resolver, - // subscriptions - chatMessageAdded.resolver, - // types - MessageType.resolver, -]); diff --git a/app/graphql/server/resolvers/messages/messages.js b/app/graphql/server/resolvers/messages/messages.js deleted file mode 100644 index e52e2d0ac783d..0000000000000 --- a/app/graphql/server/resolvers/messages/messages.js +++ /dev/null @@ -1,90 +0,0 @@ -import { Rooms, Messages } from '../../../../models'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/messages/messages.graphqls'; - -const resolver = { - Query: { - messages: authenticated((root, args, { user }) => { - const messagesQuery = {}; - const messagesOptions = { - sort: { ts: -1 }, - }; - const channelQuery = {}; - const isPagination = !!args.cursor || args.count > 0; - let cursor; - - if (args.channelId) { - // channelId - channelQuery._id = args.channelId; - } else if (args.directTo) { - // direct message where directTo is a user id - channelQuery.t = 'd'; - channelQuery.usernames = { $all: [args.directTo, user.username] }; - } else if (args.channelName) { - // non-direct channel - channelQuery.t = { $ne: 'd' }; - channelQuery.name = args.channelName; - } else { - console.error('messages query must be called with channelId or directTo'); - return null; - } - - const channel = Rooms.findOne(channelQuery); - - let messagesArray = []; - - if (channel) { - // cursor - if (isPagination && args.cursor) { - const cursorMsg = Messages.findOne(args.cursor, { fields: { ts: 1 } }); - messagesQuery.ts = { $lt: cursorMsg.ts }; - } - - // search - if (typeof args.searchRegex === 'string') { - messagesQuery.msg = { - $regex: new RegExp(args.searchRegex, 'i'), - }; - } - - // count - if (isPagination && args.count) { - messagesOptions.limit = args.count; - } - - // exclude messages generated by server - if (args.excludeServer === true) { - messagesQuery.t = { $exists: false }; - } - - // look for messages that belongs to specific channel - messagesQuery.rid = channel._id; - - const messages = Messages.find(messagesQuery, messagesOptions); - - messagesArray = messages.fetch(); - - if (isPagination) { - // oldest first (because of findOne) - messagesOptions.sort.ts = 1; - - const firstMessage = Messages.findOne(messagesQuery, messagesOptions); - const lastId = (messagesArray[messagesArray.length - 1] || {})._id; - - cursor = !lastId || lastId === firstMessage._id ? null : lastId; - } - } - - return { - cursor, - channel, - messagesArray, - }; - }), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/messages/sendMessage.js b/app/graphql/server/resolvers/messages/sendMessage.js deleted file mode 100644 index 2ed30c83c68e9..0000000000000 --- a/app/graphql/server/resolvers/messages/sendMessage.js +++ /dev/null @@ -1,27 +0,0 @@ -import { processWebhookMessage } from '../../../../lib'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/messages/sendMessage.graphqls'; - -const resolver = { - Mutation: { - sendMessage: authenticated((root, { channelId, directTo, content }, { user }) => { - const options = { - text: content, - channel: channelId || directTo, - }; - - const messageReturn = processWebhookMessage(options, user)[0]; - - if (!messageReturn) { - throw new Error('Unknown error'); - } - - return messageReturn.message; - }), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/users/User-type.js b/app/graphql/server/resolvers/users/User-type.js deleted file mode 100644 index 0abf0c5751ee9..0000000000000 --- a/app/graphql/server/resolvers/users/User-type.js +++ /dev/null @@ -1,29 +0,0 @@ -import { Meteor } from 'meteor/meteor'; -import property from 'lodash.property'; - -import { Avatars, Rooms } from '../../../../models'; -import schema from '../../schemas/users/User-type.graphqls'; - -const resolver = { - User: { - id: property('_id'), - status: ({ status }) => status.toUpperCase(), - avatar: async ({ _id }) => { - // XXX js-accounts/graphql#16 - const avatar = await Avatars.model.rawCollection().findOne({ - userId: _id, - }, { fields: { url: 1 } }); - - if (avatar) { - return avatar.url; - } - }, - channels: Meteor.bindEnvironment(({ _id }) => Rooms.findBySubscriptionUserId(_id).fetch()), - directMessages: ({ username }) => Rooms.findDirectRoomContainingUsername(username).fetch(), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/resolvers/users/UserStatus-enum.js b/app/graphql/server/resolvers/users/UserStatus-enum.js deleted file mode 100644 index c38f2765a17af..0000000000000 --- a/app/graphql/server/resolvers/users/UserStatus-enum.js +++ /dev/null @@ -1,5 +0,0 @@ -import schema from '../../schemas/users/UserStatus-enum.graphqls'; - -export { - schema, -}; diff --git a/app/graphql/server/resolvers/users/index.js b/app/graphql/server/resolvers/users/index.js deleted file mode 100644 index 7a6a31147b3e0..0000000000000 --- a/app/graphql/server/resolvers/users/index.js +++ /dev/null @@ -1,22 +0,0 @@ -import { mergeTypes, mergeResolvers } from 'merge-graphql-schemas'; - -// mutations -import * as setStatus from './setStatus'; -// types -import * as UserType from './User-type'; -import * as UserStatus from './UserStatus-enum'; - -export const schema = mergeTypes([ - // mutations - setStatus.schema, - // types - UserType.schema, - UserStatus.schema, -]); - -export const resolvers = mergeResolvers([ - // mutations - setStatus.resolver, - // types - UserType.resolver, -]); diff --git a/app/graphql/server/resolvers/users/setStatus.js b/app/graphql/server/resolvers/users/setStatus.js deleted file mode 100644 index d4a68da651a65..0000000000000 --- a/app/graphql/server/resolvers/users/setStatus.js +++ /dev/null @@ -1,22 +0,0 @@ -import { Users } from '../../../../models'; -import { authenticated } from '../../helpers/authenticated'; -import schema from '../../schemas/users/setStatus.graphqls'; - -const resolver = { - Mutation: { - setStatus: authenticated((root, { status }, { user }) => { - Users.update(user._id, { - $set: { - status: status.toLowerCase(), - }, - }); - - return Users.findOne(user._id); - }), - }, -}; - -export { - schema, - resolver, -}; diff --git a/app/graphql/server/schema.js b/app/graphql/server/schema.js deleted file mode 100644 index 5988bd1883b40..0000000000000 --- a/app/graphql/server/schema.js +++ /dev/null @@ -1,29 +0,0 @@ -import { makeExecutableSchema } from 'graphql-tools'; -import { mergeTypes, mergeResolvers } from 'merge-graphql-schemas'; - -import * as channels from './resolvers/channels'; -import * as messages from './resolvers/messages'; -import * as accounts from './resolvers/accounts'; -import * as users from './resolvers/users'; - -const schema = mergeTypes([ - channels.schema, - messages.schema, - accounts.schema, - users.schema, -]); - -const resolvers = mergeResolvers([ - channels.resolvers, - messages.resolvers, - accounts.resolvers, - users.resolvers, -]); - -export const executableSchema = makeExecutableSchema({ - typeDefs: [schema], - resolvers, - logger: { - log: (e) => console.log(e), - }, -}); diff --git a/app/graphql/server/schemas/accounts/LoginResult-type.graphqls b/app/graphql/server/schemas/accounts/LoginResult-type.graphqls deleted file mode 100644 index 0bdf1ed7e00bd..0000000000000 --- a/app/graphql/server/schemas/accounts/LoginResult-type.graphqls +++ /dev/null @@ -1,4 +0,0 @@ -type LoginResult { - accessToken: String! - refreshToken: String! -} diff --git a/app/graphql/server/schemas/accounts/OauthProvider-type.graphqls b/app/graphql/server/schemas/accounts/OauthProvider-type.graphqls deleted file mode 100644 index c91fe5e6379a9..0000000000000 --- a/app/graphql/server/schemas/accounts/OauthProvider-type.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type OauthProvider { - name: String! -} diff --git a/app/graphql/server/schemas/accounts/oauthProviders.graphqls b/app/graphql/server/schemas/accounts/oauthProviders.graphqls deleted file mode 100644 index 9ba76de8adb8b..0000000000000 --- a/app/graphql/server/schemas/accounts/oauthProviders.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Query { - oauthProviders: [OauthProvider] -} diff --git a/app/graphql/server/schemas/channels/Channel-type.graphqls b/app/graphql/server/schemas/channels/Channel-type.graphqls deleted file mode 100644 index 03c4557918df1..0000000000000 --- a/app/graphql/server/schemas/channels/Channel-type.graphqls +++ /dev/null @@ -1,16 +0,0 @@ -type Channel { - id: String! - name: String - description: String - announcement: String - topic: String - members: [User] - owners: [User] - numberOfMembers: Int - numberOfMessages: Int - readOnly: Boolean - direct: Boolean - privateChannel: Boolean - favourite: Boolean - unseenMessages: Int -} diff --git a/app/graphql/server/schemas/channels/ChannelFilter-input.graphqls b/app/graphql/server/schemas/channels/ChannelFilter-input.graphqls deleted file mode 100644 index a00850e371cc8..0000000000000 --- a/app/graphql/server/schemas/channels/ChannelFilter-input.graphqls +++ /dev/null @@ -1,6 +0,0 @@ -input ChannelFilter { - nameFilter: String - privacy: Privacy - joinedChannels: Boolean - sortBy: ChannelSort -} diff --git a/app/graphql/server/schemas/channels/ChannelNameAndDirect-input.graphqls b/app/graphql/server/schemas/channels/ChannelNameAndDirect-input.graphqls deleted file mode 100644 index 139567e862e93..0000000000000 --- a/app/graphql/server/schemas/channels/ChannelNameAndDirect-input.graphqls +++ /dev/null @@ -1,4 +0,0 @@ -input ChannelNameAndDirect { - name: String! - direct: Boolean! -} diff --git a/app/graphql/server/schemas/channels/ChannelSort-enum.graphqls b/app/graphql/server/schemas/channels/ChannelSort-enum.graphqls deleted file mode 100644 index 8a2c2902e6dbf..0000000000000 --- a/app/graphql/server/schemas/channels/ChannelSort-enum.graphqls +++ /dev/null @@ -1,4 +0,0 @@ -enum ChannelSort { - NAME - NUMBER_OF_MESSAGES -} diff --git a/app/graphql/server/schemas/channels/Privacy-enum.graphqls b/app/graphql/server/schemas/channels/Privacy-enum.graphqls deleted file mode 100644 index f28a57d51c281..0000000000000 --- a/app/graphql/server/schemas/channels/Privacy-enum.graphqls +++ /dev/null @@ -1,5 +0,0 @@ -enum Privacy { - PRIVATE - PUBLIC - ALL -} diff --git a/app/graphql/server/schemas/channels/channelByName.graphqls b/app/graphql/server/schemas/channels/channelByName.graphqls deleted file mode 100644 index e301ce38f7f6a..0000000000000 --- a/app/graphql/server/schemas/channels/channelByName.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Query { - channelByName(name: String!): Channel -} diff --git a/app/graphql/server/schemas/channels/channels.graphqls b/app/graphql/server/schemas/channels/channels.graphqls deleted file mode 100644 index 6e4ac56082497..0000000000000 --- a/app/graphql/server/schemas/channels/channels.graphqls +++ /dev/null @@ -1,7 +0,0 @@ -type Query { - channels(filter: ChannelFilter = { - privacy: ALL, - joinedChannels: false, - sortBy: NAME - }): [Channel] -} diff --git a/app/graphql/server/schemas/channels/channelsByUser.graphqls b/app/graphql/server/schemas/channels/channelsByUser.graphqls deleted file mode 100644 index 8dfe20a071c59..0000000000000 --- a/app/graphql/server/schemas/channels/channelsByUser.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Query { - channelsByUser(userId: String!): [Channel] -} diff --git a/app/graphql/server/schemas/channels/createChannel.graphqls b/app/graphql/server/schemas/channels/createChannel.graphqls deleted file mode 100644 index 85317c86603a3..0000000000000 --- a/app/graphql/server/schemas/channels/createChannel.graphqls +++ /dev/null @@ -1,8 +0,0 @@ -type Mutation { - createChannel( - name: String!, - private: Boolean = false, - readOnly: Boolean = false, - membersId: [String!] - ): Channel -} diff --git a/app/graphql/server/schemas/channels/deleteChannel.graphqls b/app/graphql/server/schemas/channels/deleteChannel.graphqls deleted file mode 100644 index bf11cc4fbe478..0000000000000 --- a/app/graphql/server/schemas/channels/deleteChannel.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Mutation { - deleteChannel(channelId: String!): Boolean -} diff --git a/app/graphql/server/schemas/channels/directChannel.graphqls b/app/graphql/server/schemas/channels/directChannel.graphqls deleted file mode 100644 index 4e41994bce80f..0000000000000 --- a/app/graphql/server/schemas/channels/directChannel.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Query { - directChannel(username: String, channelId: String): Channel -} diff --git a/app/graphql/server/schemas/channels/hideChannel.graphqls b/app/graphql/server/schemas/channels/hideChannel.graphqls deleted file mode 100644 index 5ea9517f57418..0000000000000 --- a/app/graphql/server/schemas/channels/hideChannel.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Mutation { - hideChannel(channelId: String!): Boolean -} diff --git a/app/graphql/server/schemas/channels/leaveChannel.graphqls b/app/graphql/server/schemas/channels/leaveChannel.graphqls deleted file mode 100644 index e6ceb4075c4e7..0000000000000 --- a/app/graphql/server/schemas/channels/leaveChannel.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Mutation { - leaveChannel(channelId: String!): Boolean -} diff --git a/app/graphql/server/schemas/messages/Message-type.graphqls b/app/graphql/server/schemas/messages/Message-type.graphqls deleted file mode 100644 index 8ccfdebfbf1df..0000000000000 --- a/app/graphql/server/schemas/messages/Message-type.graphqls +++ /dev/null @@ -1,15 +0,0 @@ -type Message { - id: String - author: User - content: String - channel: Channel - creationTime: Float - # Message sent by server e.g. User joined channel - fromServer: Boolean - type: String - # List of mentioned users - userRef: [User] - # list of mentioned channels - channelRef: [Channel] - reactions: [Reaction] -} diff --git a/app/graphql/server/schemas/messages/MessageIdentifier-input.graphqls b/app/graphql/server/schemas/messages/MessageIdentifier-input.graphqls deleted file mode 100644 index 88fbe90711cf9..0000000000000 --- a/app/graphql/server/schemas/messages/MessageIdentifier-input.graphqls +++ /dev/null @@ -1,4 +0,0 @@ -input MessageIdentifier { - channelId: String! - messageId: String! -} diff --git a/app/graphql/server/schemas/messages/MessagesWithCursor-type.graphqls b/app/graphql/server/schemas/messages/MessagesWithCursor-type.graphqls deleted file mode 100644 index e890725f6efb3..0000000000000 --- a/app/graphql/server/schemas/messages/MessagesWithCursor-type.graphqls +++ /dev/null @@ -1,5 +0,0 @@ -type MessagesWithCursor { - cursor: String - channel: Channel - messagesArray: [Message] -} diff --git a/app/graphql/server/schemas/messages/Reaction-type.graphqls b/app/graphql/server/schemas/messages/Reaction-type.graphqls deleted file mode 100644 index e6eedf75d1e18..0000000000000 --- a/app/graphql/server/schemas/messages/Reaction-type.graphqls +++ /dev/null @@ -1,4 +0,0 @@ -type Reaction { - username: String - icon: String -} diff --git a/app/graphql/server/schemas/messages/addReactionToMessage.graphqls b/app/graphql/server/schemas/messages/addReactionToMessage.graphqls deleted file mode 100644 index af9f913a16443..0000000000000 --- a/app/graphql/server/schemas/messages/addReactionToMessage.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Mutation { - addReactionToMessage(id: MessageIdentifier!, icon: String!, shouldReact: Boolean): Message -} diff --git a/app/graphql/server/schemas/messages/chatMessageAdded.graphqls b/app/graphql/server/schemas/messages/chatMessageAdded.graphqls deleted file mode 100644 index d05c00afc3bcd..0000000000000 --- a/app/graphql/server/schemas/messages/chatMessageAdded.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Subscription { - chatMessageAdded(channelId: String, directTo: String): Message -} diff --git a/app/graphql/server/schemas/messages/deleteMessage.graphqls b/app/graphql/server/schemas/messages/deleteMessage.graphqls deleted file mode 100644 index f298a14ebf98b..0000000000000 --- a/app/graphql/server/schemas/messages/deleteMessage.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Mutation { - deleteMessage(id: MessageIdentifier!): Message -} diff --git a/app/graphql/server/schemas/messages/editMessage.graphqls b/app/graphql/server/schemas/messages/editMessage.graphqls deleted file mode 100644 index 19900c58b2724..0000000000000 --- a/app/graphql/server/schemas/messages/editMessage.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Mutation { - editMessage(id: MessageIdentifier!, content: String!): Message -} diff --git a/app/graphql/server/schemas/messages/messages.graphqls b/app/graphql/server/schemas/messages/messages.graphqls deleted file mode 100644 index a81fe2186ca77..0000000000000 --- a/app/graphql/server/schemas/messages/messages.graphqls +++ /dev/null @@ -1,11 +0,0 @@ -type Query { - messages( - channelId: String, - channelName: String, - directTo: String, - cursor: String, - count: Int, - searchRegex: String, - excludeServer: Boolean - ): MessagesWithCursor -} diff --git a/app/graphql/server/schemas/messages/sendMessage.graphqls b/app/graphql/server/schemas/messages/sendMessage.graphqls deleted file mode 100644 index 78933ec6a7635..0000000000000 --- a/app/graphql/server/schemas/messages/sendMessage.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Mutation { - sendMessage(channelId: String, directTo: String, content: String!): Message -} diff --git a/app/graphql/server/schemas/users/User-type.graphqls b/app/graphql/server/schemas/users/User-type.graphqls deleted file mode 100644 index 2a345415227ef..0000000000000 --- a/app/graphql/server/schemas/users/User-type.graphqls +++ /dev/null @@ -1,8 +0,0 @@ -extend type User { - status: UserStatus - avatar: String - name: String - lastLogin: String - channels: [Channel] - directMessages: [Channel] -} diff --git a/app/graphql/server/schemas/users/UserStatus-enum.graphqls b/app/graphql/server/schemas/users/UserStatus-enum.graphqls deleted file mode 100644 index a360cc2a72b95..0000000000000 --- a/app/graphql/server/schemas/users/UserStatus-enum.graphqls +++ /dev/null @@ -1,7 +0,0 @@ -enum UserStatus { - ONLINE - AWAY - BUSY - INVISIBLE - OFFLINE -} diff --git a/app/graphql/server/schemas/users/setStatus.graphqls b/app/graphql/server/schemas/users/setStatus.graphqls deleted file mode 100644 index 7beb3512a91b2..0000000000000 --- a/app/graphql/server/schemas/users/setStatus.graphqls +++ /dev/null @@ -1,3 +0,0 @@ -type Mutation { - setStatus(status: UserStatus!): User -} diff --git a/app/graphql/server/settings.js b/app/graphql/server/settings.js deleted file mode 100644 index b1d0b7021b087..0000000000000 --- a/app/graphql/server/settings.js +++ /dev/null @@ -1,9 +0,0 @@ -import { settings } from '../../settings'; - -settings.addGroup('General', function() { - this.section('GraphQL API', function() { - this.add('Graphql_Enabled', false, { type: 'boolean', public: false }); - this.add('Graphql_CORS', true, { type: 'boolean', public: false, enableQuery: { _id: 'Graphql_Enabled', value: true } }); - this.add('Graphql_Subscription_Port', 3100, { type: 'int', public: false, enableQuery: { _id: 'Graphql_Enabled', value: true } }); - }); -}); diff --git a/app/graphql/server/subscriptions.js b/app/graphql/server/subscriptions.js deleted file mode 100644 index d86d23f85d055..0000000000000 --- a/app/graphql/server/subscriptions.js +++ /dev/null @@ -1,3 +0,0 @@ -import { PubSub } from 'graphql-subscriptions'; - -export const pubsub = new PubSub(); diff --git a/package-lock.json b/package-lock.json index fde2ecc7c9c4b..5a6c129dba84a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "Assistify.Chat", - "version": "1.3.2-0.9.14", + "name": "Rocket.Chat", + "version": "1.3.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -556,6 +556,18 @@ "protobufjs": "6.8.8" } }, + "@kamilkisiela/graphql-tools": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@kamilkisiela/graphql-tools/-/graphql-tools-4.0.6.tgz", + "integrity": "sha512-IPWa+dOFCE4zaCsrJrAMp7yWXnfOZLNhqoMEOmn958WkLM0mmsDc/W/Rh7/7xopIT6P0oizb6/N1iH5HnNXOUA==", + "requires": { + "apollo-link": "1.2.13", + "apollo-utilities": "1.3.2", + "deprecated-decorator": "0.1.6", + "iterall": "1.2.2", + "uuid": "3.3.2" + } + }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -693,124 +705,7 @@ "integrity": "sha512-3AlJvlohi7uwYRbKJP/v3uFCAI69J/2bU/rDAfF0GDifGDPsHAfhLIzSOshtjjIiQHtHeJ/Hg9yz/5U6E9pCrg==", "dev": true, "requires": { - "eslint-plugin-import": "^2.17.2" - } - }, - "@rocket.chat/fuselage": { - "version": "0.2.0-alpha.2", - "resolved": "https://registry.npmjs.org/@rocket.chat/fuselage/-/fuselage-0.2.0-alpha.2.tgz", - "integrity": "sha512-fAGRMPGvluQAxwUCWmgn28anFT0NPsKEzM1yYOdo1xPbYbs48QKg6f9aUgNEAAqpviw58AKq8d/re8KPjzEYLw==", - "requires": { - "@rocket.chat/icons": "^0.2.0-alpha.0" - } - }, - "@rocket.chat/icons": { - "version": "0.2.0-alpha.0", - "resolved": "https://registry.npmjs.org/@rocket.chat/icons/-/icons-0.2.0-alpha.0.tgz", - "integrity": "sha512-7bzc7frrOfSypD/QvJ+eBfiD5XZSpxzN8taaOB2g0AHDUYcS/yIDpZLRH0Eq0fVe4A4gXsg0MRgcU0cJzuXQ+g==" - }, - "@rocket.chat/livechat": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@rocket.chat/livechat/-/livechat-1.1.6.tgz", - "integrity": "sha512-KUq18sGCQEZhxygwxIb89uQZ3bcYVcAaeyUJRCQG7zKdEbdYK1wvMoP+/RLBHF5lw1OnFu2GfDHRxf4W+4Hf4A==", - "dev": true, - "requires": { - "@kossnocorp/desvg": "^0.2.0", - "@rocket.chat/sdk": "^1.0.0-alpha.29", - "date-fns": "^1.29.0", - "desvg": "^1.0.2", - "fast-async": "^6.3.8", - "history": "^4.7.2", - "i18n": "^0.8.3", - "i18nline": "^2.0.1", - "markdown-it": "^8.4.2", - "mem": "^4.2.0", - "msgpack": "^1.0.2", - "preact": "^8.2.6", - "preact-context": "^1.1.1", - "preact-i18nline": "^2.0.0", - "preact-router": "^2.5.7", - "query-string": "6.3.0", - "tiny-events": "^1.0.1", - "wolfy87-eventemitter": "^5.2.5" - }, - "dependencies": { - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "query-string": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.3.0.tgz", - "integrity": "sha512-jkpCkoHiAA2BYZvni5GieU3x860QDfkh2+M6bPnrYUywqOWbGwPq5VzntTS06ixX4GVHEiq2ZhlmGy/e9LQ3zA==", - "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "strict-uri-encode": "^2.0.0" - } - }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", - "dev": true - } - } - }, - "@rocket.chat/sdk": { - "version": "1.0.0-alpha.30", - "resolved": "https://registry.npmjs.org/@rocket.chat/sdk/-/sdk-1.0.0-alpha.30.tgz", - "integrity": "sha512-beKIoCw0XLjN8dcusqwBiS1hCVKE+y1IzpRYHUtNciS5LhOPujLUwrzF+pys2xkia5TohbRlsbNYlXPehvSHLQ==", - "dev": true, - "requires": { - "@types/event-emitter": "^0.3.2", - "@types/eventemitter3": "^2.0.2", - "@types/lru-cache": "^4.1.0", - "@types/node": "^9.4.6", - "axios": "^0.18.0", - "create-hash": "^1.2.0", - "crypto-browserify": "^3.12.0", - "eventemitter3": "^3.1.0", - "js-sha256": "^0.9.0", - "lru-cache": "^4.1.1", - "mem": "^4.0.0", - "mqtt": "^2.18.8", - "msgpack": "^1.0.2", - "msgpack-lite": "^0.1.26", - "node-fetch": "^2.2.1", - "node-fetch-polyfill": "^2.0.6", - "paho-mqtt": "github:eclipse/paho.mqtt.javascript#master", - "protobufjs": "^6.8.8", - "sha256": "^0.2.0", - "tiny-events": "^1.0.1", - "universal-websocket-client": "^1.0.2", - "web-mqtt-client": "^1.3.1", - "ws": "^5.2.0" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - } + "eslint-plugin-import": "2.17.2" } }, "@slack/client": { @@ -906,6 +801,16 @@ "@types/node": "9.6.40" } }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "requires": { + "@types/events": "1.2.0", + "@types/minimatch": "3.0.3", + "@types/node": "9.6.40" + } + }, "@types/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@types/is-stream/-/is-stream-1.1.0.tgz", @@ -934,6 +839,11 @@ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.0.tgz", "integrity": "sha512-A2TAGbTFdBw9azHbpVd+/FkdW2T6msN1uct1O9bH3vTerEHKZhTXJUQXy+hNq1B0RagfU8U+KBdqiZpxjhOUQA==" }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, "@types/node": { "version": "9.6.40", "resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.40.tgz", @@ -1173,6 +1083,14 @@ "@xtuc/long": "4.2.1" } }, + "@wry/equality": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.9.tgz", + "integrity": "sha512-mB6ceGjpMGz1ZTza8HYnrPGos2mC6So4NhS1PtZ8s4Qt0K7fBiIGhpSxUbQmhwcSWE3no+bYxmI2OL6KuXYmoQ==", + "requires": { + "tslib": "1.9.3" + } + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -1257,6 +1175,15 @@ "es6-promisify": "5.0.0" } }, + "aggregate-error": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.0.tgz", + "integrity": "sha512-yKD9kEoJIR+2IFqhMwayIBgheLYbB3PS2OBhWae1L/ODTd/JF/30cW0bc9TqzRL3k4U41Dieu3BF4I29p8xesA==", + "requires": { + "clean-stack": "2.2.0", + "indent-string": "3.2.0" + } + }, "ajv": { "version": "6.6.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz", @@ -1419,13 +1346,14 @@ } }, "apollo-link": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.1.tgz", - "integrity": "sha512-6Ghf+j3cQLCIvjXd2dJrLw+16HZbWbwmB1qlTc41BviB2hv+rK1nJr17Y9dWK0UD4p3i9Hfddx3tthpMKrueHg==", + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.13.tgz", + "integrity": "sha512-+iBMcYeevMm1JpYgwDEIDt/y0BB7VWyvlm/7x+TIPNLHCTCMgcEgDuW5kH86iQZWo0I7mNwQiTOz+/3ShPFmBw==", "requires": { - "@types/node": "9.6.40", - "apollo-utilities": "1.1.3", - "zen-observable-ts": "0.8.15" + "apollo-utilities": "1.3.2", + "ts-invariant": "0.4.4", + "tslib": "1.9.3", + "zen-observable-ts": "0.8.20" } }, "apollo-server-core": { @@ -1461,11 +1389,13 @@ } }, "apollo-utilities": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.1.3.tgz", - "integrity": "sha512-pF9abhiClX5gfj/WFWZh8DiI33nOLGxRhXH9ZMquaM1V8bhq1WLFPt2QjShWH3kGQVeIGUK+FQefnhe+ZaaAYg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.2.tgz", + "integrity": "sha512-JWNHj8XChz7S4OZghV6yc9FNnzEXj285QYp/nLNh943iObycI5GTDO3NGR9Dth12LRrSFMeDOConPfPln+WGfg==", "requires": { + "@wry/equality": "0.1.9", "fast-json-stable-stringify": "2.0.0", + "ts-invariant": "0.4.4", "tslib": "1.9.3" } }, @@ -1575,8 +1505,8 @@ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "define-properties": "1.1.3", + "es-abstract": "1.12.0" } }, "array-parallel": { @@ -1708,6 +1638,11 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "asyncro": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/asyncro/-/asyncro-3.0.0.tgz", + "integrity": "sha512-nEnWYfrBmA3taTiuiOoZYmgJ/CNrSoQLeLs29SeLcPu60yaw/mHDBHV0iOZ051fTvsTHxpCY+gXibqT9wbQYfg==" + }, "atlassian-crowd": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/atlassian-crowd/-/atlassian-crowd-0.5.0.tgz", @@ -2994,7 +2929,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -3041,7 +2976,7 @@ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "requires": { - "minipass": "^2.2.1" + "minipass": "2.3.5" } }, "fs.realpath": { @@ -3054,14 +2989,14 @@ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "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" } }, "glob": { @@ -3069,12 +3004,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "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" } }, "has-unicode": { @@ -3087,7 +3022,7 @@ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -3095,8 +3030,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -3114,7 +3049,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -3127,7 +3062,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -3140,7 +3075,7 @@ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "requires": { - "minipass": "^2.2.1" + "minipass": "2.3.5" } }, "mkdirp": { @@ -3178,8 +3113,8 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npmlog": { @@ -3187,10 +3122,10 @@ "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.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "1.1.5", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" } }, "number-is-nan": { @@ -3208,7 +3143,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -3226,8 +3161,8 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -3245,13 +3180,13 @@ "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.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.0.3", - "util-deprecate": "~1.0.1" + "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.0.3", + "util-deprecate": "1.0.2" } }, "rimraf": { @@ -3259,7 +3194,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, "safe-buffer": { @@ -3292,9 +3227,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -3302,7 +3237,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.1" } }, "strip-ansi": { @@ -3310,7 +3245,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -3678,14 +3613,6 @@ "parse-asn1": "5.1.1" } }, - "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", - "requires": { - "pako": "0.2.9" - } - }, "browserslist": { "version": "3.2.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", @@ -3984,8 +3911,8 @@ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" + "no-case": "2.3.2", + "upper-case": "1.1.3" } }, "camelcase": { @@ -4024,7 +3951,7 @@ "dev": true, "optional": true, "requires": { - "nan": "^2.1.0" + "nan": "2.11.1" } }, "cas": { @@ -4323,13 +4250,13 @@ "chokidar": "1.6.1", "chromedriver": "2.44.1", "colors": "1.1.2", - "commander": "^2.9.0", - "cucumber": "github:xolvio/cucumber-js#v1.3.0-chimp.6", - "deep-extend": "^0.4.1", - "exit": "^0.1.2", - "fibers": "^1.0.14", - "freeport": "~1.0.5", - "fs-extra": "^1.0.0", + "commander": "2.17.1", + "cucumber": "github:xolvio/cucumber-js#cf953cb5b5de30dbcc279f59e4ebff3aa040071c", + "deep-extend": "0.4.2", + "exit": "0.1.2", + "fibers": "1.0.15", + "freeport": "1.0.5", + "fs-extra": "1.0.0", "glob": "github:lucetius/node-glob#51c7ca6e69bfbd17db5f1ea710e3f2a7a457d9ce", "hapi": "8.8.0", "jasmine": "2.99.0", @@ -4360,18 +4287,18 @@ "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", "dev": true, "requires": { - "assertion-error": "^1.0.1", - "check-error": "^1.0.1", - "deep-eql": "^3.0.0", - "get-func-name": "^2.0.0", - "pathval": "^1.0.0", - "type-detect": "^4.0.0" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" @@ -4428,7 +4355,7 @@ "mocha": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", - "integrity": "sha1-fYbPvPNcuCnidUwy4XNV7AUzh5Q=", + "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", "dev": true, "requires": { "browser-stdout": "1.3.0", @@ -4446,13 +4373,13 @@ "commander": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha1-FXFS/R56bI2YpbcVzzdt+SgARWM=", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", "dev": true }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "1.0.0", @@ -4480,7 +4407,7 @@ "supports-color": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha1-iD992rwWUUKyphQn8zUt7RldGj4=", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", "dev": true, "requires": { "has-flag": "2.0.0" @@ -4502,7 +4429,7 @@ "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", - "fsevents": "1.2.7", + "fsevents": "1.2.9", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -4606,6 +4533,11 @@ } } }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -4632,23 +4564,6 @@ } } }, - "cli-table": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", - "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", - "dev": true, - "requires": { - "colors": "1.0.3" - }, - "dependencies": { - "colors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", - "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", - "dev": true - } - } - }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", @@ -4765,7 +4680,7 @@ }, "colors": { "version": "1.1.2", - "resolved": "http://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, @@ -5201,24 +5116,23 @@ }, "cucumber": { "version": "github:xolvio/cucumber-js#cf953cb5b5de30dbcc279f59e4ebff3aa040071c", - "from": "github:xolvio/cucumber-js#v1.3.0-chimp.6", "dev": true, "requires": { - "camel-case": "^3.0.0", - "cli-table": "^0.3.1", - "co": "^4.6.0", - "colors": "^1.1.2", - "commander": "^2.9.0", - "duration": "^0.2.0", - "fibers": "^1.0.7", + "camel-case": "3.0.0", + "cli-table": "0.3.1", + "co": "4.6.0", + "colors": "1.1.2", + "commander": "2.17.1", + "duration": "0.2.2", + "fibers": "1.0.15", "figures": "1.7.0", "gherkin": "4.0.0", - "glob": "^7.0.0", - "is-generator": "^1.0.2", - "lodash": "^4.0.0", - "meteor-promise": "^0.8.0", - "stack-chain": "^1.3.5", - "stacktrace-js": "^1.3.0" + "glob": "7.1.3", + "is-generator": "1.0.3", + "lodash": "4.17.11", + "meteor-promise": "0.8.6", + "stack-chain": "1.3.7", + "stacktrace-js": "1.3.1" }, "dependencies": { "fibers": { @@ -5272,8 +5186,8 @@ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "dev": true, "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "es5-ext": "0.10.50", + "type": "1.0.1" } }, "dashdash": { @@ -5311,8 +5225,8 @@ "resolved": "https://registry.npmjs.org/datauri/-/datauri-2.0.0.tgz", "integrity": "sha512-zS2HSf9pI5XPlNZgIqJg/wCJpecgU/HA6E/uv2EfaWnW1EiTGLfy/EexTIsC9c99yoCOTXlqeeWk4FkCSuO3/g==", "requires": { - "image-size": "^0.7.3", - "mimer": "^1.0.0" + "image-size": "0.7.4", + "mimer": "1.0.0" }, "dependencies": { "image-size": { @@ -5393,14 +5307,14 @@ "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=", "dev": true, "requires": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" + "decompress-tar": "4.1.1", + "decompress-tarbz2": "4.1.1", + "decompress-targz": "4.1.1", + "decompress-unzip": "4.0.1", + "graceful-fs": "4.1.15", + "make-dir": "1.3.0", + "pify": "2.3.0", + "strip-dirs": "2.1.0" }, "dependencies": { "pify": { @@ -5425,9 +5339,9 @@ "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", "dev": true, "requires": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" + "file-type": "5.2.0", + "is-stream": "1.1.0", + "tar-stream": "1.6.2" }, "dependencies": { "file-type": { @@ -5444,11 +5358,11 @@ "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", "dev": true, "requires": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" + "decompress-tar": "4.1.1", + "file-type": "6.2.0", + "is-stream": "1.1.0", + "seek-bzip": "1.0.5", + "unbzip2-stream": "1.3.3" }, "dependencies": { "file-type": { @@ -5465,9 +5379,9 @@ "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", "dev": true, "requires": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" + "decompress-tar": "4.1.1", + "file-type": "5.2.0", + "is-stream": "1.1.0" }, "dependencies": { "file-type": { @@ -5484,10 +5398,10 @@ "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", "dev": true, "requires": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" + "file-type": "3.9.0", + "get-stream": "2.3.1", + "pify": "2.3.0", + "yauzl": "2.10.0" }, "dependencies": { "fd-slicer": { @@ -5496,7 +5410,7 @@ "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "dev": true, "requires": { - "pend": "~1.2.0" + "pend": "1.2.0" } }, "file-type": { @@ -5511,8 +5425,8 @@ "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", "dev": true, "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -5527,8 +5441,8 @@ "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "dev": true, "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "buffer-crc32": "0.2.13", + "fd-slicer": "1.1.0" } } } @@ -5867,18 +5781,8 @@ "integrity": "sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.46" - } - }, - "eachr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/eachr/-/eachr-2.0.4.tgz", - "integrity": "sha1-Rm98qhBwj2EFCeMsgHqv5X/BIr8=", - "dev": true, - "requires": { - "d": "1.0.0", - "es5-ext": "0.10.48" + "d": "1.0.1", + "es5-ext": "0.10.50" } }, "eastasianwidth": { @@ -6072,7 +5976,7 @@ "integrity": "sha1-4Oc7k+QXE40c18C3RrGkoUhUwpI=", "dev": true, "requires": { - "stackframe": "^0.3.1" + "stackframe": "0.3.1" } }, "es-abstract": { @@ -6103,9 +6007,9 @@ "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", "dev": true, "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "^1.0.0" + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "next-tick": "1.0.0" } }, "es6-iterator": { @@ -6114,8 +6018,8 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.48", + "d": "1.0.1", + "es5-ext": "0.10.50", "es6-symbol": "3.1.1" } }, @@ -6138,8 +6042,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.48" + "d": "1.0.1", + "es5-ext": "0.10.50" } }, "escape-html": { @@ -6425,17 +6329,17 @@ "integrity": "sha512-m+cSVxM7oLsIpmwNn2WXTJoReOF9f/CtLMo7qOVmKd1KntBy0hEcuNZ3erTmWjx+DxRO0Zcrm5KwAvI9wHcV5g==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", + "array-includes": "3.0.3", + "contains-path": "0.1.0", + "debug": "2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.0", - "has": "^1.0.3", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "read-pkg-up": "^2.0.0", - "resolve": "^1.10.0" + "eslint-import-resolver-node": "0.3.2", + "eslint-module-utils": "2.4.0", + "has": "1.0.3", + "lodash": "4.17.11", + "minimatch": "3.0.4", + "read-pkg-up": "2.0.0", + "resolve": "1.10.1" }, "dependencies": { "resolve": { @@ -7115,8 +7019,8 @@ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" } }, "file-entry-cache": { @@ -7417,8 +7321,8 @@ "dev": true, "optional": true, "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "nan": "2.14.0", + "node-pre-gyp": "0.12.0" }, "dependencies": { "abbrev": { @@ -7431,8 +7335,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -7448,24 +7351,22 @@ "dev": true, "optional": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "delegates": "1.0.0", + "readable-stream": "2.3.6" } }, "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "optional": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -7479,20 +7380,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -7507,7 +7405,7 @@ "dev": true, "optional": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "deep-extend": { @@ -7538,7 +7436,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.3.5" } }, "fs.realpath": { @@ -7555,14 +7453,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "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" } }, "glob": { @@ -7572,12 +7470,12 @@ "dev": true, "optional": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "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" } }, "has-unicode": { @@ -7594,7 +7492,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ignore-walk": { @@ -7604,7 +7502,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "inflight": { @@ -7614,15 +7512,14 @@ "dev": true, "optional": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -7636,9 +7533,8 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, - "optional": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "isarray": { @@ -7653,26 +7549,23 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, - "optional": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "dev": true, - "optional": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "safe-buffer": "5.1.2", + "yallist": "3.0.3" } }, "minizlib": { @@ -7682,7 +7575,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "2.3.5" } }, "mkdirp": { @@ -7690,7 +7583,6 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -7714,9 +7606,9 @@ "dev": true, "optional": true, "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "4.1.1", + "iconv-lite": "0.4.24", + "sax": "1.2.4" } }, "node-pre-gyp": { @@ -7725,16 +7617,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.3.0", + "nopt": "4.0.1", + "npm-packlist": "1.4.1", + "npmlog": "4.1.2", + "rc": "1.2.8", + "rimraf": "2.6.3", + "semver": "5.7.0", + "tar": "4.4.8" } }, "nopt": { @@ -7744,8 +7636,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "npm-bundled": { @@ -7760,8 +7652,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.6" } }, "npmlog": { @@ -7771,17 +7663,16 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "1.1.5", + "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, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -7795,9 +7686,8 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, - "optional": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-homedir": { @@ -7821,8 +7711,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "path-is-absolute": { @@ -7846,10 +7736,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "deep-extend": "0.6.0", + "ini": "1.3.5", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" }, "dependencies": { "minimist": { @@ -7868,13 +7758,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "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": { @@ -7884,14 +7774,13 @@ "dev": true, "optional": true, "requires": { - "glob": "^7.1.3" + "glob": "7.1.3" } }, "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -7932,11 +7821,10 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, - "optional": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string_decoder": { @@ -7946,7 +7834,7 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -7954,9 +7842,8 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, - "optional": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-json-comments": { @@ -7973,13 +7860,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "chownr": "1.1.1", + "fs-minipass": "1.2.5", + "minipass": "2.3.5", + "minizlib": "1.2.1", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.2", + "yallist": "3.0.3" } }, "util-deprecate": { @@ -7996,20 +7883,18 @@ "dev": true, "optional": true, "requires": { - "string-width": "^1.0.2 || 2" + "string-width": "1.0.2" } }, "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -8090,7 +7975,7 @@ }, "get-stream": { "version": "3.0.0", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-value": { @@ -8113,7 +7998,7 @@ "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=", "dev": true, "requires": { - "lodash": "^4.14.0" + "lodash": "4.17.11" } } } @@ -8132,12 +8017,6 @@ "integrity": "sha1-edzgTRIj6kO0hip2vlzo+JwSwyw=", "dev": true }, - "gherkin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/gherkin/-/gherkin-4.0.0.tgz", - "integrity": "sha1-edzgTRIj6kO0hip2vlzo+JwSwyw=", - "dev": true - }, "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -8253,7 +8132,7 @@ "requires": { "array-union": "1.0.2", "dir-glob": "2.0.0", - "fast-glob": "2.2.4", + "fast-glob": "2.2.6", "glob": "7.1.3", "ignore": "3.3.10", "pify": "3.0.0", @@ -8284,9 +8163,9 @@ "dev": true, "optional": true, "requires": { - "array-parallel": "~0.1.3", - "array-series": "~0.1.5", - "debug": "~2.2.0" + "array-parallel": "0.1.3", + "array-series": "0.1.5", + "debug": "2.2.0" }, "dependencies": { "debug": { @@ -8633,6 +8512,22 @@ } } }, + "graphql-import": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/graphql-import/-/graphql-import-0.7.1.tgz", + "integrity": "sha512-YpwpaPjRUVlw2SN3OPljpWbVRWAhMAyfSba5U47qGMOSsPLi2gYeJtngGpymjm9nk57RFWEpjqwh4+dpYuFAPw==", + "requires": { + "lodash": "4.17.11", + "resolve-from": "4.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + } + } + }, "graphql-subscriptions": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-0.5.8.tgz", @@ -8641,13 +8536,85 @@ "iterall": "1.2.2" } }, + "graphql-toolkit": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/graphql-toolkit/-/graphql-toolkit-0.5.0.tgz", + "integrity": "sha512-tBgqyWPHI/Pgt+jp+uLZZy2EBCzjd6yWAu73oUlmrhgg7XM6f1ONotVHvIO2MK7j8khR+ex/cUe8FgpS1i845w==", + "requires": { + "@kamilkisiela/graphql-tools": "4.0.6", + "@types/glob": "7.1.1", + "aggregate-error": "3.0.0", + "asyncro": "3.0.0", + "cross-fetch": "3.0.4", + "deepmerge": "4.0.0", + "glob": "7.1.4", + "graphql-import": "0.7.1", + "is-glob": "4.0.1", + "is-valid-path": "0.1.1", + "lodash": "4.17.15", + "tslib": "1.9.3", + "valid-url": "1.0.9" + }, + "dependencies": { + "cross-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.4.tgz", + "integrity": "sha512-MSHgpjQqgbT/94D4CyADeNoYh52zMkCX4pcJvPP5WqPsLFMKjr2TCMg381ox5qI0ii2dPwaLx/00477knXqXVw==", + "requires": { + "node-fetch": "2.6.0", + "whatwg-fetch": "3.0.0" + } + }, + "deepmerge": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.0.0.tgz", + "integrity": "sha512-YZ1rOP5+kHor4hMAH+HRQnBQHg+wvS1un1hAOuIcxcBy0hzcUf6Jg2a1w65kpoOUnurOfZbERwjI1TfZxNjcww==" + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "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" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "2.1.1" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + } + } + }, "graphql-tools": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-3.0.2.tgz", - "integrity": "sha512-bhDGrvmSgcJBFX3EZEYagmKPk/EJ9vZIcF1WtSFveWfvSsh7crMFSQ9ldftuIXC9UeRwfutpGf3A1q4UpVLaRg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-3.1.1.tgz", + "integrity": "sha512-yHvPkweUB0+Q/GWH5wIG60bpt8CTwBklCSzQdEHmRUgAdEQKxw+9B7zB3dG7wB3Ym7M7lfrS4Ej+jtDZfA2UXg==", "requires": { - "apollo-link": "1.2.1", - "apollo-utilities": "1.1.3", + "apollo-link": "1.2.13", + "apollo-utilities": "1.3.2", "deprecated-decorator": "0.1.6", "iterall": "1.2.2", "uuid": "3.3.2" @@ -8698,8 +8665,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -8712,7 +8679,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "once": { @@ -8720,7 +8687,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "path-is-absolute": { @@ -8744,7 +8711,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "^7.0.5" + "glob": "7.1.3" } }, "sax": { @@ -8876,10 +8843,10 @@ "integrity": "sha1-eg4rztHZcXjsVs48ykjgxW3un40=", "dev": true, "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "6.x.x", - "wreck": "5.x.x" + "boom": "2.7.2", + "hoek": "2.14.0", + "joi": "6.4.1", + "wreck": "6.0.0" } }, "heavy": { @@ -8888,9 +8855,9 @@ "integrity": "sha1-/QEIdiExYy+IVIontVQSws9SKwA=", "dev": true, "requires": { - "boom": "2.x.x", - "hoek": "2.x.x", - "joi": "5.x.x" + "boom": "2.7.2", + "hoek": "2.14.0", + "joi": "6.4.1" } }, "hoek": { @@ -9236,7 +9203,7 @@ "integrity": "sha512-PqWdhnQhq6tqD32hZv+l1e5mJHNSudjnaAzgAHfkGiU0ABN6lmbZF8abJIulQHbZ7oiHhP8yL6O910ICMc+5pw==", "requires": { "is-stream": "1.1.0", - "pinkie-promise": "2.0.1" + "type-fest": "0.3.1" } }, "hawk": { @@ -9563,7 +9530,7 @@ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "requires": { - "minimatch": "^3.0.4" + "minimatch": "3.0.4" } }, "image-size": { @@ -9675,8 +9642,7 @@ "indent-string": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", - "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", - "dev": true + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=" }, "indexes-of": { "version": "1.0.1", @@ -10058,6 +10024,29 @@ "integrity": "sha512-but/G3sapV3MNyqiDBLrOi4x8uCIw0RY3o/Vb5GT0sMFHrVV7731wFSVy41T5FO1og7G0gXLJh0MkgPRouko/A==", "dev": true }, + "is-invalid-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", + "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=", + "requires": { + "is-glob": "2.0.1" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "1.0.0" + } + } + } + }, "is-natural-number": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", @@ -10204,6 +10193,14 @@ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", "dev": true }, + "is-valid-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", + "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=", + "requires": { + "is-invalid-path": "0.1.0" + } + }, "is-whitespace-character": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz", @@ -10285,20 +10282,20 @@ "integrity": "sha1-USKWDNXVvEGWqFNF9mozt9ruTrM=", "dev": true, "requires": { - "bignumber.js": "^2.1.0", + "bignumber.js": "2.4.0", "bmp-js": "0.0.1", - "es6-promise": "^3.0.2", - "exif-parser": "^0.1.9", - "file-type": "^3.1.0", - "jpeg-js": "^0.1.1", - "mime": "^1.3.4", - "pixelmatch": "^4.0.0", - "pngjs": "^2.1.0", - "read-chunk": "^1.0.1", - "request": "^2.65.0", - "stream-to-buffer": "^0.1.0", - "tinycolor2": "^1.1.2", - "url-regex": "^3.0.0" + "es6-promise": "3.3.1", + "exif-parser": "0.1.12", + "file-type": "3.9.0", + "jpeg-js": "0.1.2", + "mime": "1.6.0", + "pixelmatch": "4.0.2", + "pngjs": "2.3.1", + "read-chunk": "1.0.1", + "request": "2.88.0", + "stream-to-buffer": "0.1.0", + "tinycolor2": "1.4.1", + "url-regex": "3.2.0" }, "dependencies": { "es6-promise": { @@ -10538,13 +10535,13 @@ "resolved": "https://registry.npmjs.org/juice/-/juice-5.2.0.tgz", "integrity": "sha512-0l6GZmT3efexyaaay3SchKT5kG311N59TEFP5lfvEy0nz9SNqjx311plJ3b4jze7arsmDsiHQLh/xnAuk0HFTQ==", "requires": { - "cheerio": "^0.22.0", - "commander": "^2.15.1", - "cross-spawn": "^6.0.5", - "deep-extend": "^0.6.0", - "mensch": "^0.3.3", - "slick": "^1.12.2", - "web-resource-inliner": "^4.3.1" + "cheerio": "0.22.0", + "commander": "2.17.1", + "cross-spawn": "6.0.5", + "deep-extend": "0.6.0", + "mensch": "0.3.3", + "slick": "1.12.2", + "web-resource-inliner": "4.3.2" } }, "jwa": { @@ -11548,19 +11545,18 @@ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" }, "merge-graphql-schemas": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/merge-graphql-schemas/-/merge-graphql-schemas-1.5.2.tgz", - "integrity": "sha512-KomSriblDYY6A2wixXf9jHRGTPBn37MrhlObEqXY14qA3xwdf4Osb5PR6F+Lgb9rRnXe9wusMIaHwAA1WXdyaw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/merge-graphql-schemas/-/merge-graphql-schemas-1.7.0.tgz", + "integrity": "sha512-uxErpYVjlf91eTBdwHxVEwKtaosmmEHMJaQfe35XHwOEpUfhA9OFbYKRfZX5jUUS53xMnk203HDAl/u0EfjP7A==", "requires": { - "deepmerge": "2.2.1", - "glob": "7.1.3", - "is-glob": "4.0.0" + "graphql-toolkit": "0.5.0", + "tslib": "1.10.0" }, "dependencies": { - "deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" } } }, @@ -11609,9 +11605,9 @@ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "bn.js": "4.11.8", + "inherits": "2.0.1", + "minimalistic-assert": "1.0.0" } }, "assert": { @@ -11656,12 +11652,12 @@ "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.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "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" } }, "browserify-cipher": { @@ -11669,9 +11665,9 @@ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "browserify-aes": "1.1.1", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.3" } }, "browserify-des": { @@ -11679,9 +11675,9 @@ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1" + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.1" } }, "browserify-rsa": { @@ -11689,8 +11685,8 @@ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" + "bn.js": "4.11.8", + "randombytes": "2.0.6" } }, "browserify-sign": { @@ -11698,13 +11694,13 @@ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "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" } }, "browserify-zlib": { @@ -11712,7 +11708,7 @@ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", "requires": { - "pako": "~0.2.0" + "pako": "0.2.9" } }, "buffer": { @@ -11720,8 +11716,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12", + "base64-js": "1.2.3", + "ieee754": "1.1.8", "isarray": "1.0.0" } }, @@ -11740,8 +11736,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.1" } }, "concat-map": { @@ -11754,7 +11750,7 @@ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "requires": { - "date-now": "^0.1.4" + "date-now": "0.1.4" } }, "constants-browserify": { @@ -11767,8 +11763,8 @@ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "bn.js": "4.11.8", + "elliptic": "6.4.0" } }, "create-hash": { @@ -11776,10 +11772,10 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "sha.js": "^2.4.0" + "cipher-base": "1.0.4", + "inherits": "2.0.1", + "ripemd160": "2.0.1", + "sha.js": "2.4.10" } }, "create-hmac": { @@ -11787,12 +11783,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "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" } }, "crypto-browserify": { @@ -11800,17 +11796,17 @@ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.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" } }, "date-now": { @@ -11823,8 +11819,8 @@ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "inherits": "2.0.1", + "minimalistic-assert": "1.0.0" } }, "diffie-hellman": { @@ -11832,9 +11828,9 @@ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "bn.js": "4.11.8", + "miller-rabin": "4.0.1", + "randombytes": "2.0.6" } }, "domain-browser": { @@ -11847,13 +11843,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "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" } }, "events": { @@ -11866,8 +11862,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" } }, "fs.realpath": { @@ -11882,7 +11878,7 @@ "requires": { "fs.realpath": "1.0.0", "inflight": "1.0.6", - "inherits": "2.0.3", + "inherits": "2.0.1", "minimatch": "3.0.4", "once": "1.4.0", "path-is-absolute": "1.0.1" @@ -11893,7 +11889,7 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", "requires": { - "inherits": "^2.0.1" + "inherits": "2.0.1" } }, "hash.js": { @@ -11901,8 +11897,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.0" + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" }, "dependencies": { "inherits": { @@ -11917,9 +11913,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" } }, "https-browserify": { @@ -11961,8 +11957,8 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "hash-base": "3.0.4", + "inherits": "2.0.1" }, "dependencies": { "hash-base": { @@ -11970,8 +11966,8 @@ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.1" } } } @@ -11981,8 +11977,8 @@ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "bn.js": "4.11.8", + "brorand": "1.1.0" } }, "minimalistic-assert": { @@ -12026,11 +12022,11 @@ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" + "asn1.js": "4.10.1", + "browserify-aes": "1.1.1", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.3", + "pbkdf2": "3.0.14" } }, "path-browserify": { @@ -12048,11 +12044,11 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.10" } }, "process": { @@ -12070,11 +12066,11 @@ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1" + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.6" } }, "punycode": { @@ -12097,7 +12093,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "requires": { - "safe-buffer": "^5.1.0" + "safe-buffer": "5.1.1" } }, "randomfill": { @@ -12105,22 +12101,29 @@ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "randombytes": "2.0.6", + "safe-buffer": "5.1.1" } }, "readable-stream": { "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { "core-util-is": "1.0.2", - "inherits": "2.0.3", + "inherits": "2.0.4", "isarray": "1.0.0", "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", + "safe-buffer": "5.1.1", "string_decoder": "1.1.1", "util-deprecate": "1.0.2" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + } } }, "rimraf": { @@ -12136,8 +12139,8 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", "requires": { - "hash-base": "^2.0.0", - "inherits": "^2.0.1" + "hash-base": "2.0.2", + "inherits": "2.0.1" } }, "safe-buffer": { @@ -12150,8 +12153,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.10.tgz", "integrity": "sha512-vnwmrFDlOExK4Nm16J2KMWHLrp14lBrjxMxBJpu++EnsuBmpiYaM/MEs46Vxxm/4FvdP5yTwuCTO9it5FSjrqA==", "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "2.0.1", + "safe-buffer": "5.1.1" } }, "stream-browserify": { @@ -12159,20 +12162,19 @@ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "inherits": "2.0.1", + "readable-stream": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12" }, "dependencies": { "readable-stream": { - "version": "2.3.5", - "resolved": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12", + "version": "git+https://github.com/meteor/readable-stream.git#c688cdd193549919b840e8d72a86682d91961e12", "requires": { - "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.1" + "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" }, "dependencies": { "inherits": { @@ -12189,19 +12191,19 @@ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.1.tgz", "integrity": "sha512-cQ0jo17BLca2r0GfRdZKYAGLU6JRoIWxqSOakUMuKOT6MOK7AAlE856L33QuDmAy/eeOrhLee3dZKX0Uadu93A==", "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.3", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "builtin-status-codes": "3.0.0", + "inherits": "2.0.1", + "readable-stream": "2.3.6", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" } }, "string_decoder": { "version": "1.1.1", - "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "5.1.1" } }, "timers-browserify": { @@ -12209,7 +12211,7 @@ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", "requires": { - "process": "~0.11.0" + "process": "0.11.10" } }, "to-arraybuffer": { @@ -12622,11 +12624,11 @@ "integrity": "sha512-65maFMGR/h/dixhRXaDBEJgkDN5E9OoIDfqR+mt6bbTXFS3kqScA7FDWpzpFopcvkP3z8AzTrA9N1t2u/+vhFg==", "dev": true, "requires": { - "debug": "^3.0.1", - "mongodb": "~2.2.31", - "mongodb-prebuilt": "~6.4.0", - "portfinder": "^1.0.10", - "ps-node": "^0.1.4" + "debug": "3.2.6", + "mongodb": "2.2.36", + "mongodb-prebuilt": "6.4.0", + "portfinder": "1.0.20", + "ps-node": "0.1.6" }, "dependencies": { "debug": { @@ -12635,7 +12637,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -12712,15 +12714,15 @@ "integrity": "sha512-39/eiEmCqig0gCR3tNbmbTk6rIpWzEGqcXT0BE645stlA+DY7WlrIWZGEG51BcI3MUdGzqVYFj+qLoRw+HsJSA==", "dev": true, "requires": { - "debug": "^2.2.0", - "decompress": "^4.0.0", - "fs-extra": "^2.0.0", - "getos": "^2.7.0", + "debug": "2.6.9", + "decompress": "4.2.0", + "fs-extra": "2.1.2", + "getos": "2.8.4", "md5-file": "3.1.1", - "request": "^2.79.0", - "request-promise": "^4.1.1", - "semver": "^5.6.0", - "yargs": "^3.26.0" + "request": "2.88.0", + "request-promise": "4.2.4", + "semver": "5.6.0", + "yargs": "3.32.0" }, "dependencies": { "fs-extra": { @@ -12729,8 +12731,8 @@ "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0" + "graceful-fs": "4.1.15", + "jsonfile": "2.4.0" } } } @@ -12741,11 +12743,11 @@ "integrity": "sha512-ws6c31q3QfJ2OowRneseaydQxmF/66wPmtNm4x+F31ZB1myDFjDrn+M0Fs4FhZotBAmYVKtzoSVM6if2ekB7Ew==", "dev": true, "requires": { - "debug": "^2.2.0", - "glob": "^7.1.1", - "mongodb-download": "^2.2.7", + "debug": "2.6.9", + "glob": "7.1.3", + "mongodb-download": "2.2.7", "spawn-sync": "1.0.15", - "yargs": "^3.26.0" + "yargs": "3.32.0" } }, "more-entropy": { @@ -12853,9 +12855,9 @@ "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" + "debug": "3.2.6", + "iconv-lite": "0.4.24", + "sax": "1.2.4" }, "dependencies": { "debug": { @@ -12863,7 +12865,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -12901,7 +12903,7 @@ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { - "lower-case": "^1.1.1" + "lower-case": "1.1.4" } }, "node-abi": { @@ -13061,16 +13063,16 @@ "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz", "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" + "detect-libc": "1.0.3", + "mkdirp": "0.5.1", + "needle": "2.4.0", + "nopt": "4.0.1", + "npm-packlist": "1.4.1", + "npmlog": "4.1.2", + "rc": "1.2.8", + "rimraf": "2.6.3", + "semver": "5.6.0", + "tar": "4.4.8" }, "dependencies": { "rimraf": { @@ -13078,7 +13080,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "requires": { - "glob": "^7.1.3" + "glob": "7.1.3" } }, "tar": { @@ -13086,13 +13088,13 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "chownr": "1.1.1", + "fs-minipass": "1.2.6", + "minipass": "2.3.5", + "minizlib": "1.2.1", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.2", + "yallist": "3.0.3" } }, "yallist": { @@ -13147,11 +13149,11 @@ "integrity": "sha1-PuNQMZ8x81LO9omaSPa2t4NMaJk=", "dev": true, "requires": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^2.0.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "2.0.10", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "minimatch": { @@ -13160,7 +13162,7 @@ "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", "dev": true, "requires": { - "brace-expansion": "^1.0.0" + "brace-expansion": "1.1.11" } }, "underscore": { @@ -13171,16 +13173,6 @@ } } }, - "node-web-streams": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/node-web-streams/-/node-web-streams-0.2.2.tgz", - "integrity": "sha1-CH52u+t+jcVmhrJdtOYMX/nbCR8=", - "dev": true, - "requires": { - "is-stream": "^1.1.0", - "web-streams-polyfill": "git://github.com/gwicke/web-streams-polyfill.git#spec_performance_improvements" - } - }, "nodejieba": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/nodejieba/-/nodejieba-2.3.0.tgz", @@ -13213,8 +13205,8 @@ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "requires": { - "abbrev": "1", - "osenv": "^0.1.4" + "abbrev": "1.1.1", + "osenv": "0.1.5" } }, "normalize-package-data": { @@ -13261,8 +13253,8 @@ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.1.tgz", "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" + "ignore-walk": "3.0.1", + "npm-bundled": "1.0.6" } }, "npm-run-path": { @@ -13276,7 +13268,7 @@ "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { "are-we-there-yet": "1.1.5", "console-control-strings": "1.1.0", @@ -13533,8 +13525,8 @@ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" } }, "p-cancelable": { @@ -13597,16 +13589,6 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==" }, - "paho-mqtt": { - "version": "github:eclipse/paho.mqtt.javascript#f5859463aba9a9b7c19f99ab7c4849a723f8d832", - "from": "github:eclipse/paho.mqtt.javascript#master", - "dev": true - }, - "pako": { - "version": "0.2.9", - "resolved": "http://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" - }, "parallel-transform": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", @@ -13755,7 +13737,7 @@ "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "requires": { "pify": "3.0.0" } @@ -13886,8 +13868,8 @@ "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", "dev": true, "requires": { - "is-stream": "^1.0.1", - "pinkie-promise": "^2.0.0" + "is-stream": "1.1.0", + "pinkie-promise": "2.0.1" } }, "http-signature": { @@ -13963,7 +13945,7 @@ }, "tough-cookie": { "version": "2.3.4", - "resolved": "http://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "dev": true, "requires": { @@ -14032,7 +14014,7 @@ "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", "dev": true, "requires": { - "pngjs": "^3.0.0" + "pngjs": "3.4.0" }, "dependencies": { "pngjs": { @@ -14142,9 +14124,9 @@ "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", "dev": true, "requires": { - "async": "^1.5.2", - "debug": "^2.2.0", - "mkdirp": "0.5.x" + "async": "1.5.2", + "debug": "2.6.9", + "mkdirp": "0.5.1" }, "dependencies": { "async": { @@ -14733,7 +14715,7 @@ "minimist": "1.2.0", "mkdirp": "0.5.1", "napi-build-utils": "1.0.1", - "node-abi": "2.7.1", + "node-abi": "2.9.0", "noop-logger": "0.1.1", "npmlog": "4.1.2", "os-homedir": "1.0.2", @@ -14823,16 +14805,6 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, "protobufjs": { "version": "6.8.8", "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz", @@ -14891,7 +14863,7 @@ "integrity": "sha1-mvZ6mdex0BMuUaUDCZ04qNKs4sM=", "dev": true, "requires": { - "table-parser": "^0.1.3" + "table-parser": "0.1.3" } }, "pseudomap": { @@ -15454,10 +15426,10 @@ "integrity": "sha512-8wgMrvE546PzbR5WbYxUQogUnUDfM0S7QIFZMID+J73vdFARkFy+HElj4T+MWYhpXwlLp0EQ8Zoj8xUA0he4Vg==", "dev": true, "requires": { - "bluebird": "^3.5.0", + "bluebird": "3.5.3", "request-promise-core": "1.1.2", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" + "stealthy-require": "1.1.1", + "tough-cookie": "2.4.3" }, "dependencies": { "request-promise-core": { @@ -15466,7 +15438,7 @@ "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", "dev": true, "requires": { - "lodash": "^4.17.11" + "lodash": "4.17.11" } } } @@ -15772,7 +15744,7 @@ "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", "dev": true, "requires": { - "commander": "~2.8.1" + "commander": "2.8.1" }, "dependencies": { "commander": { @@ -15781,7 +15753,7 @@ "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", "dev": true, "requires": { - "graceful-readlink": ">= 1.0.0" + "graceful-readlink": "1.0.1" } } } @@ -15928,16 +15900,16 @@ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.22.1.tgz", "integrity": "sha512-lXzSk/FL5b/MpWrT1pQZneKe25stVjEbl6uhhJcTULm7PhmJgKKRbTDM/vtjyUuC/RLqL2PRyC4rpKwbv3soEw==", "requires": { - "color": "^3.1.1", - "detect-libc": "^1.0.3", - "fs-copy-file-sync": "^1.1.1", - "nan": "^2.13.2", - "npmlog": "^4.1.2", - "prebuild-install": "^5.3.0", - "semver": "^6.0.0", - "simple-get": "^3.0.3", - "tar": "^4.4.8", - "tunnel-agent": "^0.6.0" + "color": "3.1.2", + "detect-libc": "1.0.3", + "fs-copy-file-sync": "1.1.1", + "nan": "2.14.0", + "npmlog": "4.1.2", + "prebuild-install": "5.3.0", + "semver": "6.2.0", + "simple-get": "3.0.3", + "tar": "4.4.10", + "tunnel-agent": "0.6.0" }, "dependencies": { "nan": { @@ -16225,8 +16197,8 @@ "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=", "dev": true, "requires": { - "concat-stream": "^1.4.7", - "os-shim": "^0.1.2" + "concat-stream": "1.6.2", + "os-shim": "0.1.3" } }, "spdx-correct": { @@ -16349,29 +16321,6 @@ } } }, - "stack-chain": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz", - "integrity": "sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=", - "dev": true - }, - "stack-generator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stack-generator/-/stack-generator-1.1.0.tgz", - "integrity": "sha1-NvapIHUabBD0maE8Msu19RoLiyU=", - "dev": true, - "requires": { - "stackframe": "^1.0.2" - }, - "dependencies": { - "stackframe": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.0.4.tgz", - "integrity": "sha512-to7oADIniaYwS3MhtCa/sQhrxidCCQiF/qp4/m5iN3ipf0Y7Xlri0f6eG29r08aL7JYl8n32AF3Q5GYBZ7K8vw==", - "dev": true - } - } - }, "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -16390,7 +16339,7 @@ "dev": true, "requires": { "source-map": "0.5.6", - "stackframe": "~0.3" + "stackframe": "0.3.1" }, "dependencies": { "source-map": { @@ -16407,9 +16356,9 @@ "integrity": "sha1-Z8qyWJr1xBe5Yvc2mUAne7O2oYs=", "dev": true, "requires": { - "error-stack-parser": "^1.3.6", - "stack-generator": "^1.0.7", - "stacktrace-gps": "^2.4.3" + "error-stack-parser": "1.3.6", + "stack-generator": "1.1.0", + "stacktrace-gps": "2.4.4" } }, "starttls": { @@ -16515,7 +16464,7 @@ "integrity": "sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=", "dev": true, "requires": { - "stream-to": "~0.2.0" + "stream-to": "0.2.2" } }, "streamsearch": { @@ -16598,7 +16547,7 @@ "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", "dev": true, "requires": { - "is-natural-number": "^4.0.1" + "is-natural-number": "4.0.1" } }, "strip-eof": { @@ -16958,7 +16907,7 @@ "integrity": "sha1-BEHPzhallIFoTCfRtaZ/8VpDx7A=", "dev": true, "requires": { - "connected-domain": "^1.0.0" + "connected-domain": "1.0.0" } }, "tapable": { @@ -16972,13 +16921,13 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.5", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" + "chownr": "1.1.1", + "fs-minipass": "1.2.6", + "minipass": "2.3.5", + "minizlib": "1.2.1", + "mkdirp": "0.5.1", + "safe-buffer": "5.1.2", + "yallist": "3.0.3" }, "dependencies": { "yallist": { @@ -17160,14 +17109,6 @@ "xtend": "4.0.1" } }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "requires": { - "process": "0.11.10" - } - }, "tiny-emitter": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz", @@ -17355,6 +17296,14 @@ "integrity": "sha512-fwkLWH+DimvA4YCy+/nvJd61nWQQ2liO/nF/RjkTpiOGi+zxZzVkhb1mvbHIIW4b/8nDsYI8uTmAlc0nNkRMOw==", "dev": true }, + "ts-invariant": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", + "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", + "requires": { + "tslib": "1.9.3" + } + }, "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", @@ -17527,8 +17476,8 @@ "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", "dev": true, "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" + "buffer": "5.2.1", + "through": "2.3.8" } }, "underscore": { @@ -17818,7 +17767,7 @@ "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", "dev": true, "requires": { - "ip-regex": "^1.0.1" + "ip-regex": "1.0.3" }, "dependencies": { "ip-regex": { @@ -17901,6 +17850,11 @@ "resolved": "http://registry.npmjs.org/valid-data-url/-/valid-data-url-0.1.6.tgz", "integrity": "sha512-FXg2qXMzfAhZc0y2HzELNfUeiOjPr+52hU1DNBWiJJ2luXD+dD1R9NA48Ug5aj0ibbxroeGDc/RJv6ThiGgkDw==" }, + "valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=" + }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -17986,7 +17940,7 @@ "integrity": "sha512-dNdEXHfPCvzyOlEaaQ+DcXpcxEz+pFvdrebKLiAMjobjaBC2bMeWoHOKPwJ+I8A4jQOEUDH7uoVcLWDLF1qhVQ==", "dev": true, "requires": { - "unist-util-stringify-position": "^1.1.1" + "unist-util-stringify-position": "1.1.2" } }, "vm-browserify": { @@ -18047,7 +18001,7 @@ "anymatch": "2.0.0", "async-each": "1.0.1", "braces": "2.3.2", - "fsevents": "1.2.7", + "fsevents": "1.2.9", "glob-parent": "3.1.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -18111,22 +18065,17 @@ "resolved": "https://registry.npmjs.org/web-resource-inliner/-/web-resource-inliner-4.3.2.tgz", "integrity": "sha512-eVnNqwG20sbAgqv2JONwyr57UNZFJP4oauioeUjpCMY83AM11956eIhxlCGGXfSMi7bRBjR9Vao05bXFzslh7w==", "requires": { - "async": "^2.1.2", - "chalk": "^1.1.3", - "datauri": "^2.0.0", - "htmlparser2": "^3.9.2", - "lodash.unescape": "^4.0.1", - "request": "^2.78.0", - "safer-buffer": "^2.1.2", - "valid-data-url": "^0.1.4", - "xtend": "^4.0.0" + "async": "2.6.1", + "chalk": "1.1.3", + "datauri": "2.0.0", + "htmlparser2": "3.10.0", + "lodash.unescape": "4.0.1", + "request": "2.88.0", + "safer-buffer": "2.1.2", + "valid-data-url": "0.1.6", + "xtend": "4.0.1" } }, - "web-streams-polyfill": { - "version": "git://github.com/gwicke/web-streams-polyfill.git#42c488428adea1dc0c0245014e4896ad456b1ded", - "from": "git://github.com/gwicke/web-streams-polyfill.git#spec_performance_improvements", - "dev": true - }, "webdav": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/webdav/-/webdav-2.0.0.tgz", @@ -18891,16 +18840,17 @@ } }, "zen-observable": { - "version": "0.8.13", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.13.tgz", - "integrity": "sha512-fa+6aDUVvavYsefZw0zaZ/v3ckEtMgCFi30sn91SEZea4y/6jQp05E3omjkX91zV6RVdn15fqnFZ6RKjRGbp2g==" + "version": "0.8.14", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.14.tgz", + "integrity": "sha512-kQz39uonEjEESwh+qCi83kcC3rZJGh4mrZW7xjkSQYXkq//JZHTtKo+6yuVloTgMtzsIWOJrjIrKvk/dqm0L5g==" }, "zen-observable-ts": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.15.tgz", - "integrity": "sha512-sXKPWiw6JszNEkRv5dQ+lQCttyjHM2Iks74QU5NP8mMPS/NrzTlHDr780gf/wOBqmHkPO6NCLMlsa+fAQ8VE8w==", + "version": "0.8.20", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.20.tgz", + "integrity": "sha512-2rkjiPALhOtRaDX6pWyNqK1fnP5KkJJybYebopNSn6wDG1lxBoFs2+nwwXKoA6glHIrtwrfBBy6da0stkKtTAA==", "requires": { - "zen-observable": "0.8.13" + "tslib": "1.9.3", + "zen-observable": "0.8.14" } }, "zip-stream": { diff --git a/server/importPackages.js b/server/importPackages.js index e4df809cae1fa..0b16298d8deb3 100644 --- a/server/importPackages.js +++ b/server/importPackages.js @@ -33,7 +33,6 @@ import '../app/grant'; import '../app/grant-facebook'; import '../app/grant-github'; import '../app/grant-google'; -import '../app/graphql'; import '../app/iframe-login/server'; import '../app/importer/server'; import '../app/importer-csv/server'; From 477b601b8d362971a5f1c2566a6b0bec1d5c626e Mon Sep 17 00:00:00 2001 From: mrsimpson Date: Thu, 19 Sep 2019 19:48:40 +0200 Subject: [PATCH 4/5] No GraphlQL, no GraphQL tests --- tests/end-to-end/api/11-graphql.js | 343 ----------------------------- 1 file changed, 343 deletions(-) delete mode 100644 tests/end-to-end/api/11-graphql.js diff --git a/tests/end-to-end/api/11-graphql.js b/tests/end-to-end/api/11-graphql.js deleted file mode 100644 index ca307a5773541..0000000000000 --- a/tests/end-to-end/api/11-graphql.js +++ /dev/null @@ -1,343 +0,0 @@ -import supertest from 'supertest'; - -import { adminUsername, adminPassword, adminEmail } from '../../data/user.js'; - -const request = supertest('http://localhost:3000'); - -const user = { username: adminUsername, password: adminPassword, email: adminEmail, accessToken: null }; -const channel = {}; -const message = { content: 'Test Message GraphQL', modifiedContent: 'Test Message GraphQL Modified' }; - -const { expect } = require('chai'); - -const credentials = { - 'X-Auth-Token': undefined, - 'X-User-Id': undefined, -}; - -const login = { - user: adminUsername, - password: adminPassword, -}; - -describe('GraphQL Tests', function() { - this.retries(0); - - before((done) => { - request.post('/api/v1/login') - .send(login) - .expect('Content-Type', 'application/json') - .expect(200) - .expect((res) => { - credentials['X-Auth-Token'] = res.body.data.authToken; - credentials['X-User-Id'] = res.body.data.userId; - }) - .end(done); - }); - - before((done) => { - request.get('/api/graphql') - .expect(400) - .end(done); - }); - - before((done) => { - request.post('/api/v1/settings/Graphql_Enabled') - .set(credentials) - .send({ value: true }) - .expect('Content-Type', 'application/json') - .expect(200) - .expect((res) => { - expect(res.body).to.have.property('success', true); - }) - .end(done); - }); - - after((done) => { - request.post('/api/v1/settings/Graphql_Enabled') - .set(credentials) - .send({ value: false }) - .expect('Content-Type', 'application/json') - .expect(200) - .expect((res) => { - expect(res.body).to.have.property('success', true); - }) - .end(done); - }); - - it('Is able to login with username and password', (done) => { - browser.pause(500); - const query = ` - mutation login { - loginWithPassword(user: "${ user.username }", password: "${ user.password }") { - user { - username, - email - }, - tokens { - accessToken - } - } - }`; - request.post('/api/graphql') - .send({ - query, - }) - .expect('Content-Type', 'application/json') - .expect(200) - .expect((res) => { - expect(res.body).to.have.property('data'); - expect(res.body).to.not.have.property('errors'); - const data = res.body.data.loginWithPassword; - expect(data).to.have.property('user'); - expect(data).to.have.property('tokens'); - user.accessToken = data.tokens.accessToken; - expect(data.user).to.have.property('username', user.username); - expect(data.user).to.have.property('email', user.email); - }) - .end(done); - }); - - it('Is able to login with email and password', (done) => { - const query = ` - mutation login { - loginWithPassword(user: "", userFields: {email: "${ user.email }"}, password: "${ user.password }") { - user { - username, - email, - id - }, - tokens { - accessToken - } - } - }`; - request.post('/api/graphql') - .send({ - query, - }) - .expect('Content-Type', 'application/json') - .expect(200) - .expect((res) => { - expect(res.body).to.have.property('data'); - expect(res.body).to.not.have.property('errors'); - const data = res.body.data.loginWithPassword; - expect(data).to.have.property('user'); - expect(data).to.have.property('tokens'); - user.accessToken = data.tokens.accessToken; - expect(data.user).to.have.property('username', user.username); - expect(data.user).to.have.property('email', user.email); - }) - .end(done); - }); - - it('Fails when trying to login with wrong password', (done) => { - const query = ` - mutation login { - loginWithPassword(user: "${ user.username }", password: "not!${ user.password }") { - user { - username - }, - tokens { - accessToken - } - } - }`; - request.post('/api/graphql') - .send({ - query, - }) - .expect('Content-Type', 'application/json') - .expect(200) - .expect((res) => { - expect(res.body).to.have.property('data'); - expect(res.body).to.have.property('errors'); - expect(res.body.data).to.have.property('loginWithPassword', null); - expect(res.body.errors[0]).to.have.property('message', 'Incorrect password'); - }) - .end(done); - }); - - it('Is able to get user data (/me)', (done) => { - const query = ` - { - me { - username, - name, - email, - channels { - id, - name - }, - directMessages { - id, - name - } - } - }`; - request.post('/api/graphql') - .set('Authorization', user.accessToken) - .send({ - query, - }) - .expect('Content-Type', 'application/json') - .expect(200) - .expect((res) => { - expect(res.body).to.have.property('data'); - expect(res.body).to.not.have.property('errors'); - const { me } = res.body.data; - expect(me).to.have.property('username', user.username); - expect(me).to.have.property('email', user.email); - expect(me.channels).to.be.an('array'); - expect(me.channels[0]).to.have.property('id'); - channel.id = me.channels[0].id; - }) - .end(done); - }); - - it('Is able to send messages to channel', (done) => { - const query = ` - mutation sendMessage{ - sendMessage(channelId: "${ channel.id }", content: "${ message.content }") { - id, - author { - username, - name - }, - content, - channel { - name, - id - }, - reactions { - username, - icon - } - } - }`; - request.post('/api/graphql') - .set('Authorization', user.accessToken) - .send({ - query, - }) - .expect('Content-Type', 'application/json') - .expect(200) - .expect((res) => { - expect(res.body).to.have.property('data'); - expect(res.body).to.not.have.property('errors'); - const data = res.body.data.sendMessage; - expect(data).to.have.property('id'); - message.id = data.id; - expect(data).to.have.property('author'); - expect(data.author).to.have.property('username', user.username); - expect(data).to.have.property('content', message.content); - expect(data).to.have.property('channel'); - expect(data.channel).to.have.property('id', channel.id); - expect(data).to.have.property('reactions', null); - }) - .end(done); - }); - - it('Is able to edit messages', (done) => { - const query = ` - mutation editMessage { - editMessage(id: {messageId: "${ message.id }", channelId: "${ channel.id }"}, content: "${ message.modifiedContent }") { - id, - content, - author { - username - }, - channel { - id, - name - } - } - }`; - request.post('/api/graphql') - .set('Authorization', user.accessToken) - .send({ - query, - }) - .expect('Content-Type', 'application/json') - .expect(200) - .expect((res) => { - expect(res.body).to.have.property('data'); - expect(res.body).to.not.have.property('errors'); - const data = res.body.data.editMessage; - expect(data).to.have.property('id'); - expect(data).to.have.property('author'); - expect(data.author).to.have.property('username', user.username); - expect(data).to.have.property('content', message.modifiedContent); - expect(data).to.have.property('channel'); - expect(data.channel).to.have.property('id', channel.id); - }) - .end(done); - }); - - it('Can read messages from channel', (done) => { - const query = ` - { - messages (channelId: "${ channel.id }") { - channel { - id, - name - }, - messagesArray { - id, - author { - username - }, - content - } - } - }`; - request.post('/api/graphql') - .set('Authorization', user.accessToken) - .send({ - query, - }) - .expect('Content-Type', 'application/json') - .expect(200) - .expect((res) => { - expect(res.body).to.have.property('data'); - expect(res.body).to.not.have.property('errors'); - const data = res.body.data.messages; - expect(data).to.have.property('channel'); - expect(data.channel).to.have.property('id', channel.id); - - expect(data).to.have.property('messagesArray'); - expect(data.messagesArray[0]).to.have.property('id', message.id); - expect(data.messagesArray[0]).to.have.property('author'); - expect(data.messagesArray[0].author).to.have.property('username', user.username); - expect(data.messagesArray[0]).to.have.property('content', message.modifiedContent); - }) - .end(done); - }); - it('Is able to delete messages', (done) => { - const query = ` - mutation deleteMessage { - deleteMessage(id: {messageId: "${ message.id }", channelId: "${ channel.id }"}) { - id, - author { - username - } - } - }`; - request.post('/api/graphql') - .set('Authorization', user.accessToken) - .send({ - query, - }) - .expect('Content-Type', 'application/json') - .expect(200) - .expect((res) => { - expect(res.body).to.have.property('data'); - expect(res.body).to.not.have.property('errors'); - const data = res.body.data.deleteMessage; - expect(data).to.have.property('id', message.id); - expect(data).to.have.property('author'); - expect(data.author).to.have.property('username', user.username); - }) - .end(done); - }); -}); From ca29d5b6da89a0234772755313239aa34de3728f Mon Sep 17 00:00:00 2001 From: mrsimpson Date: Thu, 19 Sep 2019 20:38:32 +0200 Subject: [PATCH 5/5] Fix admin page in tests since GraphQL was removed --- tests/pageobjects/administration.page.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/pageobjects/administration.page.js b/tests/pageobjects/administration.page.js index 2d3537520a801..a2b9461a5ecb7 100644 --- a/tests/pageobjects/administration.page.js +++ b/tests/pageobjects/administration.page.js @@ -126,19 +126,19 @@ class Administration extends Page { // settings get buttonSave() { return browser.element('button.save'); } - get generalButtonExpandIframe() { return browser.element('.section:nth-of-type(4) .expand'); } + get generalButtonExpandIframe() { return browser.element('.section:nth-of-type(3) .expand'); } - get generalButtonExpandNotifications() { return browser.element('.section:nth-of-type(5) .expand'); } + get generalButtonExpandNotifications() { return browser.element('.section:nth-of-type(4) .expand'); } - get generalButtonExpandRest() { return browser.element('.section:nth-of-type(6) .expand'); } + get generalButtonExpandRest() { return browser.element('.section:nth-of-type(5) .expand'); } - get generalButtonExpandReporting() { return browser.element('.section:nth-of-type(7) .expand'); } + get generalButtonExpandReporting() { return browser.element('.section:nth-of-type(6) .expand'); } - get generalButtonExpandStreamCast() { return browser.element('.section:nth-of-type(8) .expand'); } + get generalButtonExpandStreamCast() { return browser.element('.section:nth-of-type(7) .expand'); } - get generalButtonExpandTranslations() { return browser.element('.section:nth-of-type(9) .expand'); } + get generalButtonExpandTranslations() { return browser.element('.section:nth-of-type(8) .expand'); } - get generalButtonExpandUTF8() { return browser.element('.section:nth-of-type(10) .expand'); } + get generalButtonExpandUTF8() { return browser.element('.section:nth-of-type(9) .expand'); } get generalSiteUrl() { return browser.element('[name="Site_Url"]'); }