diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 7f6a1cf..0000000 --- a/.babelrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "plugins": [ - "@babel/proposal-object-rest-spread" - ], - "presets": [ - "@babel/preset-typescript", - ["@babel/preset-env", { - "targets": { - "node": "10" - }, - "modules": "commonjs" - }] - ] -} diff --git a/.babelrc.js b/.babelrc.js new file mode 100644 index 0000000..8019e3e --- /dev/null +++ b/.babelrc.js @@ -0,0 +1,14 @@ +module.exports = { + plugins: [ + '@babel/proposal-object-rest-spread' + ], + presets: [ + '@babel/preset-typescript', + ['@babel/preset-env', { + targets: { + node: '10' + }, + modules: 'commonjs' + }] + ] +}; diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 47c0541..0000000 --- a/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -sudo: required - -language: node_js - -services: -- docker - -install: -- docker build -t webchat.azurecr.io/mockbot . - -script: -- echo - -deploy: - provider: script - script: bash scripts/docker_push - on: - branch: master diff --git a/package-lock.json b/package-lock.json index e6e3f6c..16eb117 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,47 +39,99 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", - "dev": true, "requires": { "@babel/highlight": "^7.0.0" } }, "@babel/core": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.4.tgz", - "integrity": "sha512-+DaeBEpYq6b2+ZmHx3tHspC+ZRflrvLqwfv8E3hNr5LVQoyBnL8RPKSBCg+rK2W2My9PWlujBiqd0ZPsR9Q6zQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/generator": "^7.5.0", - "@babel/helpers": "^7.5.4", - "@babel/parser": "^7.5.0", + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/core/-/@babel/core-7.5.5.tgz", + "integrity": "sha1-F7JobvDWvFj5Y93daKtml1VYLDA=", + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helpers": "^7.5.5", + "@babel/parser": "^7.5.5", "@babel/template": "^7.4.4", - "@babel/traverse": "^7.5.0", - "@babel/types": "^7.5.0", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5", "convert-source-map": "^1.1.0", "debug": "^4.1.0", "json5": "^2.1.0", - "lodash": "^4.17.11", + "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/code-frame/-/@babel/code-frame-7.5.5.tgz", + "integrity": "sha1-vAeC9tafe31JUxIZaZuYj2aaj50=", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/generator/-/@babel/generator-7.5.5.tgz", + "integrity": "sha1-hzp/k2o8iUkbQ1NtEiRbYmZk488=", + "requires": { + "@babel/types": "^7.5.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/parser": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/parser/-/@babel/parser-7.5.5.tgz", + "integrity": "sha1-AvB3rIgX099Kgy71neZ1Zeccyks=" + }, + "@babel/traverse": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/traverse/-/@babel/traverse-7.5.5.tgz", + "integrity": "sha1-9mT482jtMpiM1kjan3LVynDxZbs=", + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.5.5", + "@babel/types": "^7.5.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/types/-/@babel/types-7.5.5.tgz", + "integrity": "sha1-l7n3KOGCeFkJqkq1YmTwkKAo0Yo=", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, "debug": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", "requires": { "ms": "^2.1.1" } }, + "lodash": { + "version": "4.17.15", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + }, "ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" } } }, @@ -87,7 +139,6 @@ "version": "7.5.0", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.0.tgz", "integrity": "sha512-1TTVrt7J9rcG5PMjvO7VEG3FrEoEJNHxumRq66GemPmzboLWtIjjcJgk8rokuAS7IiRSpgVSu5Vb9lc99iJkOA==", - "dev": true, "requires": { "@babel/types": "^7.5.0", "jsesc": "^2.5.1", @@ -98,18 +149,16 @@ }, "@babel/helper-annotate-as-pure": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", - "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-annotate-as-pure/-/@babel/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha1-Mj053QtQ4Qx8Bsp9djjmhk2MXDI=", "requires": { "@babel/types": "^7.0.0" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-builder-binary-assignment-operator-visitor/-/@babel/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha1-a2lijf5Ah3mODE7Zjj1Kay+9L18=", "requires": { "@babel/helper-explode-assignable-expression": "^7.1.0", "@babel/types": "^7.0.0" @@ -117,9 +166,8 @@ }, "@babel/helper-call-delegate": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", - "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-call-delegate/-/@babel/helper-call-delegate-7.4.4.tgz", + "integrity": "sha1-h8H4yhmtVSpzanonscH8+LH/H0M=", "requires": { "@babel/helper-hoist-variables": "^7.4.4", "@babel/traverse": "^7.4.4", @@ -127,35 +175,49 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.0.tgz", - "integrity": "sha512-EAoMc3hE5vE5LNhMqDOwB1usHvmRjCDAnH8CD4PVkX9/Yr3W/tcz8xE8QvdZxfsFBDICwZnF2UTHIqslRpvxmA==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-create-class-features-plugin/-/@babel/helper-create-class-features-plugin-7.5.5.tgz", + "integrity": "sha1-QB8wLI3bwO3Tb3xrKIfY+hEi5aQ=", "requires": { "@babel/helper-function-name": "^7.1.0", - "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-member-expression-to-functions": "^7.5.5", "@babel/helper-optimise-call-expression": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.4.4", + "@babel/helper-replace-supers": "^7.5.5", "@babel/helper-split-export-declaration": "^7.4.4" } }, "@babel/helper-define-map": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz", - "integrity": "sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-define-map/-/@babel/helper-define-map-7.5.5.tgz", + "integrity": "sha1-PewywgRvN+CbKMk+sLED/Sol02k=", "requires": { "@babel/helper-function-name": "^7.1.0", - "@babel/types": "^7.4.4", - "lodash": "^4.17.11" + "@babel/types": "^7.5.5", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/types": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/types/-/@babel/types-7.5.5.tgz", + "integrity": "sha1-l7n3KOGCeFkJqkq1YmTwkKAo0Yo=", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + } } }, "@babel/helper-explode-assignable-expression": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-explode-assignable-expression/-/@babel/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha1-U3+hP28WdN90WwwA7I/k6ZaByPY=", "requires": { "@babel/traverse": "^7.1.0", "@babel/types": "^7.0.0" @@ -165,7 +227,6 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.0.0", "@babel/template": "^7.1.0", @@ -176,57 +237,85 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", - "dev": true, "requires": { "@babel/types": "^7.0.0" } }, "@babel/helper-hoist-variables": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz", - "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-hoist-variables/-/@babel/helper-hoist-variables-7.4.4.tgz", + "integrity": "sha1-Api18lyMCcUxAtUqxKmPdz6yhQo=", "requires": { "@babel/types": "^7.4.4" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", - "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-member-expression-to-functions/-/@babel/helper-member-expression-to-functions-7.5.5.tgz", + "integrity": "sha1-H7W47ERTqTxDnun+Ou6kqEt2tZA=", "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.5.5" + }, + "dependencies": { + "@babel/types": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/types/-/@babel/types-7.5.5.tgz", + "integrity": "sha1-l7n3KOGCeFkJqkq1YmTwkKAo0Yo=", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + } } }, "@babel/helper-module-imports": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-module-imports/-/@babel/helper-module-imports-7.0.0.tgz", + "integrity": "sha1-lggbcRHkhtpNLNlxrRpP4hbMLj0=", "requires": { "@babel/types": "^7.0.0" } }, "@babel/helper-module-transforms": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz", - "integrity": "sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-module-transforms/-/@babel/helper-module-transforms-7.5.5.tgz", + "integrity": "sha1-+E/4oJA43Lyh/UNVZhpQCTcWW0o=", "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/helper-simple-access": "^7.1.0", "@babel/helper-split-export-declaration": "^7.4.4", "@babel/template": "^7.4.4", - "@babel/types": "^7.4.4", - "lodash": "^4.17.11" + "@babel/types": "^7.5.5", + "lodash": "^4.17.13" + }, + "dependencies": { + "@babel/types": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/types/-/@babel/types-7.5.5.tgz", + "integrity": "sha1-l7n3KOGCeFkJqkq1YmTwkKAo0Yo=", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + } } }, "@babel/helper-optimise-call-expression": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", - "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-optimise-call-expression/-/@babel/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha1-opIMVwKwc8Fd5REGIAqoytIEl9U=", "requires": { "@babel/types": "^7.0.0" } @@ -234,23 +323,27 @@ "@babel/helper-plugin-utils": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", - "dev": true + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==" }, "@babel/helper-regex": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.4.4.tgz", - "integrity": "sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-regex/-/@babel/helper-regex-7.5.5.tgz", + "integrity": "sha1-CqaCT3EAouDonBUnwjk2wVLKs1E=", "requires": { - "lodash": "^4.17.11" + "lodash": "^4.17.13" + }, + "dependencies": { + "lodash": { + "version": "4.17.15", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + } } }, "@babel/helper-remap-async-to-generator": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-remap-async-to-generator/-/@babel/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha1-Nh2AghtvONp1vT8HheziCojF/n8=", "requires": { "@babel/helper-annotate-as-pure": "^7.0.0", "@babel/helper-wrap-function": "^7.1.0", @@ -260,22 +353,91 @@ } }, "@babel/helper-replace-supers": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz", - "integrity": "sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-replace-supers/-/@babel/helper-replace-supers-7.5.5.tgz", + "integrity": "sha1-+EzkPfAxIi0rrQaNJibLV5nDS8I=", "requires": { - "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-member-expression-to-functions": "^7.5.5", "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/code-frame/-/@babel/code-frame-7.5.5.tgz", + "integrity": "sha1-vAeC9tafe31JUxIZaZuYj2aaj50=", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/generator/-/@babel/generator-7.5.5.tgz", + "integrity": "sha1-hzp/k2o8iUkbQ1NtEiRbYmZk488=", + "requires": { + "@babel/types": "^7.5.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/parser": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/parser/-/@babel/parser-7.5.5.tgz", + "integrity": "sha1-AvB3rIgX099Kgy71neZ1Zeccyks=" + }, + "@babel/traverse": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/traverse/-/@babel/traverse-7.5.5.tgz", + "integrity": "sha1-9mT482jtMpiM1kjan3LVynDxZbs=", + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.5.5", + "@babel/types": "^7.5.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/types/-/@babel/types-7.5.5.tgz", + "integrity": "sha1-l7n3KOGCeFkJqkq1YmTwkKAo0Yo=", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "requires": { + "ms": "^2.1.1" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" + } } }, "@babel/helper-simple-access": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", - "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-simple-access/-/@babel/helper-simple-access-7.1.0.tgz", + "integrity": "sha1-Ze65VMjCRb6qToWdphiPOdceWFw=", "requires": { "@babel/template": "^7.1.0", "@babel/types": "^7.0.0" @@ -285,16 +447,14 @@ "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", - "dev": true, "requires": { "@babel/types": "^7.4.4" } }, "@babel/helper-wrap-function": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", - "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helper-wrap-function/-/@babel/helper-wrap-function-7.2.0.tgz", + "integrity": "sha1-xOABJEV2nigVtVKW6tQ6lYVJ9vo=", "requires": { "@babel/helper-function-name": "^7.1.0", "@babel/template": "^7.1.0", @@ -303,21 +463,90 @@ } }, "@babel/helpers": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.4.tgz", - "integrity": "sha512-6LJ6xwUEJP51w0sIgKyfvFMJvIb9mWAfohJp0+m6eHJigkFdcH8duZ1sfhn0ltJRzwUIT/yqqhdSfRpCpL7oow==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/helpers/-/@babel/helpers-7.5.5.tgz", + "integrity": "sha1-Y5CNKnOUIinR5mhbwqDnMN3jt14=", "requires": { "@babel/template": "^7.4.4", - "@babel/traverse": "^7.5.0", - "@babel/types": "^7.5.0" + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/code-frame/-/@babel/code-frame-7.5.5.tgz", + "integrity": "sha1-vAeC9tafe31JUxIZaZuYj2aaj50=", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/generator": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/generator/-/@babel/generator-7.5.5.tgz", + "integrity": "sha1-hzp/k2o8iUkbQ1NtEiRbYmZk488=", + "requires": { + "@babel/types": "^7.5.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/parser": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/parser/-/@babel/parser-7.5.5.tgz", + "integrity": "sha1-AvB3rIgX099Kgy71neZ1Zeccyks=" + }, + "@babel/traverse": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/traverse/-/@babel/traverse-7.5.5.tgz", + "integrity": "sha1-9mT482jtMpiM1kjan3LVynDxZbs=", + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.5.5", + "@babel/types": "^7.5.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/types/-/@babel/types-7.5.5.tgz", + "integrity": "sha1-l7n3KOGCeFkJqkq1YmTwkKAo0Yo=", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "requires": { + "ms": "^2.1.1" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" + } } }, "@babel/highlight": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", - "dev": true, "requires": { "chalk": "^2.0.0", "esutils": "^2.0.2", @@ -327,22 +556,19 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" } } }, "@babel/parser": { "version": "7.5.0", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.0.tgz", - "integrity": "sha512-I5nW8AhGpOXGCCNYGc+p7ExQIBxRFnS2fd/d862bNOKvmoEPjYPcfIjsfdy0ujagYOIYPczKgD9l3FsgTkAzKA==", - "dev": true + "integrity": "sha512-I5nW8AhGpOXGCCNYGc+p7ExQIBxRFnS2fd/d862bNOKvmoEPjYPcfIjsfdy0ujagYOIYPczKgD9l3FsgTkAzKA==" }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", - "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-proposal-async-generator-functions/-/@babel/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha1-somzBmadzkrSCwJSiJoVdoydQX4=", "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-remap-async-to-generator": "^7.1.0", @@ -351,9 +577,8 @@ }, "@babel/plugin-proposal-dynamic-import": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz", - "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-proposal-dynamic-import/-/@babel/plugin-proposal-dynamic-import-7.5.0.tgz", + "integrity": "sha1-5TIgLbSDhyNpGxCme4zlCeOXxQY=", "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-syntax-dynamic-import": "^7.2.0" @@ -361,19 +586,17 @@ }, "@babel/plugin-proposal-json-strings": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", - "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-proposal-json-strings/-/@babel/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha1-Vo7MRGxhSK5rJn8CVREwiR4p8xc=", "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-syntax-json-strings": "^7.2.0" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.4.tgz", - "integrity": "sha512-KCx0z3y7y8ipZUMAEEJOyNi11lMb/FOPUjjB113tfowgw0c16EGYos7worCKBcUAh2oG+OBnoUhsnTSoLpV9uA==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-proposal-object-rest-spread/-/@babel/plugin-proposal-object-rest-spread-7.5.5.tgz", + "integrity": "sha1-YZOXRPcbp2o65Gte6hilTBbSLlg=", "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-syntax-object-rest-spread": "^7.2.0" @@ -381,9 +604,8 @@ }, "@babel/plugin-proposal-optional-catch-binding": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-proposal-optional-catch-binding/-/@babel/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha1-E12B7baKCB5V5W7EhUHs6AZcOPU=", "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" @@ -391,9 +613,8 @@ }, "@babel/plugin-proposal-unicode-property-regex": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz", - "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-proposal-unicode-property-regex/-/@babel/plugin-proposal-unicode-property-regex-7.4.4.tgz", + "integrity": "sha1-UB/9mCbAuR2iJpByByKsfLHKnHg=", "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-regex": "^7.4.4", @@ -402,27 +623,24 @@ }, "@babel/plugin-syntax-async-generators": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", - "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-syntax-async-generators/-/@babel/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha1-aeHw2zTG9aDPfiszI78VmnbIy38=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-dynamic-import": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", - "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-syntax-dynamic-import/-/@babel/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha1-acFZ/69JmBIhYa2OvF5tH1XfhhI=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-json-strings": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", - "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-syntax-json-strings/-/@babel/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha1-cr0T9v/h0lk4Ep0qGGsR/WKVFHA=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } @@ -431,43 +649,38 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-optional-catch-binding": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-syntax-optional-catch-binding/-/@babel/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha1-qUAT1u2okI3+akd+f57ahWVuz1w=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-typescript": { "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz", - "integrity": "sha512-dGwbSMA1YhVS8+31CnPR7LB4pcbrzcV99wQzby4uAfrkZPYZlQ7ImwdpzLqi6Z6IL02b8IAL379CaMwo0x5Lag==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-syntax-typescript/-/@babel/plugin-syntax-typescript-7.3.3.tgz", + "integrity": "sha1-p8w/ZhGan36+LeU4PM4ZNHPWWZE=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-arrow-functions": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", - "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-arrow-functions/-/@babel/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha1-mur75Nb/xlY7+Pg3IJFijwB3lVA=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-async-to-generator": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz", - "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-async-to-generator/-/@babel/plugin-transform-async-to-generator-7.5.0.tgz", + "integrity": "sha1-iaOEigFmYjtbxIEWS1k2q5R+iH4=", "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0", @@ -476,62 +689,63 @@ }, "@babel/plugin-transform-block-scoped-functions": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", - "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-block-scoped-functions/-/@babel/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha1-XTzBHo1d3XUqpkyRSNDbbLef0ZA=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz", - "integrity": "sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-block-scoping/-/@babel/plugin-transform-block-scoping-7.5.5.tgz", + "integrity": "sha1-o185XlQCgi8Q0hGfb44EXjY5os4=", "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "lodash": "^4.17.11" + "lodash": "^4.17.13" + }, + "dependencies": { + "lodash": { + "version": "4.17.15", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + } } }, "@babel/plugin-transform-classes": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz", - "integrity": "sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-classes/-/@babel/plugin-transform-classes-7.5.5.tgz", + "integrity": "sha1-0JQpnZvWgKFKKg7a44MFrWD7Tek=", "requires": { "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-define-map": "^7.4.4", + "@babel/helper-define-map": "^7.5.5", "@babel/helper-function-name": "^7.1.0", "@babel/helper-optimise-call-expression": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.4.4", + "@babel/helper-replace-supers": "^7.5.5", "@babel/helper-split-export-declaration": "^7.4.4", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", - "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-computed-properties/-/@babel/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha1-g6ffamWIZbHI9kHVEMbzryICFto=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-destructuring": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz", - "integrity": "sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-destructuring/-/@babel/plugin-transform-destructuring-7.5.0.tgz", + "integrity": "sha1-9sCf3+P5RRb/B0/od9t7ye8FhVo=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-dotall-regex": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz", - "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-dotall-regex/-/@babel/plugin-transform-dotall-regex-7.4.4.tgz", + "integrity": "sha1-NhoUi8lRREMSxpRG127R6o5EUMM=", "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-regex": "^7.4.4", @@ -540,18 +754,16 @@ }, "@babel/plugin-transform-duplicate-keys": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz", - "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-duplicate-keys/-/@babel/plugin-transform-duplicate-keys-7.5.0.tgz", + "integrity": "sha1-xdv1EGv4TN9pEiLAl0wSsd+TGFM=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-exponentiation-operator": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", - "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-exponentiation-operator/-/@babel/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha1-pjhoKJ5bQAf3BU1GSRr1FDV2YAg=", "requires": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", "@babel/helper-plugin-utils": "^7.0.0" @@ -559,18 +771,16 @@ }, "@babel/plugin-transform-for-of": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", - "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-for-of/-/@babel/plugin-transform-for-of-7.4.4.tgz", + "integrity": "sha1-Amf8c14kyAi6FzhmxsTRRA/DxVY=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-function-name": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz", - "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-function-name/-/@babel/plugin-transform-function-name-7.4.4.tgz", + "integrity": "sha1-4UNhFquwYQwiWQlISHVKxSMJIq0=", "requires": { "@babel/helper-function-name": "^7.1.0", "@babel/helper-plugin-utils": "^7.0.0" @@ -578,27 +788,24 @@ }, "@babel/plugin-transform-literals": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", - "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-literals/-/@babel/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha1-aQNT6B+SZ9rU/Yz9d+r6hqulPqE=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-member-expression-literals": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz", - "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-member-expression-literals/-/@babel/plugin-transform-member-expression-literals-7.2.0.tgz", + "integrity": "sha1-+hCqXFiiy2r88sn/qMtNiz1Imi0=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-modules-amd": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz", - "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-modules-amd/-/@babel/plugin-transform-modules-amd-7.5.0.tgz", + "integrity": "sha1-7wBDXUbaCllhqnKKHS7P8GPk+5E=", "requires": { "@babel/helper-module-transforms": "^7.1.0", "@babel/helper-plugin-utils": "^7.0.0", @@ -607,9 +814,8 @@ }, "@babel/plugin-transform-modules-commonjs": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz", - "integrity": "sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-modules-commonjs/-/@babel/plugin-transform-modules-commonjs-7.5.0.tgz", + "integrity": "sha1-QlEn5gRSMTYIWO6qR6cdde3tenQ=", "requires": { "@babel/helper-module-transforms": "^7.4.4", "@babel/helper-plugin-utils": "^7.0.0", @@ -619,9 +825,8 @@ }, "@babel/plugin-transform-modules-systemjs": { "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz", - "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-modules-systemjs/-/@babel/plugin-transform-modules-systemjs-7.5.0.tgz", + "integrity": "sha1-51JmoT75QgLbKgYgl3dW9R1S0kk=", "requires": { "@babel/helper-hoist-variables": "^7.4.4", "@babel/helper-plugin-utils": "^7.0.0", @@ -630,9 +835,8 @@ }, "@babel/plugin-transform-modules-umd": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", - "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-modules-umd/-/@babel/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha1-dnjOdRafCHe46yI1U4wHQmjdAa4=", "requires": { "@babel/helper-module-transforms": "^7.1.0", "@babel/helper-plugin-utils": "^7.0.0" @@ -640,37 +844,33 @@ }, "@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz", - "integrity": "sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-named-capturing-groups-regex/-/@babel/plugin-transform-named-capturing-groups-regex-7.4.5.tgz", + "integrity": "sha1-nSaf0oo3AlgZm0KUc2gTpgu90QY=", "requires": { "regexp-tree": "^0.1.6" } }, "@babel/plugin-transform-new-target": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", - "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-new-target/-/@babel/plugin-transform-new-target-7.4.4.tgz", + "integrity": "sha1-GNEgQ4sMye6VpH8scryXaPvtYKU=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-object-super": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", - "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-object-super/-/@babel/plugin-transform-object-super-7.5.5.tgz", + "integrity": "sha1-xwAh34NAc8ZethO4Z5zEo4HRqfk=", "requires": { "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.1.0" + "@babel/helper-replace-supers": "^7.5.5" } }, "@babel/plugin-transform-parameters": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", - "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-parameters/-/@babel/plugin-transform-parameters-7.4.4.tgz", + "integrity": "sha1-dVbPA/MYvScZ/kySLS2Ai+VXHhY=", "requires": { "@babel/helper-call-delegate": "^7.4.4", "@babel/helper-get-function-arity": "^7.0.0", @@ -679,54 +879,48 @@ }, "@babel/plugin-transform-property-literals": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", - "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-property-literals/-/@babel/plugin-transform-property-literals-7.2.0.tgz", + "integrity": "sha1-A+M/ZT9bJcTrVyyYuUhQVbOJ6QU=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-regenerator": { "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", - "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-regenerator/-/@babel/plugin-transform-regenerator-7.4.5.tgz", + "integrity": "sha1-Yp3IJRLFXO4BNB+ye9/LIQNUaA8=", "requires": { "regenerator-transform": "^0.14.0" } }, "@babel/plugin-transform-reserved-words": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz", - "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-reserved-words/-/@babel/plugin-transform-reserved-words-7.2.0.tgz", + "integrity": "sha1-R5Kvh8mYpJNnWX0H/t8CY20uFjQ=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-shorthand-properties": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", - "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-shorthand-properties/-/@babel/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha1-YzOu4vjW7n4oYVRXKYk0o7RhmPA=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-spread": { "version": "7.2.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", - "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-spread/-/@babel/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha1-MQOpq+IvdCttQG7NPNSbd0kZtAY=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-sticky-regex": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", - "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-sticky-regex/-/@babel/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha1-oeRUtZlVYKnB4NU338FQYf0mh+E=", "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-regex": "^7.0.0" @@ -734,9 +928,8 @@ }, "@babel/plugin-transform-template-literals": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", - "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-template-literals/-/@babel/plugin-transform-template-literals-7.4.4.tgz", + "integrity": "sha1-nSj+p7vOY3+3YSoHUJidgyHUvLA=", "requires": { "@babel/helper-annotate-as-pure": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0" @@ -744,29 +937,26 @@ }, "@babel/plugin-transform-typeof-symbol": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", - "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-typeof-symbol/-/@babel/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha1-EX0rzsL79ktLWdH5gZiUaC0p8rI=", "requires": { "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-typescript": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.5.2.tgz", - "integrity": "sha512-r4zJOMbKY5puETm8+cIpaa0RQZG/sSASW1u0pj8qYklcERgVIbxVbP2wyJA7zI1//h7lEagQmXi9IL9iI5rfsA==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-typescript/-/@babel/plugin-transform-typescript-7.5.5.tgz", + "integrity": "sha1-bYYnZvCbLaHLH31QX+Ku2ra31Lg=", "requires": { - "@babel/helper-create-class-features-plugin": "^7.5.0", + "@babel/helper-create-class-features-plugin": "^7.5.5", "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-syntax-typescript": "^7.2.0" } }, "@babel/plugin-transform-unicode-regex": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz", - "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/plugin-transform-unicode-regex/-/@babel/plugin-transform-unicode-regex-7.4.4.tgz", + "integrity": "sha1-q0Y0u08U02cov1l4Mis1WHeHlw8=", "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/helper-regex": "^7.4.4", @@ -795,17 +985,16 @@ } }, "@babel/preset-env": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.5.4.tgz", - "integrity": "sha512-hFnFnouyRNiH1rL8YkX1ANCNAUVC8Djwdqfev8i1415tnAG+7hlA5zhZ0Q/3Q5gkop4HioIPbCEWAalqcbxRoQ==", - "dev": true, + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/preset-env/-/@babel/preset-env-7.5.5.tgz", + "integrity": "sha1-vEcLU6yqSN9LjbJKVw1tof71PJo=", "requires": { "@babel/helper-module-imports": "^7.0.0", "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-async-generator-functions": "^7.2.0", "@babel/plugin-proposal-dynamic-import": "^7.5.0", "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.5.4", + "@babel/plugin-proposal-object-rest-spread": "^7.5.5", "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", "@babel/plugin-syntax-async-generators": "^7.2.0", @@ -816,8 +1005,8 @@ "@babel/plugin-transform-arrow-functions": "^7.2.0", "@babel/plugin-transform-async-to-generator": "^7.5.0", "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.4.4", - "@babel/plugin-transform-classes": "^7.4.4", + "@babel/plugin-transform-block-scoping": "^7.5.5", + "@babel/plugin-transform-classes": "^7.5.5", "@babel/plugin-transform-computed-properties": "^7.2.0", "@babel/plugin-transform-destructuring": "^7.5.0", "@babel/plugin-transform-dotall-regex": "^7.4.4", @@ -833,7 +1022,7 @@ "@babel/plugin-transform-modules-umd": "^7.2.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", "@babel/plugin-transform-new-target": "^7.4.4", - "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-object-super": "^7.5.5", "@babel/plugin-transform-parameters": "^7.4.4", "@babel/plugin-transform-property-literals": "^7.2.0", "@babel/plugin-transform-regenerator": "^7.4.5", @@ -844,24 +1033,60 @@ "@babel/plugin-transform-template-literals": "^7.4.4", "@babel/plugin-transform-typeof-symbol": "^7.2.0", "@babel/plugin-transform-unicode-regex": "^7.4.4", - "@babel/types": "^7.5.0", + "@babel/types": "^7.5.5", "browserslist": "^4.6.0", "core-js-compat": "^3.1.1", "invariant": "^2.2.2", "js-levenshtein": "^1.1.3", "semver": "^5.5.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/types/-/@babel/types-7.5.5.tgz", + "integrity": "sha1-l7n3KOGCeFkJqkq1YmTwkKAo0Yo=", + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + } } }, "@babel/preset-typescript": { "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.3.3.tgz", - "integrity": "sha512-mzMVuIP4lqtn4du2ynEfdO0+RYcslwrZiJHXu4MGaC1ctJiW2fyaeDrtjJGs7R/KebZ1sgowcIoWf4uRpEfKEg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/preset-typescript/-/@babel/preset-typescript-7.3.3.tgz", + "integrity": "sha1-iGaZEQU/oWsrJ26i7eLKYDs/MHo=", "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-transform-typescript": "^7.3.2" } }, + "@babel/register": { + "version": "7.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@babel/register/-/@babel/register-7.5.5.tgz", + "integrity": "sha1-QP4NR0yMhYeyjWrhigPt2tPaw8E=", + "requires": { + "core-js": "^3.0.0", + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "mkdirp": "^0.5.1", + "pirates": "^4.0.0", + "source-map-support": "^0.5.9" + }, + "dependencies": { + "lodash": { + "version": "4.17.15", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg=" + } + } + }, "@babel/runtime": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.1.2.tgz", @@ -881,7 +1106,6 @@ "version": "7.4.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", - "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "@babel/parser": "^7.4.4", @@ -892,7 +1116,6 @@ "version": "7.5.0", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.0.tgz", "integrity": "sha512-SnA9aLbyOCcnnbQEGwdfBggnc142h/rbqqsXcaATj2hZcegCl903pUD/lfpsNBlBSuWow/YDfRyJuWi2EPR5cg==", - "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "@babel/generator": "^7.5.0", @@ -909,7 +1132,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, "requires": { "ms": "^2.1.1" } @@ -917,8 +1139,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -926,7 +1147,6 @@ "version": "7.5.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.0.tgz", "integrity": "sha512-UFpDVqRABKsW01bvw7/wSUe56uy6RXM5+VJibVVAybDGxEW25jdwiFJEf7ASvSaC7sN7rbE/l3cLp2izav+CtQ==", - "dev": true, "requires": { "esutils": "^2.0.2", "lodash": "^4.17.11", @@ -1609,7 +1829,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -1713,10 +1932,9 @@ "optional": true }, "async-limiter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", - "dev": true + "version": "1.0.1", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=" }, "asynckit": { "version": "0.4.0", @@ -1802,9 +2020,8 @@ }, "babel-plugin-dynamic-import-node": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha1-8A9Qe9qjw+P/bn5emNkKesq5b38=", "requires": { "object.assign": "^4.1.0" } @@ -1926,63 +2143,139 @@ "optional": true }, "botbuilder": { - "version": "4.5.0-RC4", - "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botbuilder/-/botbuilder-4.5.0-RC4.tgz", - "integrity": "sha1-LJkIoUYQ8wO32pAIJpg17zlh7wg=", + "version": "4.6.0-preview.76616", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botbuilder/-/botbuilder-4.6.0-preview.76616.tgz", + "integrity": "sha1-5dLVWMQzw4AD7VIu22T6OFHCap0=", "requires": { "@types/node": "^10.12.18", - "botbuilder-core": "^4.5.0-RC4", - "botframework-connector": "^4.5.0-RC4", + "botbuilder-core": "^4.6.0-preview.76616", + "botframework-connector": "^4.6.0-preview.76616", "filenamify": "^4.1.0", "fs-extra": "^7.0.1" }, "dependencies": { "@types/node": { - "version": "10.14.12", - "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@types/node/-/@types/node-10.14.12.tgz", - "integrity": "sha1-DuwxVaRubE2x8nw+WIogX3Z9Yi8=" + "version": "10.14.16", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@types/node/-/@types/node-10.14.16.tgz", + "integrity": "sha1-TWkMlsu3snKK/qDiYNaAUBs9pc8=" } } }, "botbuilder-core": { - "version": "4.5.0-RC4", - "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botbuilder-core/-/botbuilder-core-4.5.0-RC4.tgz", - "integrity": "sha1-4dvCPicTb/oeReM7FD9W/KNGMc4=", + "version": "4.6.0-preview.76616", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botbuilder-core/-/botbuilder-core-4.6.0-preview.76616.tgz", + "integrity": "sha1-ijtbX+HJsDmW3wIIovu1W2mRUOs=", "requires": { "assert": "^1.4.1", - "botframework-schema": "^4.5.0-RC4" + "botframework-schema": "^4.6.0-preview.76616" } }, "botbuilder-dialogs": { - "version": "4.5.0-RC4", - "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botbuilder-dialogs/-/botbuilder-dialogs-4.5.0-RC4.tgz", - "integrity": "sha1-nEj4b9atAoXQtlvXJlLRkefb1tw=", + "version": "4.6.0-preview.76616", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botbuilder-dialogs/-/botbuilder-dialogs-4.6.0-preview.76616.tgz", + "integrity": "sha1-fvpKhvEXXKyEazmeHmEJdDQhgm8=", "requires": { "@microsoft/recognizers-text-choice": "1.1.2", "@microsoft/recognizers-text-date-time": "1.1.2", "@microsoft/recognizers-text-number": "1.1.2", "@microsoft/recognizers-text-suite": "1.1.2", "@types/node": "^10.12.18", - "botbuilder-core": "^4.5.0-RC4" + "botbuilder-core": "^4.6.0-preview.76616" }, "dependencies": { "@types/node": { - "version": "10.14.12", - "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@types/node/-/@types/node-10.14.12.tgz", - "integrity": "sha1-DuwxVaRubE2x8nw+WIogX3Z9Yi8=" + "version": "10.14.16", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@types/node/-/@types/node-10.14.16.tgz", + "integrity": "sha1-TWkMlsu3snKK/qDiYNaAUBs9pc8=" + } + } + }, + "botbuilder-streaming-extensions": { + "version": "4.6.0-preview.76590", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botbuilder-streaming-extensions/-/botbuilder-streaming-extensions-4.6.0-preview.76590.tgz", + "integrity": "sha1-V2992MW8Ttf5kyaDGNfx/dok3vo=", + "requires": { + "@azure/ms-rest-js": "1.2.6", + "botbuilder": "~4.5.1", + "botbuilder-core": "~4.5.1", + "botframework-connector": "~4.5.1", + "botframework-schema": "~4.5.1", + "botframework-streaming-extensions": "4.6.0-preview.76590", + "promise.prototype.finally": "^3.1.0", + "uuid": "^3.3.2", + "watershed": "^0.4.0" + }, + "dependencies": { + "@types/node": { + "version": "10.14.16", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@types/node/-/@types/node-10.14.16.tgz", + "integrity": "sha1-TWkMlsu3snKK/qDiYNaAUBs9pc8=" + }, + "botbuilder": { + "version": "4.5.3", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botbuilder/-/botbuilder-4.5.3.tgz", + "integrity": "sha1-Z8wYksu4WRGU/Uoh+RgG4AN1iGQ=", + "requires": { + "@types/node": "^10.12.18", + "botbuilder-core": "^4.5.3", + "botframework-connector": "^4.5.3", + "filenamify": "^4.1.0", + "fs-extra": "^7.0.1" + } + }, + "botbuilder-core": { + "version": "4.5.3", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botbuilder-core/-/botbuilder-core-4.5.3.tgz", + "integrity": "sha1-p+qqlLxR77HNnLnf1wb/Evai66M=", + "requires": { + "assert": "^1.4.1", + "botframework-schema": "^4.5.3" + } + }, + "botframework-connector": { + "version": "4.5.3", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botframework-connector/-/botframework-connector-4.5.3.tgz", + "integrity": "sha1-bphCPYwMX38enNb7rMztz6oIQEI=", + "requires": { + "@azure/ms-rest-js": "1.2.6", + "@types/jsonwebtoken": "7.2.8", + "@types/node": "^10.12.18", + "base64url": "^3.0.0", + "botframework-schema": "^4.5.3", + "form-data": "^2.3.3", + "jsonwebtoken": "8.0.1", + "nock": "^10.0.3", + "node-fetch": "^2.2.1", + "rsa-pem-from-mod-exp": "^0.8.4" + } + }, + "botframework-schema": { + "version": "4.5.3", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botframework-schema/-/botframework-schema-4.5.3.tgz", + "integrity": "sha1-j0F2bsPGJD3QZf0bYvzw7x+4xY8=" + }, + "form-data": { + "version": "2.5.0", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/form-data/-/form-data-2.5.0.tgz", + "integrity": "sha1-CU7DWdxLVefWLg20rNduif6HTTc=", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } } } }, "botframework-connector": { - "version": "4.5.0-RC4", - "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botframework-connector/-/botframework-connector-4.5.0-RC4.tgz", - "integrity": "sha1-Nj1UDkIbnIzqOXciSiuddNlR/co=", + "version": "4.6.0-preview.76616", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botframework-connector/-/botframework-connector-4.6.0-preview.76616.tgz", + "integrity": "sha1-uv7FdOXUvsIhpJ1LDMbz0GCckYg=", "requires": { "@azure/ms-rest-js": "1.2.6", "@types/jsonwebtoken": "7.2.8", "@types/node": "^10.12.18", "base64url": "^3.0.0", - "botframework-schema": "^4.5.0-RC4", + "botframework-schema": "^4.6.0-preview.76616", "form-data": "^2.3.3", "jsonwebtoken": "8.0.1", "nock": "^10.0.3", @@ -1991,9 +2284,9 @@ }, "dependencies": { "@types/node": { - "version": "10.14.12", - "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@types/node/-/@types/node-10.14.12.tgz", - "integrity": "sha1-DuwxVaRubE2x8nw+WIogX3Z9Yi8=" + "version": "10.14.16", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/@types/node/-/@types/node-10.14.16.tgz", + "integrity": "sha1-TWkMlsu3snKK/qDiYNaAUBs9pc8=" }, "form-data": { "version": "2.5.0", @@ -2008,9 +2301,19 @@ } }, "botframework-schema": { - "version": "4.5.0-RC4", - "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botframework-schema/-/botframework-schema-4.5.0-RC4.tgz", - "integrity": "sha1-4LCprhubXFAIyPnVVa+M/+/LNWo=" + "version": "4.6.0-preview.76616", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botframework-schema/-/botframework-schema-4.6.0-preview.76616.tgz", + "integrity": "sha1-X926z6Ui3QRIw6SiAkPd/3TGqoI=" + }, + "botframework-streaming-extensions": { + "version": "4.6.0-preview.76590", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/botframework-streaming-extensions/-/botframework-streaming-extensions-4.6.0-preview.76590.tgz", + "integrity": "sha1-9NFzDktcZu1+rEpnUWU5nR5Uawc=", + "requires": { + "promise.prototype.finally": "^3.1.0", + "uuid": "^3.3.2", + "watershed": "^0.4.0" + } }, "brace-expansion": { "version": "1.1.11", @@ -2074,13 +2377,12 @@ } }, "browserslist": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.4.tgz", - "integrity": "sha512-ErJT8qGfRt/VWHSr1HeqZzz50DvxHtr1fVL1m5wf20aGrG8e1ce8fpZ2EjZEfs09DDZYSvtRaDlMpWslBf8Low==", - "dev": true, + "version": "4.6.6", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/browserslist/-/browserslist-4.6.6.tgz", + "integrity": "sha1-bkv0Z83lILydvfN0fa+gNTHOxFM=", "requires": { - "caniuse-lite": "^1.0.30000981", - "electron-to-chromium": "^1.3.188", + "caniuse-lite": "^1.0.30000984", + "electron-to-chromium": "^1.3.191", "node-releases": "^1.1.25" } }, @@ -2110,8 +2412,7 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "builtin-modules": { "version": "1.1.1", @@ -2183,10 +2484,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000981", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000981.tgz", - "integrity": "sha512-JTByHj4DQgL2crHNMK6PibqAMrqqb/Vvh0JrsTJVSWG4VSUrT16EklkuRZofurlMjgA9e+zlCM4Y39F3kootMQ==", - "dev": true + "version": "1.0.30000989", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz", + "integrity": "sha1-uRk+KTzPfkQmxSRRNLjypWwKxLk=" }, "capture-exit": { "version": "2.0.0", @@ -2230,7 +2530,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -2374,7 +2673,6 @@ "version": "1.9.2", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", - "dev": true, "requires": { "color-name": "1.1.1" } @@ -2382,8 +2680,7 @@ "color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", - "dev": true + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=" }, "colors": { "version": "1.0.3", @@ -2405,6 +2702,11 @@ "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "dev": true }, + "commondir": { + "version": "1.0.1", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, "component-emitter": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", @@ -2485,8 +2787,7 @@ "convert-source-map": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", - "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", - "dev": true + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=" }, "copy-descriptor": { "version": "0.1.1", @@ -2494,31 +2795,27 @@ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, + "core-js": { + "version": "3.2.1", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/core-js/-/core-js-3.2.1.tgz", + "integrity": "sha1-zUHzhTTabMWffbBQ/mcwfemGiwk=" + }, "core-js-compat": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.1.4.tgz", - "integrity": "sha512-Z5zbO9f1d0YrJdoaQhphVAnKPimX92D6z8lCGphH89MNRxlL1prI9ExJPqVwP0/kgkQCv8c4GJGT8X16yUncOg==", - "dev": true, + "version": "3.2.1", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/core-js-compat/-/core-js-compat-3.2.1.tgz", + "integrity": "sha1-DL28LjhujgDTuF3IHISO/+xbgVA=", "requires": { - "browserslist": "^4.6.2", - "core-js-pure": "3.1.4", - "semver": "^6.1.1" + "browserslist": "^4.6.6", + "semver": "^6.3.0" }, "dependencies": { "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true + "version": "6.3.0", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/semver/-/semver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=" } } }, - "core-js-pure": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.1.4.tgz", - "integrity": "sha512-uJ4Z7iPNwiu1foygbcZYJsJs1jiXrTTCvxfLDXNhI/I+NHbSIEyr548y4fcsCEyWY0XgfAG/qqaunJ1SThHenA==", - "dev": true - }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -2687,7 +2984,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "requires": { "object-keys": "^1.0.12" } @@ -2778,7 +3074,6 @@ "version": "0.8.7", "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.7.tgz", "integrity": "sha1-3JObTT4GIM/gwc2APQ0tftBP/QQ=", - "optional": true, "requires": { "nan": "^2.10.0" } @@ -2834,10 +3129,9 @@ } }, "electron-to-chromium": { - "version": "1.3.188", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.188.tgz", - "integrity": "sha512-tEQcughYIMj8WDMc59EGEtNxdGgwal/oLLTDw+NEqJRJwGflQvH3aiyiexrWeZOETP4/ko78PVr6gwNhdozvuQ==", - "dev": true + "version": "1.3.244", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/electron-to-chromium/-/electron-to-chromium-1.3.244.tgz", + "integrity": "sha1-e6VGH6MgqxZUCjGx0N77fsKbFuQ=" }, "end-of-stream": { "version": "1.4.1", @@ -2861,7 +3155,6 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", - "dev": true, "requires": { "es-to-primitive": "^1.2.0", "function-bind": "^1.1.1", @@ -2875,7 +3168,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", - "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -2929,8 +3221,7 @@ "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" }, "ewma": { "version": "2.0.1", @@ -3207,6 +3498,16 @@ } } }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, "find-my-way": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-1.18.1.tgz", @@ -3866,8 +4167,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-caller-file": { "version": "1.0.3", @@ -3964,8 +4264,7 @@ "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, "graceful-fs": { "version": "4.1.11", @@ -4028,7 +4327,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -4036,14 +4334,12 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" }, "has-value": { "version": "1.0.0", @@ -4176,7 +4472,6 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, "requires": { "loose-envify": "^1.0.0" } @@ -4247,8 +4542,7 @@ "is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" }, "is-ci": { "version": "2.0.0", @@ -4282,8 +4576,7 @@ "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" }, "is-descriptor": { "version": "0.1.6", @@ -4393,7 +4686,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true, "requires": { "has": "^1.0.1" } @@ -4408,7 +4700,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", - "dev": true, "requires": { "has-symbols": "^1.0.0" } @@ -5288,15 +5579,13 @@ }, "js-levenshtein": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=" }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" }, "jsbn": { "version": "0.1.1", @@ -5336,13 +5625,23 @@ "whatwg-url": "^6.4.1", "ws": "^5.2.0", "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "ws": { + "version": "5.2.2", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/ws/-/ws-5.2.2.tgz", + "integrity": "sha1-3/7xSGa46NyRM1glFNG++vlumA8=", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } } }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, "json-parse-better-errors": { "version": "1.0.2", @@ -5370,7 +5669,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", - "dev": true, "requires": { "minimist": "^1.2.0" }, @@ -5378,8 +5676,7 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" } } }, @@ -5700,7 +5997,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "requires": { "js-tokens": "^3.0.0 || ^4.0.0" } @@ -5728,7 +6024,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, "requires": { "pify": "^4.0.1", "semver": "^5.6.0" @@ -5737,14 +6032,12 @@ "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" }, "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" } } }, @@ -6000,8 +6293,7 @@ "nan": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", - "optional": true + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" }, "nanomatch": { "version": "1.2.13", @@ -6142,8 +6434,7 @@ "node-modules-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" }, "node-notifier": { "version": "5.4.0", @@ -6159,10 +6450,9 @@ } }, "node-releases": { - "version": "1.1.25", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.25.tgz", - "integrity": "sha512-fI5BXuk83lKEoZDdH3gRhtsNgh05/wZacuXkgbiYkceE7+QIMXOg98n9ZV7mz27B+kFHnqHcUpscZZlGRSmTpQ==", - "dev": true, + "version": "1.1.28", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/node-releases/-/node-releases-1.1.28.tgz", + "integrity": "sha1-UDw8cNDkcyuE56qikl+93hBILUo=", "requires": { "semver": "^5.3.0" } @@ -6254,8 +6544,7 @@ "object-keys": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", - "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", - "dev": true + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==" }, "object-visit": { "version": "1.0.1", @@ -6268,9 +6557,8 @@ }, "object.assign": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", "requires": { "define-properties": "^1.1.2", "function-bind": "^1.1.1", @@ -6461,8 +6749,7 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" }, "path-is-absolute": { "version": "1.0.1", @@ -6483,8 +6770,7 @@ "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "path-to-regexp": { "version": "2.2.1", @@ -6543,7 +6829,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, "requires": { "node-modules-regexp": "^1.0.0" } @@ -6552,7 +6837,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, "requires": { "find-up": "^3.0.0" }, @@ -6561,7 +6845,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, "requires": { "locate-path": "^3.0.0" } @@ -6570,7 +6853,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -6580,7 +6862,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", - "dev": true, "requires": { "p-try": "^2.0.0" } @@ -6589,7 +6870,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, "requires": { "p-limit": "^2.0.0" } @@ -6597,8 +6877,7 @@ "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" } } }, @@ -6650,15 +6929,24 @@ }, "private": { "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/private/-/private-0.1.8.tgz", + "integrity": "sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8=" }, "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, + "promise.prototype.finally": { + "version": "3.1.1", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/promise.prototype.finally/-/promise.prototype.finally-3.1.1.tgz", + "integrity": "sha1-yyedOlAgymQDs9kjV/jiLVDtkqo=", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.13.0", + "function-bind": "^1.1.1" + } + }, "prompts": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.1.0.tgz", @@ -6817,24 +7105,21 @@ }, "regenerate": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha1-SoVuxLVuQHfFV1icroXnpMiGmhE=" }, "regenerate-unicode-properties": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha1-71Hg8OpK1CS3e/fLQfPgFccKPw4=", "requires": { "regenerate": "^1.4.0" } }, "regenerator-transform": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.0.tgz", - "integrity": "sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==", - "dev": true, + "version": "0.14.1", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha1-Oy/OThq3cywI9mXf2zFHScfd0vs=", "requires": { "private": "^0.1.6" } @@ -6850,19 +7135,17 @@ } }, "regexp-tree": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.11.tgz", - "integrity": "sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg==", - "dev": true + "version": "0.1.12", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/regexp-tree/-/regexp-tree-0.1.12.tgz", + "integrity": "sha1-KOqqbmbus1J8FRCKP/dA2eV05CA=" }, "regexpu-core": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", - "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", - "dev": true, + "version": "4.5.5", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/regexpu-core/-/regexpu-core-4.5.5.tgz", + "integrity": "sha1-qv/mHCr1gmmz5Ra2GnN5A3YyZBE=", "requires": { "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.0.2", + "regenerate-unicode-properties": "^8.1.0", "regjsgen": "^0.5.0", "regjsparser": "^0.6.0", "unicode-match-property-ecmascript": "^1.0.4", @@ -6871,24 +7154,21 @@ }, "regjsgen": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", - "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", - "dev": true + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha1-p2NNwI+JIJwgSa3aNSVxH7lyZd0=" }, "regjsparser": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha1-8eaui32iuulsmTmbhozWyTOiupw=", "requires": { "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" } } }, @@ -6983,7 +7263,6 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", - "dev": true, "requires": { "path-parse": "^1.0.5" } @@ -7376,8 +7655,7 @@ "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" }, "source-map-resolve": { "version": "0.5.2", @@ -7396,7 +7674,6 @@ "version": "0.5.12", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -7405,8 +7682,7 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" } } }, @@ -7651,7 +7927,6 @@ "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -7793,8 +8068,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, "to-object-path": { "version": "0.3.0", @@ -7894,8 +8168,7 @@ "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" }, "ts-jest": { "version": "24.0.2", @@ -7993,15 +8266,13 @@ }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=" }, "unicode-match-property-ecmascript": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", "requires": { "unicode-canonical-property-names-ecmascript": "^1.0.4", "unicode-property-aliases-ecmascript": "^1.0.4" @@ -8009,15 +8280,13 @@ }, "unicode-match-property-value-ecmascript": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", - "dev": true + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha1-W0tCbgjROoA2Xg1lesemwexGonc=" }, "unicode-property-aliases-ecmascript": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", - "dev": true + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha1-qcxsx85joKMCP8meNBuUQx1AWlc=" }, "union-value": { "version": "1.0.0", @@ -8223,6 +8492,22 @@ "makeerror": "1.0.x" } }, + "watershed": { + "version": "0.4.0", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/watershed/-/watershed-0.4.0.tgz", + "integrity": "sha1-5BJLh3EptHZSJHdn63IgKfgJVTE=", + "requires": { + "dtrace-provider": "~0.8", + "readable-stream": "1.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.2", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/readable-stream/-/readable-stream-1.0.2.tgz", + "integrity": "sha1-ITzjaGT8Hw1OmOA7nrksZAQimdQ=" + } + } + }, "wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", @@ -8333,12 +8618,11 @@ } }, "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", - "dev": true, + "version": "7.1.2", + "resolved": "https://botbuilder.myget.org/F/botbuilder-v4-js-daily/npm/ws/-/ws-7.1.2.tgz", + "integrity": "sha1-xnLRYp3ouyepaZ61mb5Hru7dj3M=", "requires": { - "async-limiter": "~1.0.0" + "async-limiter": "^1.0.0" } }, "xml-name-validator": { diff --git a/package.json b/package.json index 07c57fb..b798001 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,6 @@ "build:babel": "babel --extensions .js,.ts,.tsx --ignore **/*.spec.js,**/*.spec.ts,**/*.spec.tsx,**/*.test.js,**/*.test.ts,**/*.test.tsx,__test__/**/*.js,__test__/**/*.ts,__test__/**/*.tsx --out-dir lib --source-maps inline --verbose src", "build:typecheck": "tsc", "clean": "rimraf lib", - "postinstall": "npm run build", "start": "concurrently --allow-restart --names \"babel,start,typecheck\" \"npm run build:babel -- --watch\" \"node-dev --no-notify --respawn .\" \"npm run build:typecheck -- --preserveWatchOutput --watch\"", "watch": "echo Error: \"npm run watch\" has been renamed to \"npm run start\"." }, @@ -29,23 +28,27 @@ "author": "Microsoft Corporation", "license": "MIT", "dependencies": { + "@babel/core": "^7.5.5", "@babel/polyfill": "^7.4.4", + "@babel/preset-env": "^7.5.5", + "@babel/preset-typescript": "^7.3.3", + "@babel/register": "^7.5.5", "auto-reset-event": "^1.0.0", - "botbuilder": "^4.5.0-RC4", - "botbuilder-dialogs": "^4.5.0-RC4", + "botbuilder": "^4.6.0-preview.76616", + "botbuilder-dialogs": "^4.6.0-preview.76616", + "botbuilder-streaming-extensions": "^4.6.0-preview.76590", + "botframework-streaming-extensions": "^4.6.0-preview.76590", "delay": "^4.3.0", "dotenv": "^8.0.0", "node-fetch": "^2.6.0", "on-error-resume-next": "^1.1.0", "pretty-ms": "^5.0.0", "restify": "^7.7.0", - "serve-handler": "^3.6.1" + "serve-handler": "^3.6.1", + "ws": "^7.1.2" }, "devDependencies": { "@babel/cli": "^7.5.0", - "@babel/core": "^7.5.4", - "@babel/preset-env": "^7.5.4", - "@babel/preset-typescript": "^7.3.3", "@types/node": "^12.6.1", "babel-core": "^7.0.0-bridge.0", "babel-jest": "^24.8.0", diff --git a/server.js b/server.js new file mode 100644 index 0000000..9589580 --- /dev/null +++ b/server.js @@ -0,0 +1,7 @@ +// This is the entry point for Azure Web App via IIS and Kudu + +require('@babel/register')({ + ...require('./.babelrc'), + extensions: [".js", ".ts"] +}); +require('./src/index.ts'); diff --git a/src/Bot.ts b/src/Bot.ts new file mode 100644 index 0000000..e21b53d --- /dev/null +++ b/src/Bot.ts @@ -0,0 +1,199 @@ +import { ActivityHandler } from 'botbuilder'; + +import * as OAuthCard from './commands/OAuthCard2'; +import commands from './commands'; +import reduceMap from './reduceMap'; + +let echoTypingConversations = new Set(); + +const LOG_LENGTH = 20; + +export default class Bot extends ActivityHandler { + logs: any[]; + numActivities: number; + + constructor() { + super(); + + this.logs = []; + this.numActivities = 0; + + const logActivity = ({ activity }) => { + this.numActivities++; + + this.logs.push({ + direction: 'incoming', + now: new Date().toISOString(), + activity + }); + + this.logs.splice(0, Math.max(0, this.logs.length - LOG_LENGTH)); + }; + + const patchContext = context => { + const originalSendActivity = context.sendActivity.bind(context); + + context.sendActivity = (...args) => { + let activity = args[0]; + + if (typeof activity === 'string') { + activity = { + type: 'message', + text: activity + }; + } + + this.logs.push({ + direction: 'outgoing', + now: new Date().toISOString(), + activity + }); + + return originalSendActivity(...args); + }; + + return context; + }; + + this.onEvent(async (context, next) => { + context = patchContext(context); + logActivity(context); + + const { activity: { name, value } } = context; + + if (name === 'tokens/response') { + // Special handling for OAuth token exchange + // This event is sent thru the non-magic code flow + await OAuthCard.processor(context); + } else if (name === 'webchat/join') { + await context.sendActivity(`Got \`webchat/join\` event, your language is \`${ (value || {}).language }\``); + } else if (name === 'webchat/ping') { + await context.sendActivity({ type: 'event', name: 'webchat/pong', value: value }); + } + + await next(); + }); + + this.onMessage(async (context, next) => { + context = patchContext(context); + logActivity(context); + + const { activity: { attachments = [], text } } = context; + const cleanedText = (text || '').trim().replace(/\.$/, ''); + const command = commands.find(({ pattern }) => pattern.test(cleanedText)); + + if (command) { + const { mode, pattern, processor } = command; + const match = pattern.exec(cleanedText); + + if (mode === 'line') { + await processor(context, cleanedText); + } else { + await processor(context, ...[].slice.call(match, 1)); + } + } else if (/^echo-typing$/i.test(cleanedText)) { + // We should "echoTyping" in a per-conversation basis + const { id: conversationID } = context.activity.conversation; + + if (echoTypingConversations.has(conversationID)) { + echoTypingConversations.delete(conversationID); + await context.sendActivity('Will stop echoing `"typing"` event'); + } else { + echoTypingConversations.add(conversationID); + await context.sendActivity('Will echo `"typing"` event'); + } + } else if (/^help$/i.test(cleanedText)) { + const attachments = commands.map(({ help, name }) => { + return { + contentType: 'application/vnd.microsoft.card.thumbnail', + content: { + buttons: reduceMap( + help(), + (result: [], title: string, value: string) => [ + ...result, + { + title, + type: 'imBack', + value + } + ], + [] + ).sort(({ title: x }, { title: y }) => x > y ? 1 : x < y ? -1 : 0), + title: name + } + }; + }); + + await context.sendActivity({ + attachments: attachments.sort(({ content: { title: x } }, { content: { title: y } }) => x > y ? 1 : x < y ? -1 : 0) + }); + } else if (/^help simple$/i.test(cleanedText)) { + await context.sendActivity(`### Commands\r\n\r\n${ commands.map(({ pattern }) => `- \`${ pattern.source }\``).sort().join('\r\n') }`); + } else if (attachments.length) { + const { processor } = commands.find(({ pattern }) => pattern.test('upload')); + + await processor(context, attachments); + } else if (context.activity.value) { + const { text, value } = context.activity; + const attachments = []; + + text && attachments.push({ + content: text, + contentType: 'text/plain' + }); + + value && attachments.push({ + content: `\`\`\`\n${ JSON.stringify(value, null, 2) }\n\`\`\``, + contentType: 'text/markdown' + }); + + await context.sendActivity({ + text: 'You posted', + type: 'message', + attachments + }); + } else { + await context.sendActivity({ + speak: `Unknown command: I don't know ${ cleanedText }. You can say "help" to learn more.`, + text: `Unknown command: \`${ cleanedText }\`.\r\n\r\nType \`help\` to learn more.`, + type: 'message' + }); + } + + await next(); + }); + + this.onMessageReaction(async (context, next) => { + context = patchContext(context); + logActivity(context); + + const { activity: { reactionsAdded = [], reactionsRemoved = [] }} = context; + const attachments = [...reactionsAdded, ...reactionsRemoved].map(reaction => ({ + content: `\`\`\`\n${ JSON.stringify(reaction, null, 2) }\n\`\`\``, + contentType: 'text/markdown' + })); + + await context.sendActivity({ + text: 'You posted', + type: 'message', + attachments + }); + + await next(); + }); + + this.onUnrecognizedActivityType(async (context, next) => { + if (context.activity.type === 'typing') { + context = patchContext(context); + logActivity(context); + + if (echoTypingConversations.has(context.activity.conversation.id)) { + await context.sendActivity({ type: 'typing' }); + } + + } + + await next(); + }); + } +} diff --git a/src/commands/InputHint.ts b/src/commands/InputHint.ts index a86d01d..67305a3 100644 --- a/src/commands/InputHint.ts +++ b/src/commands/InputHint.ts @@ -1,4 +1,3 @@ -import { BotFrameworkAdapter } from 'botbuilder'; import { TurnContext } from 'botbuilder'; const name = 'Input hint'; @@ -11,13 +10,16 @@ function help() { }; } -async function sendInputHint(reference, inputHint) { - const adapter = new BotFrameworkAdapter({ - appId: process.env.MICROSOFT_APP_ID, - appPassword: process.env.MICROSOFT_APP_PASSWORD - }); +function sleep(ms = 1000) { + return new Promise(resolve => setTimeout(resolve, ms)); +} +async function sendInputHint(adapter, reference, inputHint) { await adapter.continueConversation(reference, async context => { + // HACK: Resume conversation too fast will fail in streaming extensions + // https://github.com/microsoft/botbuilder-js/issues/1142 + await sleep(1000); + switch ((inputHint || '').trim().substr(0, 1)) { case 'a': await context.sendActivity({ @@ -50,14 +52,14 @@ async function sendInputHint(reference, inputHint) { } async function processor(context: TurnContext, ...inputHints: string[]) { - (async function (reference) { + (async function (adapter, reference) { // This loop is intentionally executed in a serial manner (instead of using Promise.all for parallelism) while (inputHints.length) { const inputHint = inputHints.shift(); - inputHint && await sendInputHint(reference, inputHint); + inputHint && await sendInputHint(adapter, reference, inputHint); } - })(TurnContext.getConversationReference(context.activity)); + })(context.adapter, TurnContext.getConversationReference(context.activity)); } export { help, name, processor } diff --git a/src/commands/Proactive.ts b/src/commands/Proactive.ts index 6655342..e498ea7 100644 --- a/src/commands/Proactive.ts +++ b/src/commands/Proactive.ts @@ -1,4 +1,3 @@ -import { BotFrameworkAdapter } from 'botbuilder'; import { TurnContext } from 'botbuilder'; const name = 'Proactive message'; @@ -22,23 +21,18 @@ async function processor(context: TurnContext) { }] }); - (async function (reference) { + (async function (adapter, reference) { // We specifically write this block of code to show how proactive message should work. // This block of code should run under another process and it will only have knowledge of adapter setup and conversation reference. await sleep(WAIT_INTERVAL); - const adapter = new BotFrameworkAdapter({ - appId: process.env.MICROSOFT_APP_ID, - appPassword: process.env.MICROSOFT_APP_PASSWORD - }); - await adapter.continueConversation(reference, async continuedContext => { await continuedContext.sendActivity({ text: 'This is a proactive message.', type: 'message' }); }); - })(reference); + })(context.adapter, reference); } function sleep(ms) { diff --git a/src/generateDirectLineToken.js b/src/generateDirectLineToken.js index c9109de..1d63503 100644 --- a/src/generateDirectLineToken.js +++ b/src/generateDirectLineToken.js @@ -1,8 +1,8 @@ import createUserID from './createUserID'; -const { DIRECT_LINE_URL = 'https://directline.botframework.com/' } = process.env +const { DIRECT_LINE_DOMAIN = 'https://directline.botframework.com/v3/directline/' } = process.env; -export default async function (userID) { +export default async function ({ domain = DIRECT_LINE_DOMAIN, userID }) { const { DIRECT_LINE_SECRET } = process.env; userID || (userID = await createUserID()); @@ -11,7 +11,7 @@ export default async function (userID) { let cres; - cres = await fetch(`${ DIRECT_LINE_URL }v3/directline/tokens/generate`, { + cres = await fetch(`${ domain }tokens/generate`, { body: JSON.stringify({ User: { Id: userID } }), headers: { authorization: `Bearer ${ DIRECT_LINE_SECRET }`, diff --git a/src/index.ts b/src/index.ts index 4b29ed9..0e6f2ac 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,26 +4,25 @@ import config from './config'; config(); import { BotFrameworkAdapter, BotStateSet, ConversationState, MemoryStorage, UserState } from 'botbuilder'; -import { MicrosoftAppCredentials } from 'botframework-connector'; +import { BotFrameworkStreamingAdapter } from 'botbuilder-streaming-extensions'; import { join } from 'path'; +import { MicrosoftAppCredentials } from 'botframework-connector'; +import { NodeWebSocket } from 'botframework-streaming-extensions'; import createAutoResetEvent from 'auto-reset-event'; import delay from 'delay'; import fetch from 'node-fetch'; import prettyMs from 'pretty-ms'; import restify from 'restify'; import serveHandler from 'serve-handler'; +import WebSocket from 'ws'; -import * as OAuthCard from './commands/OAuthCard2'; -import commands from './commands'; -import reduceMap from './reduceMap'; +import Bot from './Bot'; import generateDirectLineToken from './generateDirectLineToken'; import renewDirectLineToken from './renewDirectLineToken'; -const LOG_LENGTH = 20; - // Create server -const server = restify.createServer(); +const server = restify.createServer({ handleUpgrades: true }); server.listen(process.env.PORT, () => { console.log(`${ server.name } listening to ${ server.url }`); @@ -39,13 +38,47 @@ MicrosoftAppCredentials.trustServiceUrl('https://api.ppe.botframework.com'); MicrosoftAppCredentials.trustServiceUrl('https://state.ppe.botframework.com'); MicrosoftAppCredentials.trustServiceUrl('https://token.ppe.botframework.com'); -// Create adapter -const adapter = new BotFrameworkAdapter({ +const { + DIRECTLINE_EXTENSION_VERSION +} = process.env; + +const ADAPTER_SETTINGS = { appId: process.env.MICROSOFT_APP_ID, appPassword: process.env.MICROSOFT_APP_PASSWORD, oAuthEndpoint: process.env.OAUTH_ENDPOINT, openIdMetadata: process.env.OPENID_METADATA -}); +}; + +const USE_STREAMING_EXTENSIONS = true; + +// Create bot +const bot = new Bot(); + +// Create adapter +let adapter; + +if (USE_STREAMING_EXTENSIONS) { + adapter = new BotFrameworkStreamingAdapter(bot as any); + + // Checks if running under Azure + if (DIRECTLINE_EXTENSION_VERSION) { + console.log('Running with streaming extension running via Direct Line ASE.'); + adapter.connectNamedPipe(); + } else { + console.log('Running with streaming extension running via proxy.'); + // connectToASEViaWebSocketProxy(adapter); + connectToASEViaWebSocketProxy2(adapter); + } +} else { + console.log('Running without streaming extension.'); + adapter = new BotFrameworkAdapter(ADAPTER_SETTINGS); +} + +// const adapter = new BotFrameworkStreamingAdapter( +// activityHandler, +// console, +// ADAPTER_SETTINGS +// ); // const storage = new MemoryStorage(); // const convoState = new ConversationState(storage); @@ -53,13 +86,10 @@ const adapter = new BotFrameworkAdapter({ // adapter.use(new BotStateSet(convoState, userState)); -let numActivities = 0; -let echoTypingConversations = new Set(); const up = Date.now(); -const logs = []; server.get('/', async (_, res) => { - const message = `MockBot v4 is up since ${ prettyMs(Date.now() - up) } ago, processed ${ numActivities } activities.`; + const message = `MockBot v4 is up since ${ prettyMs(Date.now() - up) } ago, processed ${ bot.numActivities } activities.`; const separator = new Array(message.length).fill('-').join(''); res.set('Content-Type', 'text/plain'); @@ -70,7 +100,7 @@ server.get('/', async (_, res) => { separator ], computer: { - numActivities, + numActivities: bot.numActivities, up } }, null, 2)); @@ -81,7 +111,7 @@ server.get('/logs', async (req, res) => { if (req.query.format === 'simple') { res.send(JSON.stringify({ - logs: logs.map(log => { + logs: bot.logs.map(log => { const { activity: { name, text, type, value } } = log; switch (type) { @@ -107,7 +137,7 @@ server.get('/logs', async (req, res) => { }, null, 2)); } else { res.send(JSON.stringify({ - logs + logs: bot.logs }, null, 2)); } }); @@ -128,6 +158,7 @@ function trustedOrigin(origin) { || /^https?:\/\/webchat-playground\.azurewebsites\.net(\/|$)/.test(origin) || /^https?:\/\/([\d\w]+\.)+botframework\.com(\/|$)/.test(origin) || /^https:\/\/compulim\.github\.io(\/|$)/.test(origin) + || /^https:\/\/corinagum\.github\.io(\/|$)/.test(origin) || /^https:\/\/microsoft\.github\.io(\/|$)/.test(origin) || /^https:\/\/bfxwebchatfullbundle\.azurewebsites\.net(\/|$)/.test(origin) || /^https:\/\/webchattest\.blob\.core\.windows\.net(\/|$)/.test(origin) @@ -149,9 +180,9 @@ server.post('/directline/token', async (req, res) => { try { if (token) { - res.send(await renewDirectLineToken(token), { 'Access-Control-Allow-Origin': '*' }); + res.send(await renewDirectLineToken({ domain: 'https://webchat-mockbot-se.azurewebsites.net/.bot/v3/directline/', token }), { 'Access-Control-Allow-Origin': '*' }); } else { - res.send(await generateDirectLineToken(), { 'Access-Control-Allow-Origin': '*' }); + res.send(await generateDirectLineToken({ domain: 'https://webchat-mockbot-se.azurewebsites.net/.bot/v3/directline/' }), { 'Access-Control-Allow-Origin': '*' }); } } catch (err) { res.send(500, err.message, { 'Access-Control-Allow-Origin': '*' }); @@ -294,148 +325,15 @@ server.get('/public/*', async (req, res) => { }); // Listen for incoming requests -server.post('/api/messages', (req, res) => { - adapter.processActivity(req, res, async context => { - const sendActivity = context.sendActivity.bind(context); - - logs.push({ - direction: 'incoming', - now: new Date().toISOString(), - activity: context.activity, - }); - - context.sendActivity = (...args) => { - let activity = args[0]; - - if (typeof activity === 'string') { - activity = { - type: 'message', - text: activity - }; - } - - logs.push({ - direction: 'outgoing', - now: new Date().toISOString(), - activity - }); - - return sendActivity(...args); - }; - - logs.splice(0, Math.max(0, logs.length - LOG_LENGTH)); - - numActivities++; - - if (context.activity.type === 'event') { - if (context.activity.name === 'tokens/response') { - // Special handling for OAuth token exchange - // This event is sent thru the non-magic code flow - await OAuthCard.processor(context); - } else if (context.activity.name === 'webchat/join') { - await context.sendActivity(`Got \`webchat/join\` event, your language is \`${ (context.activity.value || {}).language }\``); - } else if (context.activity.name === 'webchat/ping') { - await context.sendActivity({ type: 'event', name: 'webchat/pong', value: context.activity.value }); - } - } else if (context.activity.type === 'messageReaction') { - const { activity: { reactionsAdded = [], reactionsRemoved = [] }} = context; - const attachments = [...reactionsAdded, ...reactionsRemoved].map(reaction => ({ - content: `\`\`\`\n${ JSON.stringify(reaction, null, 2) }\n\`\`\``, - contentType: 'text/markdown' - })); - - await context.sendActivity({ - text: 'You posted', - type: 'message', - attachments - }); - } else if (context.activity.type === 'message') { - const { activity: { attachments = [], text } } = context; - const cleanedText = (text || '').trim().replace(/\.$/, ''); - const command = commands.find(({ pattern }) => pattern.test(cleanedText)); - - if (command) { - const { mode, pattern, processor } = command; - const match = pattern.exec(cleanedText); - - if (mode === 'line') { - await processor(context, cleanedText); - } else { - await processor(context, ...[].slice.call(match, 1)); - } - } else if (/^echo-typing$/i.test(cleanedText)) { - // We should "echoTyping" in a per-conversation basis - const { id: conversationID } = context.activity.conversation; - - if (echoTypingConversations.has(conversationID)) { - echoTypingConversations.delete(conversationID); - await context.sendActivity('Will stop echoing `"typing"` event'); - } else { - echoTypingConversations.add(conversationID); - await context.sendActivity('Will echo `"typing"` event'); - } - } else if (/^help$/i.test(cleanedText)) { - const attachments = commands.map(({ help, name }) => { - return { - contentType: 'application/vnd.microsoft.card.thumbnail', - content: { - buttons: reduceMap( - help(), - (result: [], title: string, value: string) => [ - ...result, - { - title, - type: 'imBack', - value - } - ], - [] - ).sort(({ title: x }, { title: y }) => x > y ? 1 : x < y ? -1 : 0), - title: name - } - }; - }); - - await context.sendActivity({ - attachments: attachments.sort(({ content: { title: x } }, { content: { title: y } }) => x > y ? 1 : x < y ? -1 : 0) - }); - } else if (/^help simple$/i.test(cleanedText)) { - await context.sendActivity(`### Commands\r\n\r\n${ commands.map(({ pattern }) => `- \`${ pattern.source }\``).sort().join('\r\n') }`); - } else if (attachments.length) { - const { processor } = commands.find(({ pattern }) => pattern.test('upload')); - - await processor(context, attachments); - } else if (context.activity.value) { - const { text, value } = context.activity; - const attachments = []; - - text && attachments.push({ - content: text, - contentType: 'text/plain' - }); - - value && attachments.push({ - content: `\`\`\`\n${ JSON.stringify(value, null, 2) }\n\`\`\``, - contentType: 'text/markdown' - }); - - await context.sendActivity({ - text: 'You posted', - type: 'message', - attachments - }); - } else { - await context.sendActivity({ - speak: `Unknown command: I don't know ${ cleanedText }. You can say "help" to learn more.`, - text: `Unknown command: \`${ cleanedText }\`.\r\n\r\nType \`help\` to learn more.`, - type: 'message' - }); - } - } else if (context.activity.type === 'typing' && echoTypingConversations.has(context.activity.conversation.id)) { - await context.sendActivity({ type: 'typing' }); - } +if (USE_STREAMING_EXTENSIONS) { + // server.get('/api/messages', (req, res) => { + // adapter.connectWebSocket(req, res, ADAPTER_SETTINGS); + // }); +} else { + server.post('/api/messages', (req, res) => { + adapter.processActivity(req, res, context => bot.run(context)); }); -}); +} let pregeneratedTokens = []; const PREGENERATE_TOKEN_INTERVAL = 60000; @@ -448,7 +346,7 @@ function setIntervalAndImmediate(fn, ms) { setIntervalAndImmediate(async () => { const now = Date.now(); - const { conversationId: conversationID, expires_in: expiresIn, token } = await generateDirectLineToken(); + const { conversationId: conversationID, expires_in: expiresIn, token } = await generateDirectLineToken({ domain: 'https://webchat-mockbot-se.azurewebsites.net/.bot/v3/directline/' }); const expiresAt = now + expiresIn * 1000; pregeneratedTokens.push({ @@ -483,3 +381,37 @@ server.get('/directline/tokens', async (_, res) => { }) }, null, 2)); }); + +// server.get('/directline/streamingextensions', async (req, res) => { +// return await adapter.connectWebSocket(req, res, ADAPTER_SETTINGS); +// }); + +function connectToASEViaWebSocketProxy2(adapter, urlString = 'https://webchat-mockbot-proxy.azurewebsites.net/') { + return new Promise((resolve, reject) => { + console.log('Connecting to proxy.'); + + const socket = new WebSocket(urlString); + const originalSend = socket.send.bind(socket); + + socket.send = buffer => { + console.log(`OUTGOING: ${ buffer ? typeof buffer === 'string' ? buffer : buffer.toString() : '' }`); + + return originalSend(buffer); + } + + socket.on('open', async () => { + console.log('Connected to proxy.'); + socket.send(); + await adapter.startWebSocket(new NodeWebSocket(socket)); + resolve(); + }); + + socket.on('message', buffer => { + console.log(`INCOMING: ${ buffer.toString() }`); + + socket.emit('binary', buffer); + }); + + socket.on('error', reject); + }); +} diff --git a/src/renewDirectLineToken.js b/src/renewDirectLineToken.js index 2116b90..e79a417 100644 --- a/src/renewDirectLineToken.js +++ b/src/renewDirectLineToken.js @@ -1,9 +1,11 @@ -export default async function (token) { +const { DIRECT_LINE_DOMAIN = 'https://directline.botframework.com/v3/directline/' } = process.env + +export default async function ({ domain = DIRECT_LINE_DOMAIN, token }) { console.log(`Renewing Direct Line token using token "${ token.substr(0, 3) }...${ token.substr(-3) }"`); let cres; - cres = await fetch('https://directline.botframework.com/v3/directline/tokens/refresh', { + cres = await fetch(`${ domain }tokens/refresh`, { headers: { authorization: `Bearer ${ token }`, 'Content-Type': 'application/json' diff --git a/web.config b/web.config new file mode 100644 index 0000000..36b72cc --- /dev/null +++ b/web.config @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +