{"_id":"directline-jabber","_rev":"28-b5c6910fb6f146a08b01c711cd887db7","name":"directline-jabber","dist-tags":{"latest":"2.0.1"},"versions":{"1.0.0":{"name":"directline-jabber","version":"1.0.0","description":"uses chatdown to generate transcript files to automate testing using a directline connection","main":"out/processor.js","scripts":{"test":"mocha --opts mocha.opts","test-coverage":"nyc mocha --opts mocha.opts","prestart":"npm run build","build":"tsc","buildserver":"npm run test-coverage","start":"node out/app.js"},"nyc":{"include":["src/**/*.ts"],"all":true,"exclude":["src/app.ts","src/**/*.spec.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html","lcov"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/jvanderbiest/directline-jabber.git"},"keywords":["botframework","directline","automated","testing","chatdown","transcript","chat"],"author":{"name":"Jonas Van der Biest"},"license":"MIT","bugs":{"url":"https://github.com/jvanderbiest/directline-jabber/issues"},"homepage":"https://github.com/jvanderbiest/directline-jabber#readme","devDependencies":{"@types/chai":"^4.1.7","@types/chai-spies":"^1.0.0","@types/chalk":"^2.2.0","@types/mocha":"^5.2.6","@types/npmlog":"^4.1.1","@types/sinon":"^7.0.11","chai":"^4.2.0","chai-spies":"^1.0.0","chatdown":"^1.2.0","coveralls":"^3.0.3","istanbul":"^0.4.5","mocha":"^6.1.4","nock":"^10.0.6","nyc":"^14.1.1","path":"^0.12.7","proxyquire":"^2.1.0","read-text-file":"^1.1.0","request":"^2.88.0","sinon":"^7.3.2","source-map-support":"^0.5.12","ts-node":"^8.1.0"},"dependencies":{"@types/node":"^11.13.7","@types/request":"^2.48.1","@types/request-promise":"^4.1.42","chalk":"^2.4.2","commander":"^2.20.0","npmlog":"^4.1.2","readdirp":"^3.0.1","reflect-metadata":"^0.1.13","request-promise":"^4.2.4","ts-node-dev":"^1.0.0-pre.32","typescript":"^3.4.4"},"gitHead":"1da1d3e17f7b1641be8d99d8047c78c7f5d208d8","_id":"directline-jabber@1.0.0","_nodeVersion":"11.13.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-dQV7R/Bflx2n3e6Ckvfx3WPX0vOTLjvBN96Q8JVpJROVVGmeU1kylVuKMs26rh9/HBpiZkXWLfQtgw40WfGxeQ==","shasum":"710bcb8f0418cd28de399cdf6ab51fef49ba1cc1","tarball":"https://registry.npmjs.org/directline-jabber/-/directline-jabber-1.0.0.tgz","fileCount":71,"unpackedSize":311025,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc5nJ3CRA9TVsSAnZWagAAhNAQAJDyIzr3QCUgZs1/98IB\n4vf72NutI8OIU+xIK+7c/2vtvt4kKv14oOnILav7VZcnAuu66KXQmY2ILSn8\nJeiPmFflFtRc3LP/QD6jF0AKbBc5dt6hyqOpU9l2IQOHRnqc5Rmf9tJAuAEo\nWfVG4w2eA23tWIVnBO4e3DYWxVuBxGsaawveqsiw3ELhMCxeK8BdTQLLWlBe\nXLQ2JtFLI6L87V4M/xfzXxWRFwt78CpfvdadO1N0DBqsa/AcIj1rGMTMXe+E\n9HmZA/FO6nRD+SsHVmB3qupnPSI2Tfa4dc95+a/766sE9YlApMeZAyYPgK1H\n2VI8DGvqOrWUNm39abK2Z40o2AxqecG3NpfWnoi2DlxHlKAlYcxkw/xDlC2u\nBiVElWgGCtbGUupVWSC45kVr9NK3NCkgVopgHFCH7ep2Y8GICBuT60SmoEDq\nanrdKFg3eG8RFb9K9jDucsyE+vPlBEKMUHMlX6SzCoiw6XgJXbR2jmuaFapp\nII1ZFG+DxK9LDo/vNIMkX8vqhLZ+AXd6iAGXIJM2EqvBN/YO2Lsj/9dHFDzQ\nAnWJszHpfUU1+KtomKJ+Xcoe7A3Z5TSVMr1DBo/zFpGang9x278cr0o2MnN9\n54HQWYODNLwZqgW+vg76F4Vz/s1k61MjCSC5JfNIJ3AQSwl47/uvGbo9S1SM\ns1Wy\r\n=HBsM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgAHqyEQCBLRRizkZ+xtqa5rzA2uIMulvzx1Uz1xxsEAIhAI4ziM4jWk2m01hVONUN47onn6itky0lLE9R9058mitV"}]},"maintainers":[{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"}],"_npmUser":{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/directline-jabber_1.0.0_1558606454728_0.5453722313236518"},"_hasShrinkwrap":false},"1.0.1-rc":{"name":"directline-jabber","version":"1.0.1-rc","description":"uses chatdown to generate transcript files to automate testing using a directline connection","main":"out/processor.js","scripts":{"test":"mocha --opts mocha.opts","test-coverage":"nyc mocha --opts mocha.opts","prestart":"npm run build","build":"tsc","buildserver":"npm run test-coverage","start":"node out/app.js"},"nyc":{"include":["src/**/*.ts"],"all":true,"exclude":["src/app.ts","src/**/*.spec.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html","lcov"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/jvanderbiest/directline-jabber.git"},"keywords":["botframework","directline","automated","testing","chatdown","transcript","chat"],"author":{"name":"Jonas Van der Biest"},"license":"MIT","bugs":{"url":"https://github.com/jvanderbiest/directline-jabber/issues"},"homepage":"https://github.com/jvanderbiest/directline-jabber#readme","devDependencies":{"@types/chai":"^4.1.7","@types/chai-spies":"^1.0.0","@types/chalk":"^2.2.0","@types/mocha":"^5.2.6","@types/npmlog":"^4.1.1","@types/sinon":"^7.0.11","chai":"^4.2.0","chai-spies":"^1.0.0","chatdown":"^1.2.0","coveralls":"^3.0.3","istanbul":"^0.4.5","mocha":"^6.1.4","nock":"^10.0.6","nyc":"^14.1.1","path":"^0.12.7","proxyquire":"^2.1.0","read-text-file":"^1.1.0","request":"^2.88.0","sinon":"^7.3.2","source-map-support":"^0.5.12","ts-node":"^8.1.0"},"dependencies":{"@types/node":"^11.13.7","@types/request":"^2.48.1","@types/request-promise":"^4.1.42","chalk":"^2.4.2","commander":"^2.20.0","npmlog":"^4.1.2","readdirp":"^3.0.1","reflect-metadata":"^0.1.13","request-promise":"^4.2.4","ts-node-dev":"^1.0.0-pre.32","typescript":"^3.4.4"},"_resolved":"","_integrity":"","_from":"file:directline-jabber-1.0.1-rc.tgz","readme":"![npm](https://img.shields.io/npm/v/directline-jabber.svg) [![Build Status](https://travis-ci.com/jvanderbiest/directline-jabber.svg?branch=master)](https://travis-ci.com/jvanderbiest/directline-jabber) [![Coverage Status](https://coveralls.io/repos/github/jvanderbiest/directline-jabber/badge.svg?branch=master)](https://coveralls.io/github/jvanderbiest/directline-jabber?branch=master)\r\n\r\n\r\n# DirectLine Jabber\r\nDirectLine-Jabber focusses on automated integration testing for the [Microsoft BotFramework](https://github.com/microsoft/botframework-sdk). Using your [BotFramework emulator](https://github.com/microsoft/BotFramework-Emulator) transcripts or [Chatdown](https://github.com/Microsoft/botbuilder-tools/tree/master/packages/Chatdown) files it will check if your bot responds as it is supposed to respond.\r\n\r\nIt tests your conversations by authenticating and sending the activities over [Direct Line]((https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-directline?view=azure-bot-service-4.0)). \r\n\r\nThe current release 1.0.0 supports a limited scenario with text and attachments only. Other scenario's with adaptive cards are scheduled for a later release.\r\n\r\n# Prerequisites\r\n- [node.js](https://nodejs.org/) v10+\r\n- a deployed bot instance\r\n- a Direct Line channel\r\n\r\n# Commandline arguments\r\n| Command | Flag | Description | Remarks\r\n| --- | --- | --- | --- |\r\n| `--files` | `-f` | chatdown file(s) to test. | Comma seperate for multiple\r\n| `--dirs` | `-d` | directory or directories with chatdown files to test | Comma seperate for multiple\r\n| `--secret` | `-s` | directline secret for authentication | Mutually exclusive with `endpoint`\r\n| `--endpoint` | `-e` | endpoint to retrieve directline token | Mutually exclusive with `secret`\r\n| `--recursive` | `-r` | recursivly scanning for chatdown files in directory' | defaults to `true`\r\n| `--verbose` | `-v` | enables verbose logging | defaults to `false`\r\n\r\n# Authentication\r\n## Secret\r\nYou can use the secret key that comes with your Direct Line channel in your Azure bot channels registration.\r\n\r\n## Token\r\nIf your bot exposes a [token endpoint](https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-authentication?view=azure-bot-service-4.0) that generates a token from the directlineSecret you can use that. Your token endpoint response response should be a token object `{token: ''}`, a token string or a stringified token string.\r\n\r\n# Installation\r\nInstall the dependencies and start the app.\r\n\r\n```sh\r\n$ cd directline-jabber\r\n$ npm install\r\n```\r\n\r\nRun examples:\r\n```sh\r\n$ node app test --files <filePath,...> --secret [directLineSecret] \r\n$ node app test --dirs <directory,...> --endpoint [tokenEndpoint] \r\n```\r\n\r\n# Testing\r\n```sh\r\n$ npm test\r\n```\r\n\r\n# Sample\r\n![DirectLine-Jabber Chatdown example](/docs/screenshots/chatdown-conversation.png?raw=true \"Chatdown conversation\")\r\n![DirectLine-Jabber in action](/docs/screenshots/cmd-directline-jabber.png?raw=true \"Command Line\")\r\n\r\n# License\r\nDirectLine-Jabber is licensed under The MIT License (MIT). Which means that you can use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the application. But you always need to state that this repository is the original author of this application.","readmeFilename":"readme.md","_id":"directline-jabber@1.0.1-rc","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"},"dist":{"integrity":"sha512-1Tuo0SG9oSyGknL9PDTfVkr2ftmpQOYQcoUcS2RS6c4CSwaVB90ZAd1EvG/unchADe73y05mlrGJ9P6pWaGQvA==","shasum":"7b85e20dc7632987016c364a6836aecfa42937de","tarball":"https://registry.npmjs.org/directline-jabber/-/directline-jabber-1.0.1-rc.tgz","fileCount":71,"unpackedSize":44295723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6p64CRA9TVsSAnZWagAA2OoP/0woviYrwEnV9fXE7XjQ\n36obniyCP/ci6MutiHalvJv5O6PM3AFnl+ilhzoA8xmJUTyMtFgaFMs8yIzS\n1+pve0ydbZs1/D7LujjJBwJ/mZvVHvImh8OeJ9KhjKm5nWVPmhx2Vzw0d8UE\nEYtLHZaKXRmarj7rtnzxpa4GDwycUvg+NzmzDL38ZCfbX4yOvwEb4WHLmSly\n/sjdAR8VCBBedA7myqqJ21oEitKyJM6/XWncBzNI37GJbsNxU53lXAtlpo7h\nVwHIPY6jYUemz0DhoipDfhFl/oP+gsrg1hBVWIlx27nCrg/ZMNUw5ysJzwhr\nj/ChoXjzRyeI2IicrwxWop6kICOQNAls6dwn8DOG/1fA2iKY5ioWqKab6jS0\nz6vCYUMZRDjGqj2cAjHTTyhVWKdiIRBMappJNu3jwlI4jVB5YfRKJ//9bU2L\nuJKSI+Y/AHu371YcdfdQJYABH56oZvA3zxe6NxFvZpTOwHVRMkVqrnTdwxyr\nRfEH1mmiBpNQPCr5WHVgN+Z/cemTkaP7gtXCQkyv4a8V6xocgB5TI7uLv1la\nwtZUJi+2ODZ7iOV2llLuFodPpkfdqjBA5s22Fwj41hV/I9pHd/MWkthjeHjI\n/YBl2iSS/XaeEEKnVBFfaF4U8ryi3ew/XNDtJtWpbuYpwO15x/RdR7vRx9Db\n62uk\r\n=BZCh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2F7Fo0GTIBZpSljRcuLgBFodpbc0KPzfAQXvCYzW86gIgZErxbUGgfkHsKPbM8r72anCBjbRxdVlNdgdrzRFlWE8="}]},"maintainers":[{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/directline-jabber_1.0.1-rc_1558879927915_0.5217649195451692"},"_hasShrinkwrap":false,"deprecated":"this"},"1.0.1-rc2":{"name":"directline-jabber","version":"1.0.1-rc2","description":"uses chatdown to generate transcript files to automate testing using a directline connection","main":"out/processor.js","scripts":{"test":"mocha --opts mocha.opts","test-coverage":"nyc mocha --opts mocha.opts","prestart":"npm run build","build":"tsc","buildserver":"npm run test-coverage","start":"node out/app.js"},"nyc":{"include":["src/**/*.ts"],"all":true,"exclude":["src/app.ts","src/**/*.spec.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html","lcov"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/jvanderbiest/directline-jabber.git"},"keywords":["botframework","directline","automated","testing","chatdown","transcript","chat"],"author":{"name":"Jonas Van der Biest"},"license":"MIT","bugs":{"url":"https://github.com/jvanderbiest/directline-jabber/issues"},"homepage":"https://github.com/jvanderbiest/directline-jabber#readme","devDependencies":{"@types/chai":"^4.1.7","@types/chai-spies":"^1.0.0","@types/chalk":"^2.2.0","@types/mocha":"^5.2.6","@types/npmlog":"^4.1.1","@types/sinon":"^7.0.11","chai":"^4.2.0","chai-spies":"^1.0.0","chatdown":"^1.2.0","coveralls":"^3.0.3","istanbul":"^0.4.5","mocha":"^6.1.4","nock":"^10.0.6","nyc":"^14.1.1","path":"^0.12.7","proxyquire":"^2.1.0","read-text-file":"^1.1.0","request":"^2.88.0","sinon":"^7.3.2","source-map-support":"^0.5.12","ts-node":"^8.1.0"},"dependencies":{"@types/node":"^11.13.7","@types/request":"^2.48.1","@types/request-promise":"^4.1.42","chalk":"^2.4.2","commander":"^2.20.0","npmlog":"^4.1.2","readdirp":"^3.0.1","reflect-metadata":"^0.1.13","request-promise":"^4.2.4","ts-node-dev":"^1.0.0-pre.32","typescript":"^3.4.4"},"_resolved":"","_integrity":"","_from":"file:directline-jabber-1.0.1-rc2.tgz","readme":"![npm](https://img.shields.io/npm/v/directline-jabber.svg) [![Build Status](https://travis-ci.com/jvanderbiest/directline-jabber.svg?branch=master)](https://travis-ci.com/jvanderbiest/directline-jabber) [![Coverage Status](https://coveralls.io/repos/github/jvanderbiest/directline-jabber/badge.svg?branch=master)](https://coveralls.io/github/jvanderbiest/directline-jabber?branch=master)\r\n\r\n\r\n# DirectLine Jabber\r\nDirectLine-Jabber focusses on automated integration testing for the [Microsoft BotFramework](https://github.com/microsoft/botframework-sdk). Using your [BotFramework emulator](https://github.com/microsoft/BotFramework-Emulator) transcripts or [Chatdown](https://github.com/Microsoft/botbuilder-tools/tree/master/packages/Chatdown) files it will check if your bot responds as it is supposed to respond.\r\n\r\nIt tests your conversations by authenticating and sending the activities over [Direct Line]((https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-directline?view=azure-bot-service-4.0)). \r\n\r\nThe current release 1.0.0 supports a limited scenario with text and attachments only. Other scenario's with adaptive cards are scheduled for a later release.\r\n\r\n# Prerequisites\r\n- [node.js](https://nodejs.org/) v10+\r\n- a deployed bot instance\r\n- a Direct Line channel\r\n\r\n# Commandline arguments\r\n| Command | Flag | Description | Remarks\r\n| --- | --- | --- | --- |\r\n| `--files` | `-f` | chatdown file(s) to test. | Comma seperate for multiple\r\n| `--dirs` | `-d` | directory or directories with chatdown files to test | Comma seperate for multiple\r\n| `--secret` | `-s` | directline secret for authentication | Mutually exclusive with `endpoint`\r\n| `--endpoint` | `-e` | endpoint to retrieve directline token | Mutually exclusive with `secret`\r\n| `--recursive` | `-r` | recursivly scanning for chatdown files in directory' | defaults to `true`\r\n| `--verbose` | `-v` | enables verbose logging | defaults to `false`\r\n\r\n# Authentication\r\n## Secret\r\nYou can use the secret key that comes with your Direct Line channel in your Azure bot channels registration.\r\n\r\n## Token\r\nIf your bot exposes a [token endpoint](https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-authentication?view=azure-bot-service-4.0) that generates a token from the directlineSecret you can use that. Your token endpoint response response should be a token object `{token: ''}`, a token string or a stringified token string.\r\n\r\n# Installation\r\nInstall the dependencies and start the app.\r\n\r\n```sh\r\n$ cd directline-jabber\r\n$ npm install\r\n```\r\n\r\nRun examples:\r\n```sh\r\n$ node app test --files <filePath,...> --secret [directLineSecret] \r\n$ node app test --dirs <directory,...> --endpoint [tokenEndpoint] \r\n```\r\n\r\n# Testing\r\n```sh\r\n$ npm test\r\n```\r\n\r\n# Sample\r\n![DirectLine-Jabber Chatdown example](/docs/screenshots/chatdown-conversation.png?raw=true \"Chatdown conversation\")\r\n![DirectLine-Jabber in action](/docs/screenshots/cmd-directline-jabber.png?raw=true \"Command Line\")\r\n\r\n# License\r\nDirectLine-Jabber is licensed under The MIT License (MIT). Which means that you can use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the application. But you always need to state that this repository is the original author of this application.","readmeFilename":"readme.md","_id":"directline-jabber@1.0.1-rc2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"},"dist":{"integrity":"sha512-iDjrIkpXMdp4RjHwhe5NYW+aUs0ZQNnclHcnM8gRV0XiJNy3NZvXckyuuqGvsmk/bPCcPUbuQk5LjMDl/bWdew==","shasum":"97037105a11d9e4bc5897293b7b1df6fd8e747cc","tarball":"https://registry.npmjs.org/directline-jabber/-/directline-jabber-1.0.1-rc2.tgz","fileCount":69,"unpackedSize":298259,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6qYqCRA9TVsSAnZWagAAH4MP/3LJuAzS9adAYnmqzkgr\nkpuD0wkQuwIXwojQ3fm0PJ2YS+KcgFPNEMWLz+1gst+c5zHwDROCz1SaMQ8P\nM4zTfSvU40JVV+HqKaVSEaepdGfY9nRltBbyvGxZ4+bBVb94odyWs+GSn+pk\n9oru1lgII2rdYYe9zSDyTI4qA57wHlP3j5eeW3s6CJ7ESnR3JOwPWBGvGpTi\n8ZroC6su6Tj2EuxP/F/zJ4FUHwMk+xfRN+ImwMFOij24QwmZP/gNdLM4rw5s\nsLVuc7ZnOkheJpHDzZeALNMZRQ818vjrZDPHGM/76RWbpFIaoe10J061MO+X\nmLq6qNV9HnSmgVJFTXRsOc7+oZ4XnUcxIoDjYrJi0yGHf8v42igsR6oDbKAA\nXvCy3w9MKgWHOraUExF1M581Vaf6bQHjUyuPgbmRw3CNJCuXJd0hDzAZ2fi4\nATfSKaRABqf+MYwp3CPTiMSDXMnOZvqIgpsQrMwrMSUeIZetvG0zlDjdnLMa\nggh5087+cWnOwJt01tQqkuJbHTOpxIHVfSrzpVCmb91iasiIO0tVfgBgAHbs\nHmqrGyFwysYczRIIWSd7IGrCoXX8Prj7cvRDhIMNs3BARkhl8jk3lTULnALI\nYJJhBDOnWRpZTGzeLshLUB3EqbEUMxvTkixJFWepnq4RRHLiQ9h26hjtjexn\nkGo2\r\n=z+Gv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDthNp11aMM2lUgM1FaCi5wqn2famLndXQHgNjKOyacLQIgGhmPiWzv9XX2Zx4+ff3WINUIhkRrSN56pd8x79ZQo1I="}]},"maintainers":[{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/directline-jabber_1.0.1-rc2_1558881833381_0.6096449675137003"},"_hasShrinkwrap":false,"deprecated":"this version has been deprecated"},"1.0.1-rc3":{"name":"directline-jabber","version":"1.0.1-rc3","description":"uses chatdown to generate transcript files to automate testing using a directline connection","main":"out/processor.js","scripts":{"test":"mocha --opts mocha.opts","test-coverage":"nyc mocha --opts mocha.opts","prestart":"npm run build","build":"tsc","buildserver":"npm run test-coverage","start":"node out/app.js"},"nyc":{"include":["src/**/*.ts"],"all":true,"exclude":["src/app.ts","src/**/*.spec.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html","lcov"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/jvanderbiest/directline-jabber.git"},"keywords":["botframework","directline","automated","testing","chatdown","transcript","chat"],"author":{"name":"Jonas Van der Biest"},"license":"MIT","bugs":{"url":"https://github.com/jvanderbiest/directline-jabber/issues"},"homepage":"https://github.com/jvanderbiest/directline-jabber#readme","devDependencies":{"@types/chai":"^4.1.7","@types/chai-spies":"^1.0.0","@types/chalk":"^2.2.0","@types/mocha":"^5.2.6","@types/npmlog":"^4.1.1","@types/sinon":"^7.0.11","chai":"^4.2.0","chai-spies":"^1.0.0","coveralls":"^3.0.3","istanbul":"^0.4.5","mocha":"^6.1.4","nock":"^10.0.6","nyc":"^14.1.1","proxyquire":"^2.1.0","read-text-file":"^1.1.0","sinon":"^7.3.2","source-map-support":"^0.5.12","ts-node":"^8.1.0","ts-node-dev":"^1.0.0-pre.32"},"dependencies":{"@types/node":"^11.13.7","@types/request":"^2.48.1","@types/request-promise":"^4.1.42","chalk":"^2.4.2","chatdown":"^1.2.0","commander":"^2.20.0","npmlog":"^4.1.2","path":"^0.12.7","readdirp":"^3.0.1","reflect-metadata":"^0.1.13","request":"^2.88.0","request-promise":"^4.2.4","typescript":"^3.4.4"},"_resolved":"","_integrity":"","_from":"file:directline-jabber-1.0.1-rc3.tgz","readme":"![npm](https://img.shields.io/npm/v/directline-jabber.svg) [![Build Status](https://travis-ci.com/jvanderbiest/directline-jabber.svg?branch=master)](https://travis-ci.com/jvanderbiest/directline-jabber) [![Coverage Status](https://coveralls.io/repos/github/jvanderbiest/directline-jabber/badge.svg?branch=master)](https://coveralls.io/github/jvanderbiest/directline-jabber?branch=master)\r\n\r\n\r\n# DirectLine Jabber\r\nDirectLine-Jabber focusses on automated integration testing for the [Microsoft BotFramework](https://github.com/microsoft/botframework-sdk). Using your [BotFramework emulator](https://github.com/microsoft/BotFramework-Emulator) transcripts or [Chatdown](https://github.com/Microsoft/botbuilder-tools/tree/master/packages/Chatdown) files it will check if your bot responds as it is supposed to respond.\r\n\r\nIt tests your conversations by authenticating and sending the activities over [Direct Line]((https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-directline?view=azure-bot-service-4.0)). \r\n\r\nThe current release 1.0.0 supports a limited scenario with text and attachments only. Other scenario's with adaptive cards are scheduled for a later release.\r\n\r\n# Prerequisites\r\n- [node.js](https://nodejs.org/) v10+\r\n- a deployed bot instance\r\n- a Direct Line channel\r\n\r\n# Commandline arguments\r\n| Command | Flag | Description | Remarks\r\n| --- | --- | --- | --- |\r\n| `--files` | `-f` | chatdown file(s) to test. | Comma seperate for multiple\r\n| `--dirs` | `-d` | directory or directories with chatdown files to test | Comma seperate for multiple\r\n| `--secret` | `-s` | directline secret for authentication | Mutually exclusive with `endpoint`\r\n| `--endpoint` | `-e` | endpoint to retrieve directline token | Mutually exclusive with `secret`\r\n| `--recursive` | `-r` | recursivly scanning for chatdown files in directory' | defaults to `true`\r\n| `--verbose` | `-v` | enables verbose logging | defaults to `false`\r\n\r\n# Authentication\r\n## Secret\r\nYou can use the secret key that comes with your Direct Line channel in your Azure bot channels registration.\r\n\r\n## Token\r\nIf your bot exposes a [token endpoint](https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-authentication?view=azure-bot-service-4.0) that generates a token from the directlineSecret you can use that. Your token endpoint response response should be a token object `{token: ''}`, a token string or a stringified token string.\r\n\r\n# Installation\r\nInstall the dependencies and start the app.\r\n\r\n```sh\r\n$ cd directline-jabber\r\n$ npm install\r\n```\r\n\r\nRun examples:\r\n```sh\r\n$ node app test --files <filePath,...> --secret [directLineSecret] \r\n$ node app test --dirs <directory,...> --endpoint [tokenEndpoint] \r\n```\r\n\r\n# Testing\r\n```sh\r\n$ npm test\r\n```\r\n\r\n# Sample\r\n![DirectLine-Jabber Chatdown example](/docs/screenshots/chatdown-conversation.png?raw=true \"Chatdown conversation\")\r\n![DirectLine-Jabber in action](/docs/screenshots/cmd-directline-jabber.png?raw=true \"Command Line\")\r\n\r\n# License\r\nDirectLine-Jabber is licensed under The MIT License (MIT). Which means that you can use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the application. But you always need to state that this repository is the original author of this application.","readmeFilename":"readme.md","_id":"directline-jabber@1.0.1-rc3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"},"dist":{"integrity":"sha512-C/fAQgSAOUt+U6ZkCwk0o43QHR+H99zObhDqsntC/U6g03Cdc1j0EIZ5ii1+ZgDFey0DvJ2tPhgB2QFTqemmxg==","shasum":"76dfe16d335248915a0d69edc384cfd4d1366f64","tarball":"https://registry.npmjs.org/directline-jabber/-/directline-jabber-1.0.1-rc3.tgz","fileCount":69,"unpackedSize":298259,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6qedCRA9TVsSAnZWagAAkS8P/RqdltCai6QoQzEhtfW9\naMKJ6yygd6RnbIdYRdZE8Wu+kTQTcBEHokoPC0KXHAgYmhmYxzvitJxv6TGn\nTonksbYb8WHgmHUbZeFIMRqPDE4fBkEbMIW+LT5JVhje0QWtw/xAvBym0lZO\nFiNecMND56OyQt0CZaLM0yOXX6lDPySz2knJ1KjLp2TswH1yIWm93xYaTMyX\ncrpJU4d2njR6KhuVOG9OcBQFEEl5uJDIXBTXRWsOV7u8GrHNhV2hHCnH2fvv\nYlprfBZuSRkxt9vGR3rjdH2WriYlgDq4ffWZ08l3qAAvAfkl/DSJcmRG25m2\nGkyw2BAkyYJH4oBfBxupB6wuEZBzQa51cSzT3Pbwm6iFXH6cf3B6xaas8imM\nPUP4zCmC4VGJDnRqpGvQdxUj3Wkoj6Cvw/v44w43iXAROa6DRbXvMrWDVOaj\nTOkXeGZvX4dFj594OfLci1vrrjBb4OnKz82fwI3bSc5u7wy+NBgdLI7m6sCq\nQT92c5YSIqLk//bowuW+TTH5L6SM4VfXWbjDekLjK9B0V+dJ/2cnM4ht55o+\nAlekIXcTYfkXNeB8+2mseZCKB5O1DLZSvGV9Pnivf+9gaGbtP6zolIwkckdG\nnR/FEii0Oa3FuRM6mTwsqmgPDysXa3RE++EuJ5vPPJ2waB1MHrQzuTr7PrBx\nrHwM\r\n=J6t9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJLuToZFfH6vkKBRpFKXdkOhZqW6MQ9pI66A2Ayow+1gIhAIsCzdgCRC3mdh4HcEJZPgIdxdhCdcwrhSDbWwKztUab"}]},"maintainers":[{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/directline-jabber_1.0.1-rc3_1558882205073_0.3095613329714324"},"_hasShrinkwrap":false,"deprecated":"this version has been deprecated"},"1.0.1":{"name":"directline-jabber","version":"1.0.1","description":"uses chatdown to generate transcript files to automate testing using a directline connection","main":"out/processor.js","scripts":{"test":"mocha --opts mocha.opts","test-coverage":"nyc mocha --opts mocha.opts","prestart":"npm run build","build":"tsc","buildserver":"npm run test-coverage","start":"node out/app.js"},"nyc":{"include":["src/**/*.ts"],"all":true,"exclude":["src/app.ts","src/**/*.spec.ts"],"extension":[".ts"],"require":["ts-node/register"],"reporter":["text-summary","html","lcov"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/jvanderbiest/directline-jabber.git"},"keywords":["botframework","directline","automated","testing","chatdown","transcript","chat"],"author":{"name":"Jonas Van der Biest"},"license":"MIT","bugs":{"url":"https://github.com/jvanderbiest/directline-jabber/issues"},"homepage":"https://github.com/jvanderbiest/directline-jabber#readme","devDependencies":{"@types/chai":"^4.1.7","@types/chai-spies":"^1.0.0","@types/chalk":"^2.2.0","@types/mocha":"^5.2.6","@types/npmlog":"^4.1.1","@types/sinon":"^7.0.11","chai":"^4.2.0","chai-spies":"^1.0.0","coveralls":"^3.0.3","istanbul":"^0.4.5","mocha":"^6.1.4","nock":"^10.0.6","nyc":"^14.1.1","proxyquire":"^2.1.0","read-text-file":"^1.1.0","sinon":"^7.3.2","source-map-support":"^0.5.12","ts-node":"^8.1.0","ts-node-dev":"^1.0.0-pre.32"},"dependencies":{"@types/node":"^11.13.7","@types/request":"^2.48.1","@types/request-promise":"^4.1.42","chalk":"^2.4.2","chatdown":"^1.2.0","commander":"^2.20.0","npmlog":"^4.1.2","path":"^0.12.7","readdirp":"^3.0.1","reflect-metadata":"^0.1.13","request":"^2.88.0","request-promise":"^4.2.4","typescript":"^3.4.4"},"gitHead":"745641970c9bcc2014f04e4be64f0d3ca00e34d8","_id":"directline-jabber@1.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"},"dist":{"integrity":"sha512-fXfBQRuEf2xywkXSVxbzQ/M4whkxB0x+ZCds+gH46FNr1uj1xWTZwwxcBUv8XSc7LUXITkzQgixO4IhxjCTozA==","shasum":"d76d7315c490e469b5a56a8c08ec44873e8965ec","tarball":"https://registry.npmjs.org/directline-jabber/-/directline-jabber-1.0.1.tgz","fileCount":70,"unpackedSize":342222,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc6/0QCRA9TVsSAnZWagAA2ZMP/10aMw9EbI7A1fzel6t9\nkVIpfPeARb3lwJJfnXSaLm15nLzM4Yq+KYckdr/+PkwflW4wTMS3vXnKhGUP\n4NM+NP/4QdjGetBDUsXKr/WgvpGAWUYmvY2dku2Jn94GLeacMHOy6oreiJN4\nxcYDZgbTS+sSEtC+Kbnk9C/+xIajndWzauPrv8GRa3qnko+i4z9kMsD+rzyt\nNB48gUUqRfJuIQd6fszjVXO5P1qNrav60Rst7jjUhiJDykvcRxwMyom8RME1\nB0H8XZBYMaySy9rAD1xwQRohmjcorSt4mknSbylcZ/42vpVGYnx9rCK5s9qG\nermoqUtC59l3mkrS3Et/9HdfIZaCoz78BcgJ+rPtaUNqsfbnmUbbstFQavSx\nUINJQQWB0GJvpVKuzf1tP+hBzW4QNmxZ2bA8GGYCOHiE8hoGl8mYfhinRPqn\nZKjGg7yjJCPW0pNGGy4O761ANc3P3VGK1dS/yyjeHJclES10ovKmXJ0VFQbl\nMgJi95NO+a+eNgW8xLvo8QMHgYWW3KkYOoEfsoKELnkJtr9gD7bScfPR3aEi\n38ebSsBTvYekvLLgSNaI1kstgCFXK9fLEoXDgzIg0eKIbNDrqsF5jrpHKDVA\nkW15FTp0HLAQMUJwATero6BvtL4Aze82TpmsVoMjNfhOA9BiYl6qCgvbycfr\nr3+R\r\n=a9a8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC6QJGom3niHb/lwnwTF3vRwi97RnMWGTNm97xz0gvjtAiAY/9uFOvz3ZS2eVp2FcKRegp28SEdB0S1Zi8gw5J7Fyg=="}]},"maintainers":[{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/directline-jabber_1.0.1_1558969615344_0.9194220265450725"},"_hasShrinkwrap":false},"1.0.2":{"name":"directline-jabber","version":"1.0.2","description":"Automated testing of Microsoft BotFramework chat conversations using directline","main":"out/processor.js","scripts":{"prepare":"npm run build","prepublishOnly":"npm run test","test":"mocha --opts mocha.opts","test-coverage":"nyc mocha --opts mocha.opts","build":"tsc","buildserver":"npm run test-coverage","start":"node out/app.js"},"types":"out/processor.d.ts","nyc":{"include":["src/**/*.ts"],"all":true,"exclude":["src/app.ts","src/tests/**"],"extension":[".ts"],"reporter":["text-summary","html","lcov"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/jvanderbiest/directline-jabber.git"},"keywords":["botframework","directline","automated","testing","chatdown","transcript","chat"],"author":{"name":"Jonas Van der Biest"},"license":"MIT","bugs":{"url":"https://github.com/jvanderbiest/directline-jabber/issues"},"homepage":"https://github.com/jvanderbiest/directline-jabber#readme","devDependencies":{"@types/chai":"^4.1.7","@types/chai-spies":"^1.0.0","@types/chalk":"^2.2.0","@types/mocha":"^5.2.6","@types/npmlog":"^4.1.1","@types/sinon":"^7.0.11","@types/node":"^11.13.7","@types/request":"^2.48.1","@types/request-promise":"^4.1.42","chai":"^4.2.0","chai-spies":"^1.0.0","coveralls":"^3.0.3","istanbul":"^0.4.5","mocha":"^6.1.4","nock":"^10.0.6","nyc":"^14.1.1","proxyquire":"^2.1.0","sinon":"^7.3.2","source-map-support":"^0.5.12","ts-node":"^8.1.0","ts-node-dev":"^1.0.0-pre.32","typescript":"^3.4.4","reflect-metadata":"^0.1.13"},"dependencies":{"chalk":"^2.4.2","chatdown":"^1.2.0","commander":"^2.20.0","npmlog":"^4.1.2","request":"^2.88.0","request-promise":"^4.2.4"},"gitHead":"500a3559262fe4bb322d1a523244de295c558491","_id":"directline-jabber@1.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"},"dist":{"integrity":"sha512-GYX03OVIxtS8e95XNDjR6k9gRieCMqHT24hHO8r3goTa0sl9W213ARuJbLQi8iTP8GbUB+7UDdToSdbKo7Ffbg==","shasum":"7e7aa74bebabef09e3ebb00625dc8e2efe266e85","tarball":"https://registry.npmjs.org/directline-jabber/-/directline-jabber-1.0.2.tgz","fileCount":47,"unpackedSize":138209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc9BnpCRA9TVsSAnZWagAA8+sP/2eC4Gdi8FEbatc2J/iD\nhU/yFdE3jvOMpbHifyrmt+AWUQLg8WrGUYoqp+xiZOtTrivMpiItlOIH2x/T\n+5/y0RXh0EsEzBq8KErqXhhzsUv4BAcHoCQiatbF1pIrQ5M8vm6nPV+EHETH\n0HTt4lx09ZVmiMvUI8sFTXQay8GccLhbBIYNt48bN8GRQprzYfo8t3mKF9BI\n+9EsPsQuM9OAA6MEkop32L+UKNPirOUGbKQKRXsNNl0xkF4RLHemnWMvk1CL\nIUEwyjfKIRFM2Z2sVeOEgHkqFwGlo/x9NAdPuAZ/tIvUT69oabkdX/5phPQs\nJ/nTDJK8gqXWsaCDs7yivQhowQ2AaDY7P/fgfOObGhL8zkYn8RA+wl/Gu+3e\nv77BaanjVVexZEpdnXfBPAlcEyyQJNURIX0tTA1iLgDEYbNjwsn/JyDIsZ65\n4POmsSHS8zfpod497rGc3LBihNvdHOcyOcsIslG2SoY+PEGGhCNom8W31CHx\nTwFOP6maGtJvNCipIXc3dSnmCWc9WtsfL9HrVQtnWH1aoIsvDu65idzx7rVp\nfYRi1oPt7cqlj6Ji30yDTwOOYw6JYaECLBwmdLXVf+2P7Zd6JKpw+bbIrTD9\nKWjVhlqaCAizwY4SSDQRc8G1EBRtRpf51Buhx9FO6ZNufbsUOdzqr8ZYDOZ+\nIohU\r\n=rfMG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHAJUHYAMA8t9sZ8PCoJHuEDnwRPNRJj8IApLp4i+wllAiEAq4rvYLqktr2VVEN8KnhtBykfSja1U8gDMyglLly0rv8="}]},"maintainers":[{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/directline-jabber_1.0.2_1559501288643_0.9899955202526014"},"_hasShrinkwrap":false},"1.0.3":{"name":"directline-jabber","version":"1.0.3","description":"Automated testing of Microsoft BotFramework chat conversations using directline","main":"out/processor.js","scripts":{"prepare":"npm run build","prepublishOnly":"npm run test","test":"mocha --opts mocha.opts","test-coverage":"nyc mocha --opts mocha.opts","build":"tsc","buildserver":"npm run test-coverage","start":"node out/app.js","patch":"npm version patch","pack":"npm pack","publish":"npm publish"},"types":"out/processor.d.ts","nyc":{"include":["src/**/*.ts"],"all":true,"exclude":["src/app.ts","src/tests/**"],"extension":[".ts"],"reporter":["text-summary","html","lcov"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/jvanderbiest/directline-jabber.git"},"keywords":["botframework","directline","automated","testing","chatdown","transcript","chat"],"author":{"name":"Jonas Van der Biest"},"license":"MIT","bugs":{"url":"https://github.com/jvanderbiest/directline-jabber/issues"},"homepage":"https://github.com/jvanderbiest/directline-jabber#readme","devDependencies":{"@types/chai":"^4.1.7","@types/chai-spies":"^1.0.0","@types/chalk":"^2.2.0","@types/mocha":"^5.2.6","@types/npmlog":"^4.1.1","@types/sinon":"^7.0.11","@types/node":"^11.13.7","@types/request":"^2.48.1","@types/request-promise":"^4.1.42","chai":"^4.2.0","chai-spies":"^1.0.0","coveralls":"^3.0.3","istanbul":"^0.4.5","mocha":"^6.1.4","nock":"^10.0.6","nyc":"^14.1.1","proxyquire":"^2.1.0","sinon":"^7.3.2","source-map-support":"^0.5.12","ts-node":"^8.1.0","ts-node-dev":"^1.0.0-pre.32","typescript":"^3.4.4","reflect-metadata":"^0.1.13"},"dependencies":{"chalk":"^2.4.2","chatdown":"^1.2.0","commander":"^2.20.0","npmlog":"^4.1.2","request":"^2.88.0","request-promise":"^4.2.4"},"_resolved":"","_integrity":"","_from":"file:directline-jabber-1.0.3.tgz","_id":"directline-jabber@1.0.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"},"dist":{"integrity":"sha512-IeKUHrj/s7nLrkgDcWznhe4a70NX2nYpdr2u/7ra8fo2RmoOEfduJak38CqKskrE3VMCR890uGU5BEZWHhQ4wg==","shasum":"176559a99ad25fef4513396682dff05497e07a4c","tarball":"https://registry.npmjs.org/directline-jabber/-/directline-jabber-1.0.3.tgz","fileCount":49,"unpackedSize":146012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/hsSCRA9TVsSAnZWagAA4H0P/0F61AAaBFroW1FadQMW\nbVY4tOQzsKlbtpO/n19fcovYmOQwT5u0hPhVMpOfP4mPuGqRV15B9GOGIx/E\nMeSrXXUel9lklZAHaa61uM/ks9tN0bngsoNUFUppJUjf8QjiYvwg0PYeA6Qk\nn5wP7azik6cvTVfIB8Xr52zeRVk3XSM/tJ5Cfdppx4xOB44sfZu3ls1S0NTj\nu87sxbAfV3ffeFX4NVMc+MOuEmXHCnWa1OU/i/JeFCd8q2x4n8DRQPpBmh6W\n+CmGaO4x6tdTFA7+rLCcDeGTP6q9Hc7UZ8gKGt0CEf9FZipO9NOV5Qc6T/PJ\nxafFgUAAs0FubLe8MRAM67kGGoH/0LXjf0JbJUIQb6jbe7C+VYKS9Eq/y1Tf\nQsQWo9F1K4cyihpEQOryX4H/CCCaTcKmuZRPvS9f/SxeMaU5unb4PNP28hGD\n9OaCjROpD7isbaQnUx6OQ9rgV8SBk2pLVZr83Ona5klmulFoVE3XC+DZrkGb\nCYbony2/U0nQOtXkkaR8c0Hdxi35x2DSxAhR7lVvnqI22j6aQGZBmu0sFdDg\nYD2E0XNBUesxZw/J/3yWaLafH6Tj5Egts8UKC8NsSJFW7Fvs+61ykiQXbweG\n2m2kQEEI//pS9YGgZElGSf6GPO4o1icir310VYtg4mQ+lztos0F/pnSNvHns\nmeHl\r\n=xqt7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEJjyb7yCq9srLpUmjn9rahRwYY45V61ccZ+Bp9Z0tOAIhAN3oEQJS7fYXEwyLXONBoys4MINppca28A9PuHupYSan"}]},"maintainers":[{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/directline-jabber_1.0.3_1560156945223_0.1493997131332523"},"_hasShrinkwrap":false},"2.0.0":{"name":"directline-jabber","version":"2.0.0","description":"Automated testing of Microsoft BotFramework chat conversations using directline","main":"out/processor.js","scripts":{"prepare":"npm run build","prepublishOnly":"npm run test","test":"mocha --opts mocha.opts","test-coverage":"nyc mocha --opts mocha.opts","build":"tsc","buildserver":"npm run test-coverage","start":"node out/app.js","patch":"npm version patch","pack":"npm pack"},"types":"out/processor.d.ts","nyc":{"include":["src/**/*.ts"],"all":true,"exclude":["src/app.ts","src/tests/**"],"extension":[".ts"],"reporter":["text-summary","html","lcov"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/jvanderbiest/directline-jabber.git"},"keywords":["botframework","directline","automated","testing","emulator","transcript","chat"],"author":{"name":"Jonas Van der Biest"},"license":"MIT","bugs":{"url":"https://github.com/jvanderbiest/directline-jabber/issues"},"homepage":"https://github.com/jvanderbiest/directline-jabber#readme","devDependencies":{"@types/chai":"^4.1.7","@types/chai-spies":"^1.0.0","@types/chalk":"^2.2.0","@types/mocha":"^5.2.6","@types/npmlog":"^4.1.1","@types/sinon":"^7.0.13","@types/node":"^12.7.3","@types/request":"^2.48.2","@types/request-promise":"^4.1.44","chai":"^4.2.0","chai-spies":"^1.0.0","coveralls":"^3.0.3","istanbul":"^0.4.5","mocha":"^6.2.0","nock":"^10.0.6","nyc":"^14.1.1","proxyquire":"^2.1.0","sinon":"^7.4.2","source-map-support":"^0.5.12","ts-node":"^8.3.0","ts-node-dev":"^1.0.0-pre.42","typescript":"^3.6.2","reflect-metadata":"^0.1.13"},"dependencies":{"chalk":"^2.4.2","commander":"^3.0.1","fast-deep-equal":"^3.0.0-beta.1","npmlog":"^4.1.2","request":"^2.88.0","request-promise":"^4.2.4"},"_resolved":"","_integrity":"","_from":"file:directline-jabber-2.0.0.tgz","_id":"directline-jabber@2.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"},"dist":{"integrity":"sha512-6ws0UowRrqhBx5jAAAjE3N61BqdaN+Cr5YdKVcmpK19pI/iFZiEPIw6GcN5ZOP11czTnG/kJaIW95TUQVozNOA==","shasum":"43f7e45894b01e609bc3b795fdce0ab4686d14fa","tarball":"https://registry.npmjs.org/directline-jabber/-/directline-jabber-2.0.0.tgz","fileCount":75,"unpackedSize":208291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdb7OaCRA9TVsSAnZWagAAmjIP/1WyhnHeQ4xBgHgGGkVO\nReWbid/TLiGvNfVXbZPcF3WZPQBYLtxeQLxBFlVa3HKK9pZ1Y1K8rpm2gvCB\nlF7gpYc4nQvSUlFi7KVF2zGTfdS2mYIANmMd5nt9eRtLc6VwjxzO6kj1wLJc\n7glubyVMS+YZDBbr7c9wsyib04BmgDnlhcJQWS4Dedg27uQ4FzexYKUGR7LB\nF3qQGHOdN1gJauN4a+QeiJvxsc3YxVbncJYbS9UhrBJQFhz+YxtyCY/hWk07\nVJZr5v4gDx59czMaxqaojvP2Iog7BQMdJK/iE4mxEcLlhEcS996FzaHapleJ\n9bsad/H2PRHPPJSB5hOCuUtkWr/Mj4Ykm324AgDLLpwvOGmTLos8uyzYdE5h\nwqv9wgJz/jypI2Zfrt4jhjFJOtgByVHUNRVdd/76QeDBWhuL2mql4kYyC67r\n9nQltcILhqVOhK94/n7OoGN4Hnb0WUkphnvEPUiLCYoRTdCj6PE5NFWKxwAt\nh6SXBPSYbxIKwE+sg7UhsdiCF8NIxUpZoVZ+iHtKVMRu8mN/WF4xRDSSOjap\nw+RXLS82b15ydiX7p7bsC/INDBWu3doIC3/8pehIdJTPSqfulnuE0fyL6ySb\nVF4oWChEh+KBPkdud2kJE8AT1WRszDxP7LiuU9maDx9YXmB2JXChJacbPyff\ndSuS\r\n=iIq2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6d2xBCMdITLjM9BfmjqqOXToJm7O8DM9FuGBxqazwUQIgHutKcptxsF13bX4MjCIUJJM/noBrQJTpQTwww3hCnkw="}]},"maintainers":[{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/directline-jabber_2.0.0_1567601561659_0.6228861198094908"},"_hasShrinkwrap":false},"2.0.1":{"name":"directline-jabber","version":"2.0.1","description":"Automated testing of Microsoft BotFramework chat conversations using directline","main":"out/processor.js","scripts":{"prepare":"npm run build","prepublishOnly":"npm run test","test":"mocha --opts mocha.opts","test-coverage":"nyc mocha --opts mocha.opts","build":"tsc","buildserver":"npm run test-coverage","start":"node out/app.js","patch":"npm version patch","pack":"npm pack"},"types":"out/processor.d.ts","nyc":{"include":["src/**/*.ts"],"all":true,"exclude":["src/app.ts","src/tests/**"],"extension":[".ts"],"reporter":["text-summary","html","lcov"],"sourceMap":true,"instrument":true},"repository":{"type":"git","url":"git+https://github.com/jvanderbiest/directline-jabber.git"},"keywords":["botframework","directline","automated","testing","emulator","transcript","chat"],"author":{"name":"Jonas Van der Biest"},"license":"MIT","bugs":{"url":"https://github.com/jvanderbiest/directline-jabber/issues"},"homepage":"https://github.com/jvanderbiest/directline-jabber#readme","devDependencies":{"@types/chai":"^4.1.7","@types/chai-spies":"^1.0.0","@types/chalk":"^2.2.0","@types/mocha":"^5.2.6","@types/npmlog":"^4.1.1","@types/sinon":"^7.0.13","@types/node":"^12.7.3","@types/request":"^2.48.2","@types/request-promise":"^4.1.44","chai":"^4.2.0","chai-spies":"^1.0.0","coveralls":"^3.0.3","istanbul":"^0.4.5","mocha":"^6.2.0","nock":"^10.0.6","nyc":"^14.1.1","proxyquire":"^2.1.0","sinon":"^7.4.2","source-map-support":"^0.5.12","ts-node":"^8.3.0","ts-node-dev":"^1.0.0-pre.42","typescript":"^3.6.2","reflect-metadata":"^0.1.13"},"dependencies":{"chalk":"^2.4.2","commander":"^3.0.1","fast-deep-equal":"^3.0.0-beta.1","npmlog":"^4.1.2","request":"^2.88.0","request-promise":"^4.2.4"},"gitHead":"d496a2967d69387f085193e8ef857523350f8ff2","_id":"directline-jabber@2.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.3","_npmUser":{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"},"dist":{"integrity":"sha512-lAw5tz7kd8dA8fW2hRlpiy2wULa7sO76kYoJz9IdgjPsvWSKZwtVQkduLKjLb2qADYtaa0SEqXMxsj4ucHsLGw==","shasum":"1c67b6c0e57d593ff2356db4fce49dcfdd011a86","tarball":"https://registry.npmjs.org/directline-jabber/-/directline-jabber-2.0.1.tgz","fileCount":71,"unpackedSize":208084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdc1fyCRA9TVsSAnZWagAAsOoP/2gKcSW5aJlA9t/+sI/y\n4SEHkgd16CnMhtT/kE6ZbIbvRLU+b2Tn6zc2BYeM+aGQ9GVAXX55auyatGoT\n5xE2BFGFe1QG295bgXeWwdyZ9RAX/3TpE+fLDovXIN4qCoZWRKJQy9WduACp\n0iNaIgw3BNCKqh2x3jEFsHe/PeyAwlbmQLd2FfRQop9p+VxDrQSQAulcgB1y\nj+I9LUlU4vGFiT3VU1lEKzJ4rsT0zzzGPtqGQX7kmCq/QcXWjoltH/oLO2zA\nGjFnO/PvD2jauvKJoQY+/BKW+rExLiED3LNUWdPEBIbpHMN0MRxAUjF4lntK\nCsSTu2XcjDFO2mwB0gZwn9UI0nRBEnU3E4Prqp20zhgRT4ioPfJ91R3A1Dmn\nBZjHcnRk7WOHTu6JP7Eqet2fxW8jTLa47kv8ENFNRKK9PrtX3OGYxsTH8Ogx\n+12bQQu5Xq3DIks5gvOvsCOXxESKqq4yq1DQM02PLq1kEMG0MuqPkoU6OTvD\nW39rjEdUuya1mFjcau5vmcvh84IhM7WJ9Q4A3njAtepyzMPaIDchvv5AOcnp\nOHBhV/k07Bqa+ndrPIU/uGVcI3WAObh3rvUq1/ICiXDHBOqALgn4rUpJrJ44\nu0X9sWZcMVmSoVoQ7WMCNd3ndD3KXdvMc7vCNIewZUmfCfXBHQGV89dcZR+d\nryJL\r\n=4Cyk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7qw5qAH+miDahmjfZzpjvf1m4iZIuSEMU7pl7dFeEEgIgSqiGvm78P5jwy8MT4QzDItzYf8cpHxO79ZNXZu38Ci8="}]},"maintainers":[{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/directline-jabber_2.0.1_1567840241406_0.8276250641042753"},"_hasShrinkwrap":false}},"time":{"created":"2019-05-23T10:14:14.727Z","1.0.0":"2019-05-23T10:14:14.970Z","modified":"2022-04-28T20:57:39.964Z","1.0.1-rc":"2019-05-26T14:12:08.375Z","1.0.1-rc2":"2019-05-26T14:43:53.513Z","1.0.1-rc3":"2019-05-26T14:50:05.230Z","1.0.1":"2019-05-27T15:06:55.672Z","1.0.2-rc":"2019-05-30T20:03:17.777Z","1.0.2-rc2":"2019-05-30T20:43:24.592Z","1.0.2-rc3":"2019-05-30T20:52:18.392Z","1.0.2-rc4":"2019-05-30T21:33:16.855Z","1.0.2-rc5":"2019-05-31T09:34:11.808Z","1.0.2-rc6":"2019-05-31T13:12:20.674Z","1.0.2-rc7":"2019-05-31T14:53:30.145Z","1.0.2-rc8":"2019-05-31T15:20:01.407Z","1.0.2":"2019-06-02T18:48:08.911Z","1.0.3":"2019-06-10T08:55:45.759Z","2.0.0":"2019-09-04T12:52:41.816Z","2.0.1":"2019-09-07T07:10:41.625Z"},"maintainers":[{"name":"jvanderbiest","email":"jvanderbiest@gmail.com"}],"description":"Automated testing of Microsoft BotFramework chat conversations using directline","homepage":"https://github.com/jvanderbiest/directline-jabber#readme","keywords":["botframework","directline","automated","testing","emulator","transcript","chat"],"repository":{"type":"git","url":"git+https://github.com/jvanderbiest/directline-jabber.git"},"author":{"name":"Jonas Van der Biest"},"bugs":{"url":"https://github.com/jvanderbiest/directline-jabber/issues"},"license":"MIT","readme":"[![npm](https://img.shields.io/npm/v/directline-jabber.svg)](https://www.npmjs.com/package/directline-jabber) [![Build Status](https://travis-ci.com/jvanderbiest/directline-jabber.svg?branch=master)](https://travis-ci.com/jvanderbiest/directline-jabber) [![Coverage Status](https://coveralls.io/repos/github/jvanderbiest/directline-jabber/badge.svg?branch=master)](https://coveralls.io/github/jvanderbiest/directline-jabber?branch=master)\r\n\r\n\r\n# DirectLine Jabber\r\nDirectLine-Jabber focusses on automated integration testing for the [Microsoft BotFramework](https://github.com/microsoft/botframework-sdk). Using your [BotFramework emulator](https://github.com/microsoft/BotFramework-Emulator) transcript files it will check if your bot responds as it is supposed to respond.\r\n\r\nIt tests your conversations by authenticating and sending the activities over [Direct Line]((https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-directline?view=azure-bot-service-4.0)). \r\n\r\n# Prerequisites\r\n- [node.js](https://nodejs.org/) v10+\r\n- a deployed bot instance\r\n- a Direct Line channel\r\n\r\n# Commandline arguments\r\n| Command | Flag | Description | Remarks\r\n| --- | --- | --- | --- |\r\n| `--files` |  | transcript file(s) to test. | Comma seperate for multiple\r\n| `--dirs` |  | directory or directories with transcript files to test | Comma seperate for multiple\r\n| `--preprocess` | | activities to process prior to the actual conversation file | \r\n| `--userid` | `-u` | replaces user id in activities | \r\n| `--useridprefix` | | prefixes userId in activities | \r\n| `--secret` |  | directline secret for authentication | Mutually exclusive with `endpoint`\r\n| `--endpoint` |  | endpoint to retrieve directline token | Mutually exclusive with `secret`\r\n| `--recursive` | `-r` | recursivly scanning for files in directory' | defaults to `true`\r\n| `--verbose` | `-v` | enables verbose logging | defaults to `false`\r\n\r\n# Authentication\r\n## Secret\r\nYou can use the secret key that comes with your Direct Line channel in your Azure bot channels registration.\r\n\r\n## Token\r\nIf your bot exposes a [token endpoint](https://docs.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-authentication?view=azure-bot-service-4.0) that generates a token from the directlineSecret you can use that. Your token endpoint response response should be a token object `{token: ''}`, a token string or a stringified token string. Click [here](https://github.com/jvanderbiest/directline-jabber-demo) for a demo implementation.\r\n\r\n# Installation\r\nInstall the dependencies and start the app.\r\n\r\n```sh\r\n$ cd directline-jabber\r\n$ npm install\r\n```\r\n\r\nRun examples:\r\n```sh\r\n$ node app test --files <filePath,...> --secret [directLineSecret] \r\n$ node app test --dirs <directory,...> --endpoint [tokenEndpoint] \r\n```\r\n\r\n# Testing\r\n```sh\r\n$ npm test\r\n```\r\n\r\n# Sample\r\nThere is a complete tutorial available: https://github.com/jvanderbiest/directline-jabber-demo\r\n\r\n## Preprocessing\r\nIn case you need to execute other activities prior to your conversation activities, you can use the preproccess flag to specify the activities file. This could be used to send custom events before your tests are executing.\r\n\r\n## UserId\r\nYou could use a fixed user id in activities or use a prefix for each user id.\r\n\r\n# Azure Devops Pipeline Task\r\n\r\nThere is a task available on the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=jvanderbiest.directline-jabber-task) to use for automated testing. Pipeline source can be found [here](https://github.com/jvanderbiest/directline-jabber-az-pipeline)\r\n\r\n# License\r\nDirectLine-Jabber is licensed under The MIT License (MIT). Which means that you can use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the application. But you always need to state that this repository is the original author of this application.","readmeFilename":"readme.md"}