{"_id":"@humany/widget-conversation","_rev":"133-8d8319d96897187c84cb26e024ee8271","name":"@humany/widget-conversation","dist-tags":{"next":"2.1.28-alpha.8","previous":"1.0.0-beta.41","latest":"2.1.28-alpha.9"},"versions":{"1.0.0-alpha.0":{"name":"@humany/widget-conversation","version":"1.0.0-alpha.0","author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-alpha.0","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"ee863b78dbf3cc44f3a15b6ba7fc59c6ec457ac2","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-alpha.0.tgz","fileCount":2,"integrity":"sha512-t1pOtDluq12ZlKIyFqjRdJQkJ2nzeHspELKUfNuOvAs1hYBY2P/glqcU0MX+rwomRqt/NJ4UW3mQWyH4FH8KGA==","signatures":[{"sig":"MEQCIGbXYH1TR8u84ZlRbMyDviWxWec4cTqMq6KFc5CQ1YrsAiAhmbT7Zvob+K+kfbG2c1lGhAa91iUgN3NtUPGrgkV0bA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":375,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/linCRA9TVsSAnZWagAAzE8QAJiKfpzTheYAeMp7HUqQ\nmophBgl0dCDSwihQRtJ9OLdzc6pQM0EZ2H72shEEoWlwMLcXV4qkLzefIF/S\nRNYEun95+3FXJVIQB8yEcODcWE1IVqiH54In5zwVITxfG+0XbUOEHQ8lkgLo\n/2iv3Hz2/rrsqnVmtTK/vvVeH5jL+jbOnEV2bw8YDrIu/Ke1O++AeKTiG7IE\nvUz12yZl2vvcyA9wGw2Qky6RwGSfe5nwZEal8swJVs1LGNNFxkz8e9n4d8UZ\now/IsUqZ+d0luvQTTSgO2Zl9fnCNWfNpreCieEb9B3R37TMfak0bUUS8ehN4\nGZDQSIbjGxRbtvyI62fi6TpW/001zrve+2rE+G/D4BYWPcMTnWB1aOkZ9wSc\nV1SjNgKDnMM8WbsnBSO0KLJdB43IXKs5XMKjT2aKHv4YNdQmItWvna9CzeVL\nu3Qgn3aHk1LIHi5m+MSY1dwSy6bB6De3p+rx8+YB/jgYuEc+T/ATWlzFw/JC\ncCYSJ7XFuNi7OE969mpCFRX2iAINdIz/DaYn1URegJ9mG4dZYZ4nZwQwklvo\n9UZ38ZNMb2FlhCLRD1yQlLPpUFUTSZRL5RF3lx/wzGKRKTvaa8C0A1UkYbDc\nN/5tkKEbIRSlXK3mFZPGSsrqvxjGzyps1IWYG4UYC2y2BBLw1K+LTYvIwE/G\nvCXg\r\n=hlMu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"5.6.0","directories":{},"_nodeVersion":"8.11.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-alpha.0_1560172710835_0.01876463650318949","host":"s3://npm-registry-packages"}},"1.0.0-beta.1":{"name":"@humany/widget-conversation","version":"1.0.0-beta.1","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.1","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"9b75c76f0154bf7c2fffca9f72c26f076ddb40b0","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.1.tgz","fileCount":69,"integrity":"sha512-gR5tl/qFJmORFYGSKEfHMkX7tf2117svRqWkBspR0tDdtNN2vKFhSqBSBGWEfEsIHfITWW3JC0Beo5GzJpu0+Q==","signatures":[{"sig":"MEUCIG1bZSjyFr+HEegDsjtbK+hO4aOYxWXAj/bz8TA51KMpAiEAoVVxp2dXfTGbFyRgicyCdmRdyhk9BTFqF8IFv3lnw0Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111771,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc/l9vCRA9TVsSAnZWagAAlvYP/1HpHMDzapwbpQe4HKKT\nxxeHuDleHLaEsnDYYhRPDoe1WthE9Za0/OF8jfrm+IXNhJEQu6Ypz2/UCVC0\nfm4N3+IpoIQUNZxcyCs7QfY1zlvC4oTOOFZlUYmEsbAN8NJRWXRUxEmLokJU\nWhVkHJmm9LdCSR1KJBTs8qkBf86kBltBeJhysOavvPMF8l0+haJmkErTvqze\nzA/y4ihvMr7+opNh09a7/eiNgnsnZ6M92Iz8EbR+tabB8GdbM+I0a89JOc9N\nSrxIqozoFn22pWXOFSrSh/UA0xQudglVWUmOf28C3t/omHB5CBW5QTasU9/V\nLCXccn3wT/vUjWf6TtGIyHZgT4yAWq/ng3ozf5h1QSjBk4BkMYR2r7W/8m5W\niI79gHY+6/RIZAft4W+zboRWXQVgVcaDpW69R7nluBXIkTQYB8BhB5WBF51E\nx53G3WHVZY+njU4TPKQ/IM5n+Wkx3gXe60Pi3Cx3YxSUXbGPd0SfLTUX2V2D\n/zUzdmhCVp7TyWhCHcgH/JrPfUOev8MaZgGIxpkiO2LudBI5Y9PVnCSDQYZF\nqRoM3QHNDiFDyV8/B0Jm8OQLHmBE3ro2somJRTC6fYG/wNm3o82jkNvbF8M7\n48fvwFLti6optfcvSLiW/YGf8e7QQyObpRxh4zY5HufkiVx/i0rGKXblZcAG\nJ4pL\r\n=Btuu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"64eb4dbfcdcab29ff4d2e58618fad8c9ec5f6302","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.13.4/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.10","@humany/widget-data":"^1.0.10","@humany/widget-forms":"^1.0.16","@humany/widget-adapters":"^1.1.9","@webprovisions/platform":"^1.0.3","@humany/widget-types-bot":"^1.0.16"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.1_1560174446861_0.7065496927483181","host":"s3://npm-registry-packages"}},"1.0.0-beta.2":{"name":"@humany/widget-conversation","version":"1.0.0-beta.2","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.2","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"db85228fa275d5541692f368a77c38dcd89d25d2","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.2.tgz","fileCount":69,"integrity":"sha512-/X260IUJY5hDjflR/uS28yu4sUXDv6XVshGClSOwBvUQu0eukxTTf4yxlDO/wwiK4JT0CSe/FrJ8f1lyv5qu9w==","signatures":[{"sig":"MEUCIQDciGtMMIn/codRKchZmGukhprMenCSDVemK9mJPdcWLAIgbY2PTLehl6WuOE3frfiwTUacMHwEddzN5YAGM8tjVxQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111999,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAJ4aCRA9TVsSAnZWagAAiTsP/0Nh8eBO/hwK8dd5K8JT\nwyUzecoe8FyGDk3y11ChbmCD55XeX9yqOzFUeT5I+rMGcMwMNa7bHA4kZBbM\nbFeS9X+t5YXfm2WNU4lclB6qxSnU0UR8XNc4Cqg5uGLox/C92UaX3Er26P9W\nozj25x709D1n1kdsWwxsPxAhr0N0+M2vv4TaKLRbFkxq6xX0ik8VzuQEOC3A\nflzNUgdq/Q0DrBCyWPQVH5+cwgypGIk7nlJZLTA8Z23LaQ20fHbSZdw6l2JC\nwnTRzB/aDaHUY8U09cIXL9eYPkWwG01w+UaUz5k1ASzUHhC/ssyswtIuzUnA\nmuTYosswzZ5IZnEhVCkZg+XRqqUBCBiS2UI5xc25hHsFQsalqytGEjQ5xXQ/\nXcVvGpFbu6LluOF3NbwoTUo4t//G3RThv0T5QWOSxZ+skzDHkFPntB9H0ltL\nd3c4mNAqxu+XH9Vd7GIo7hFhs6Gn8Fc3tcx+cG6Nsedppxtv+oVcP2DuMoGm\ngybbSqR1dPc+omZR52aMCC3ch7nt/1JSlh00I3iIpasT/waTzSUKC2TEl1yU\nas8NdZrpwYh/IVOQct1xgPl9y93EduiwwxFuS8LQJbwTRvnXSBD5RVt9Xdhd\n0BprNTDNRj99o2lEvtIbJkd9WGVKMQ/PA9yrYipNjkoQXdSfscXFtzuRZ8db\nhsm/\r\n=305q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"084ab6d95b0195ba3ad74d2740fe0ce2a8855ebd","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.13.4/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.10","@humany/widget-data":"^1.0.10","@humany/widget-forms":"^1.0.16","@humany/widget-adapters":"^1.1.9","@webprovisions/platform":"^1.0.3","@humany/widget-types-bot":"^1.0.17"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.2_1560321562188_0.6017922681655923","host":"s3://npm-registry-packages"}},"1.0.0-beta.3":{"name":"@humany/widget-conversation","version":"1.0.0-beta.3","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.3","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"f2834e38dc633abf3bac66fb1991b2663f27836c","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.3.tgz","fileCount":69,"integrity":"sha512-hqCtv7JL/6DVfLFvQE18Z7zbKLsb8hzyNvgo5x4Dz6WDThXGOQoeFcbZ+UrSjNaDU4CiHZ832cgCKNA4DGcb5g==","signatures":[{"sig":"MEQCIEsP7bGpzZCf2BNQiRzX5ebjjpjLV+Ci1oy0q6hpfEvsAiA8QV5WOdT7Upnov7KzqE70AflVK7JQma3zatSIUF0W2g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112299,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAM4SCRA9TVsSAnZWagAAblEP+QDeHCHZwfA03SYB5Yvc\nbmRSWo8GYbhjJgx0AwVWSdwpdDpZWdRwxL4jTRcJHBmlyiBSKhLcg/ZAxXuO\nUFeaXpCpbr6By3uGofphm1BFHHzHpiGYnlxpxTon/hrFmBWFwzePwz+zdHwt\nGzAdlGThguA4zNy+B6RrwezjjhkTG8yEgSsAzfAjES0dK4v1LquwqHbiQ4ZD\nw9gsVZT/Xh4ZDmZoo+WUebtkKiIylxUs8/uXduDjypFswxzVBrO/zGt2Gp2F\nI3qykC41ZS/2I7Jx24MmluoAImvM1KTEBeq78RZ+MB5nGRVH08rJJCVEU/Ms\nNpa/2KUOGmGQL4gQT/FKc3rclqDL6zci2jTO7AICVxQhdOpSTHjiFUGAlrUF\nQNVvXZbg919bG4dztDLskOuBgC30bL11idmFqa2P7FzAJ0aGVbVGQSMlthjs\nT7e7lbm2kDx+qFAPDAL+/GGrF15zh29w8TF4BQHB51c9NLDYhrEZZiqFocVu\nhLKnhG71SZ7uMqxWvq7dj81jDYlvW5Nr1IbGw9Jd32pe/BP8B4FbFIZTaMak\nYQxxSTkBKEDJQa6Dj+1cRnfxw/DVb4iM6Z1bL6N0iPSqpt2/rSpeScL4f5os\nD2SHhcDFyg4YYArMmvYKYaSx7drB7y1UBgkvM28nuQvFRBE1w47MLpQxi5FS\n/gnU\r\n=nQy3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"8e6789ab13b82478a6f4e9a94e709a8d2da51b77","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.13.4/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.10","@humany/widget-data":"^1.0.10","@humany/widget-forms":"^1.0.16","@humany/widget-adapters":"^1.1.9","@webprovisions/platform":"^1.0.3","@humany/widget-types-bot":"^1.0.17"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.3_1560333841367_0.4613759194670466","host":"s3://npm-registry-packages"}},"1.0.0-beta.4":{"name":"@humany/widget-conversation","version":"1.0.0-beta.4","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.4","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"6318f1151d848a1bc4a32fcefd900e7c6baad8d7","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.4.tgz","fileCount":69,"integrity":"sha512-1hghKOI0uauOCUXkVbyIa5pSS+jz6it1vl9bGvY7UxU+tJ0qtcLcunX6//qJ3occbzZpdJdvoh5CfayQ7jtKJg==","signatures":[{"sig":"MEQCIFVxNg/UR33X/Y1C+FUi4iEf2RCauFPKxkfLej5WVr4+AiBhXSFTLwqxjm9sNrHROeLUSZik+cVV0i8XNRqW4U15Kw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCLEWCRA9TVsSAnZWagAA3vcP/jTTX1TdyhmbxP86Ambx\n49m4Q7/vVAVvok8aCDf3MkZSmC1k3fq2hA0CY2I4cLfqmnEDdP/5kqJdHWfq\nHN9K8s9YVzRLcZF8Z9HH6zvVdQTePQOPH10u16RnSQAS6ZHNpBDiSnMAr7VY\nT3jhygmNFPa5FgBRTvgEAfDEQJNdwIF6MDgeaqej4u7+txtNTSXKLhPE4D6K\nlCLk/vs8g+MsKrxAl6H0l9yV+2NbkzB3H7vCjZEh5V8+6Bu/bkCZcvId8BqM\nhWrPkIH6zkt7Mm3JWrIQsQThMfVPnSfwtXS55RPFG2a1xs+lT6eNcMsbQwK6\n07tG/W6ixzn1NLKVAMCujwcwV0jU7pPJHQzZyk58DHkHihsQGRVBB6LoZl+c\n/1tGGQO3juU2HhSTH/BIfXI0tNYBfUNBN80vnhdSEJDI713OkCXRD2F68F66\n//D0dk64HLNmJMdJUvnJafFLW0ar4A1lz6L0cnA9AkASOlIJIPlolLvKV4uw\n5bcwHhhThdfJRJGXTmWIt/u+tw/xM1YXD1kECWNhYnuDUqHy01kqN8GZxJQV\nidqcFJiaO0ZhSG86bqucrcMJIjealum7PkkCi1pSvK7u264OwTJbvBCiAonu\nhvDQw3dbgjW59tZdLrw3VVj4gw63Abw9ep3KD7oEB06d/OafTrOFZwZSeu0/\nPkTQ\r\n=FRUP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"5a44469cfbee28958e401c6a88785426a5535cdc","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.13.4/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.11","@humany/widget-data":"^1.0.11","@humany/widget-forms":"^1.0.17","@humany/widget-adapters":"^1.1.10","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.18"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.4_1560850709784_0.2848769634485129","host":"s3://npm-registry-packages"}},"1.0.0-beta.5":{"name":"@humany/widget-conversation","version":"1.0.0-beta.5","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.5","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"0691f3731cd724d0ff8b97223d2bde4738d938a6","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.5.tgz","fileCount":69,"integrity":"sha512-q1WSiZQEWQVAwYeGLrzIsZ7D68Tk5FOFU6Cn4BhqgQwqiTZieMeoYzhDSo6ZH/NVDJkrKln2VUQ7dy9ZZZVE4w==","signatures":[{"sig":"MEUCIQC4R8XpUErVDdFRjIkglqTln65Pkg4KNDiZ0Zse965krQIgN81lzCMCLy/OExjBFvFL+Cwu6TG/IHXAkCN0+zoNEzQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdUrlxCRA9TVsSAnZWagAAS7UP/2OVB0pGfI+5JbX5RvMX\nLownE4MYXWZCcKWeELpkc5t7/V18z9QSk3PYp8572J8s6uJSKneQ/1T4w9rf\nMduCtUyHMHcsPBj5Yqk6DvvjVaSWcJDMSkIHGA++B6O5fD1DGJ1qlZv12VCu\nicHZCG2DeFDK0RhsvSNfchLLvUsWATCsPc7va0Z2cNW+UYjY0Ekf9BEC5IHA\nOv73X8/Lv4vnCOWpdzKx52CZQjTrqoqcAx+VjHz6Qdx5hzs7ycspm2uGgSM/\ng9cj54sgD2JmBdC0E5yt53OBGUWdisDaHJQ7YssHLGo7ceQ6C5d26pTC8VAr\nCKzBVHz4Hzp/8Bq8IadkWUQJu/bJVntlNNBppNLyZoDPn70ifGbwOtqwrMuT\n1iabVX1os78JtEt9zBiMnQwqPnu5AQ8uR5zW+JfV59KkC0TewxZEqnAPXRp/\nJ997LFtD+uhURGYpcJDZXprj7aAkHB3hM5wKriS4iwIiHBsWYfQiDpXyxG0I\nh2JUh6DbF0cN32zkpkAde/JMUgX4JwKQUdbjochjJgLQPUKE56fZ4S/aQQfK\nlJBPHLzUqdAl8x1+qURdUevTOBfmldUpL5HAfMPGZaSOwz7i8kXx7AUg9si3\nKXHjWwm+WRTxJ83rI9j/OoybJpUJv9ieaVSQh+KQ/JOh8Y7XGMuooyGygr3o\nvqyr\r\n=LcLI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"85af2abdcfdedb34b120966b2a6d90a349980a8a","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.13.4/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.11","@humany/widget-data":"^1.0.11","@humany/widget-forms":"^1.0.18","@humany/widget-adapters":"^1.1.11","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.19"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.5_1565702513064_0.9704501440697375","host":"s3://npm-registry-packages"}},"1.0.0-beta.6":{"name":"@humany/widget-conversation","version":"1.0.0-beta.6","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.6","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"ae6fe5f68f97b6755eab5b79a64d899548893eb8","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.6.tgz","fileCount":69,"integrity":"sha512-5Lae6V34gZObp7h2Ja0uywtnjmqhOuKfqbz96/q/s1pTp5eeDLNMpFjSTNxaN7yKx6i6QTTjBaAAnxeCIA4/lA==","signatures":[{"sig":"MEQCIFHCF32kPXY3jAN1gsy2jlakFreMo2prIoHVdDGlJzvWAiBNu3n1m91qTt1GR3ZQIUpjq2InAKnmOgGrc4uaNzc31A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdXRwyCRA9TVsSAnZWagAAuekP/RodELHjtv3m8+1LQDCC\nOz00WmZf6HmE86DojFH7648MhCo06TIAdMOHQ1bKAFQR9gK0bG5g1DeQNc/R\nQ9CLpRO3V7DWPMdCQsGznvAGM7zonGgEhn0iKakZz6BPz5rUlmpA/XNEcqTL\nSejEJlpQvnNeChyV0+9P98tgvkL+CuG794WqZcblbuzziEBh91113MqBNbXY\nM1vDK7eDvBIkqJ8mmXG/OjQPMtYgQP7V/I8jzvwOZv+M/jXyykQckXLe3/4v\nqYFFuBkPTb0Gkij9OfuDs3aNuzbO1KM7dVrcxYeQAhDuGOZjxWFOuUA+QMQk\n2wZo4i6j0pMKJYGfxJO0+RxS0mI6YTjtHbhRQong5y0QuwNzsF7SJMgqKiLX\nVXCAu+M+GK/zrKyedrWe6eeqCPMiEleztc0FAG6t5pJVhprrdJnOLpXDrvte\nmRt/OduJMHMOBiWH4Au5BjKNDhT/1dLSN2lir509gH5SE7BvoHIh04xSY58M\nUG+PABfd28ZzgCYctkbZi3I/AQpj06tNiz858kizkSPRm0WnrlY1JlDLMqD9\nE1H9l4rAs9ucoXT4g8s7SxQ56TAeQDBeDISGqmd754UqvjZdtwkYJUKFGhAV\np5+ZiYeNU71tsbGJMqqbtGRwh9Y87gXovhyZUSMDwkq+lbYf5iPimXUZsySU\nFZy3\r\n=C3GB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"66212bfbf7da75fed32bc40c6a83fb053a6de710","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.13.4/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.11","@humany/widget-data":"^1.0.11","@humany/widget-forms":"^1.0.19","@humany/widget-adapters":"^1.1.12","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.20"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.6_1566383153796_0.9648883016814607","host":"s3://npm-registry-packages"}},"1.0.0-beta.7":{"name":"@humany/widget-conversation","version":"1.0.0-beta.7","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.7","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"0b69daa6a34699bc0144dc9ce02e0a2d036dee8c","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.7.tgz","fileCount":69,"integrity":"sha512-8MlDXfuYtsg4RFDmmbHpTNcIyhBw1VqXkEOCgt71Gyg9gx9bnP35Nq6mhUvk02xocmmnCrzvturSrTzWkapcLg==","signatures":[{"sig":"MEYCIQCrvwPjEYHJKaAdtveFvJ4o99KvBo0iGwWuYLd47uCcHAIhAOqcT+h7417yjg6yHM4XT23Z7jcUN8LCO+RzYbb43TYc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdX66/CRA9TVsSAnZWagAAX8gP/3XsVmm5mce1IdtXor2X\nSH1A6gAfmUkjxGa8/+6rVcWpVCKkDquF8gJfXhDuRYv+kmNgkmUOnVzJcSb/\nZx/ft7PUuWnKZNvmhJRpXCoJs47dydhRhSc6t7cDnA7TZhevwAlELFAM8BXZ\nx5DhDh1FtszSeLi6zFWubr2+4rTHhK5W4xebgWvMy7W+JkgtqTQb0d6qdxcA\nouEKfxZEWw1j+0i+10DYJDH6Ie0ZXGqx7oWDHCixBtHVacWgZW1lmk/muf2X\n70kpAuV0g3faoQwexpJ3Z5Q/MLOroIMBqr04KwiKUsqWEqEIUsRWvuK8z0N2\nJjHHQk7e3x9HVfwFRMfogSF27CD/lQf7Mte1hP4f0sJoy4E5i8qbTdJHb1Bb\nl0o4S4nxXHzi5dwsuUEAHXfeMAtkV1+yq2P7FTTPb/pTE/HP6vvQT7IBvT7g\nVGpeGnepfBUTMKEFwmhS8LgMhaXMn2eT6w7IXmWcIgUqfiJ8V65d3stMWTF3\nx2SCwIS+uziUT47fx0WU8WGRjY0su1/zwrSKdRLbHvHvCyxrFSgu/Y/iZc1Y\ndvrtFZwtIi6sHLn75p3jqJqz5R4285TltendWpJEVWpA7SDi01wEgpxXwsua\n8iIzRTo9o472JLs85BGEB1XoVZ7DgsqfsBarcbilDQzB8X/4hcNUDkzoQ/7o\nZizZ\r\n=4Wjl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"4301611c4cccaee868b021b1a502db5acba8215b","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.13.4/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.11","@humany/widget-data":"^1.0.11","@humany/widget-forms":"^1.0.20","@humany/widget-adapters":"^1.1.13","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.21"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.7_1566551742502_0.6985094778976924","host":"s3://npm-registry-packages"}},"1.0.0-beta.8":{"name":"@humany/widget-conversation","version":"1.0.0-beta.8","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.8","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"c7c92012ec0f1ca434ff75cd159bbe35d88117d0","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.8.tgz","fileCount":69,"integrity":"sha512-uM/vR/eTi3evhSKGGLPMZ7L4GahXUuIkUk3KDSRxaMzaz/qNpRXmvX4BhozBZ7stQuClT9/A4BrALvudRSSmzg==","signatures":[{"sig":"MEUCIEGI/zZmwWHhvsoSR1k95MfQZsxOUuMNXrxLW3yfkH8cAiEAwzNVRptv55XrebFB+XDkGrI2O3g8qHbLcu8vy80iNNg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdejR1CRA9TVsSAnZWagAAmrAP/33U3HOybb3IrCQGXhzA\nZaZdLIB50sYQCJtltFzUrNTyb4wKqGuGZJs9iHwNbuJV8Z1ZnUPkb4THFLqt\nCsJ2E4KuBJ7vMjHf5jIIxbmbKxU95PeRFVR3/Yhq/AEwuF6r4PUKkkzoxQbm\n/jDXMggT8wL91BzZl4Q/0JWrb7nWYk+6IEI0hIlR/dTtipKh9EFYza8Ga3OK\ngy0qaV0u/hzVk5YUppPVVa4vh98JccTQizcSqR7sI6qF7qmWQkFE8mx2XRN/\nGcVrJOacHK3u7JXPchZuJkN4KRUIGvfRH7DFMStdVs0nSoCxBvKpp4hK9N+p\nR38XxcO2Gx86PEdpPXKWILubzBTpxX3b0n5hGD6uONL4SONgTMC2CVJJDQGr\n47otx2ShAQl6LRVKPoUxrE3/QzILSLhR9MMmNKS1ncfukaEso1iwYa40PgYV\nf+2idoHs4nceQb6Nx1AcGt0h25oQ2bj0TE1eBtgt2BnwmkbBXxmjrx9CDaYC\njOUCj7VRvQhQN7DeYJTQadnLyPvA+M6aBkhWm3oy2SD3Vceo/rseOR64mg49\nYtXmD12UbiSSSw/ejxtdNYUX3IAculB2HoN82w8moeqbFW0d19FCvUuNsfdS\nyAuTSE3z5bRrL7q5WEX7V581DLwnrtXGugjL8lYT+G4j6IIS4/g+nkBsymFA\n6dFe\r\n=fxrR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"c0f3446536be38e15c42da6caff9c71bbf142eac","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.16.4/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.12","@humany/widget-data":"^1.0.12","@humany/widget-forms":"^1.0.21","@humany/widget-adapters":"^1.1.14","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.22"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.8_1568289908393_0.2094722520335095","host":"s3://npm-registry-packages"}},"1.0.0-beta.9":{"name":"@humany/widget-conversation","version":"1.0.0-beta.9","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.9","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"e5db9d2711f8388e26565e9a03cf1f6cc6ba0321","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.9.tgz","fileCount":69,"integrity":"sha512-dtyuY9pkd7/YQlRBeMc5nhp1h1hlx7bdm4cU5aHrGLb50hg8FXpPUILf/bxhLO3yIjPDHXBK83YeBYfCYdkc/w==","signatures":[{"sig":"MEUCIQDGdFeRTEI061FxldDWTk4HibPKUntUeXZr4GBSYIFf9QIgfhBOe1b+h/lAg1WY42StzheNJx3s838CykWygo6rB1Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdrrfxCRA9TVsSAnZWagAA0n0P/1vxgrY4FPbzN8AS53hQ\nyzblFnXTMYnCDFQX0Iux5c1swH+3jp/e3EWfSCfYwH17l/X0buHr1llrkt23\nVJwGtMCw1qaPcU8rWWNYDYoO36TvI9dai/3wUQxpoTgY5hQYtvQP3VxGTWZE\npSXECraRtWqApvg5WOTKNmzg0pDnUWeAgc8MZ3DGH97mMPB3Ix0jihOUfsPo\nMyu3EKA+N4t2FMTSW50/Nl0eAxkHIubEdicG1YseGmfM4U1aON5SFFlmVVBB\nrL2vkcbE2LVvxk9dm13NoVBQunzp3yhZ50A6xyUQ1OahEL8s+XchwgCbNWHA\n6lNGs1VlpNBh34dOutybfNWRZttqWuVNeb1O74Hz3eyJbrPS5WiUFdiiwTWn\n06YmcN1jkMb0rI1E5Ox+Typ1ATyGbBpgzCTVJxOhUPzSRSQJ6cuc/ozTMoqr\nGLRnQ3EkXZqkMFnZwxG/NcRky/09XZpC5921HnR9x4YsMCJmbaR9TRo77U7o\n+jGFc6jBcZ4RcQxuDIp5V3SjTd84QBkJlserWi3yOvO1FLE2UNVvuXgXwvKO\nZrexiNbwCfnUdFj24iqkgsAvnTTYlRBOeN7YUud4FMMlPDCzzySaP1Q+Crrt\neUsH+A0jfAZatUn3EaZjw8eFX1opMKYb0nHs+SJidGL526xgR2QhAWHCTWft\naA8G\r\n=dLPv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"da21f30d6b50e9bc974233ea339802bae064488d","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.16.4/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.12","@humany/widget-data":"^1.0.12","@humany/widget-forms":"^1.0.21","@humany/widget-adapters":"^1.1.14","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.23"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.9_1571731440712_0.9250560271386992","host":"s3://npm-registry-packages"}},"1.0.0-beta.10":{"name":"@humany/widget-conversation","version":"1.0.0-beta.10","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.10","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"c16ef6dab67ff765ada2a52ee3814e8c5a4d61df","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.10.tgz","fileCount":69,"integrity":"sha512-xaI7rK3NMmfXCRUQVZqnKWb3NJbdL1igmFDN11aMpDz/K/jlwMbtqTzQjsh6i5csbTob5VkniI8Ie9MkazgerA==","signatures":[{"sig":"MEUCIQDvNdQeBJc2pE3RetNDR4pmejAmcOYCjMTkZ3QxNQ2BDwIgNuZEXXlf1ycR+2IUSzkgJR/6sreCDPEFBwGvRqPVwsI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112301,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdznzuCRA9TVsSAnZWagAAfEUP/i3V0ngJ/eXap4sL2RvX\nOza7TC3qE8e9RtLblFv4HrhBgnSkLy4tICISTDgNVOw1hoYQV9Ze85UzaFSa\npwzx/SBtzeBcaxCrHTzw1aQHogftshLf5IRX+IwuXqJBRi0tSnXRVfrUDhQ+\nezKS4FzZtDpv+pCStzmixiKIfUPRycYzd48mEUXXVJePvyXw2Lv208oZPy9Y\nAYH+pt0I26Xtrakjc7En4eZhFqDwL92Dx8lROE35hipwIUo6dFyUMpO2VlwL\nSJ3HX3UAbZZfJo8HnQi8GyJkdyks9rVUW++cxwAcg0QUQ/uCyHYFXC3iPB7v\nZF1AkaBiy3x7E6z1AXzljBvMtxTz1J/I0twjY4jkYOYfOcLcm4q3c0HfOMFX\nd/3dYpc530qRQ1YSjFF2y+ckpDLEP6D7zfoo3cvLQ1zvfYmg3nYciZ6ty0RK\nFOnUVp3ptXlSwkKRiJFv9D1JcG7NA+gKes2EyOR52jbPLIcGeYRnCYNOTW9T\nMe7Eep7bh7/a1MLcxh/eGhDIANMHNK8i6jyOjRpw75Ze8g78fwrsNnqxoLg2\nZkw9XjOI2zESFz4bc7HOALieCMy6oGTQitxvJmLwxoUBQwQXwnle4a9lBSkl\ngDnDngNM2u+IaYyEo8rrHstDOa7CO9xd+QE0LGjSIpiFkTGWpvhX0SmfikP3\ncQLz\r\n=nrOA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"2f51a64d2998c3046b2570e467ef769697a064f9","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.16.4/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.12","@humany/widget-data":"^1.0.12","@humany/widget-forms":"^1.0.22","@humany/widget-adapters":"^1.1.15","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.24"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.10_1573813486107_0.501878424312997","host":"s3://npm-registry-packages"}},"1.0.0-beta.11":{"name":"@humany/widget-conversation","version":"1.0.0-beta.11","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.11","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"d7ac136e1fd367b4eb0571fac7b22f2715a5c5b6","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.11.tgz","fileCount":69,"integrity":"sha512-tVixI4Z3gDjpu1O8/toVRcWDrEZDpWLtsPKx3EFze1wngk4lvBN+uffElPY9IhorbtObR8lPPnd2XTFEFr/70w==","signatures":[{"sig":"MEUCIFWNs2YdDib7iuC15uDGrRk1CuseEeL76m2pfRkoKL8GAiEAkzTMXCp37yh+pEpErUPuYuOFD96Wrdxf+ejfHdHei8Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0/RlCRA9TVsSAnZWagAA7U4QAJoBBniStGHVgTZmS559\nRrNS2jE8DCwcDODUfU06ffSkUjXrd2jjat8AwYFEfS/NWmURMKSTYx0LYOkB\nrQCn072TB1XETiPOkOhDnEyU6rvB1LUASPSy8JQiqawYfFp2Gll3yPZ+NXE5\nUizt2QEaOeOvwPO9QmF+nyJF4v1Al6kE9vGSzo0vhhy8FxS84XegRgW1w5xu\ngWPRiy8afoW1s3AGDXiN3GHJcPUwRkMbtjZlPaCVELlyHSPb1B2zjoDoZKam\na1t5tv6fena8zqydMaE8NDD3MB/DoE1ZIi+LXP5EdVNgYRcUb6+PehaBrFmt\neusg2AVXhQ5frVxwNhZJQc5MVTDXNFcJ4Cp15Eo+RnfNvuygnhc6ncTL2tGi\nkaqH8pG3o+Tw1mFhq5wyqlUmpeOaCza1msdi8DTEnpE9JmkVaEQV3TUuaKVd\nbl5SJK00566vv4Vvd+l6/xwvSDWTVZXhnb7AAN4JHpl2l+vyMIz3ZyxMOQ4z\neYQc/u8xF48oMp9cvRt1vecRMCh0Hg2tH4yfA1bJUtzXP/oLHpEE5VvcoiuJ\nhHPkS45bQV9h/cn2ctFZ/vmvETXBPl5MxJOaJMLddFjzpc1WXunkHHOorV1S\nBHzQkaXQzq9qnJRoP+zHXENWgWBchEGgoamb7g6s1ulhv/7JqLMctRIfLv7P\ngVWs\r\n=wXXb\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"07a383c9ac133af5f7a56cbb791dae1fcc6449a8","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.12","@humany/widget-data":"^1.0.12","@humany/widget-forms":"^1.0.23","@humany/widget-adapters":"^1.1.16","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.25"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.11_1574171749202_0.7497488639178709","host":"s3://npm-registry-packages"}},"1.0.0-beta.12":{"name":"@humany/widget-conversation","version":"1.0.0-beta.12","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.12","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"b2ab164c1e455cacfda0b351d6c03a97aee5a82b","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.12.tgz","fileCount":69,"integrity":"sha512-imgMMOvtRsvF03I9BSOshymWmheuDmQeIsioQE38Gjyu40PwMrLiMrSh9ZSUzJTVRAsv1w6UxSiMwM4sc8RA2Q==","signatures":[{"sig":"MEYCIQCMMTjG/cBCBZxcb4jkZt2vd+SGi3vEuaZH9OT/dGwVwQIhAIco7K7t0SJ51jPK6nQecbmnW/OqDTyCq3Pnj8wr+/qN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+Hl+CRA9TVsSAnZWagAAGg8P/ApouTgb0Q2jjzNf98+i\nX0vLJK0/ceCOm7Ql9KR/DsUaGKxBgCR8mY2cDHCvBd8RVWbvLXdOm1onxbZy\n/nqetkiQPf/mOTHq/XKlOqX1ZYqBdLs8ZCgmpXOL7E7ZjEl9Qw+qjDpgSPBC\npW9+n2Pt2S1M2gALw2NVibHh+w8et6xjj/htEnpQtZog7UuwNnHV763h5CRH\nb995S9FvcOpxU9K95DaAoNL17IMAAMEH+64eMnmAalw+qO6oyihQAkpC+f62\nWyF4yFsGm7WnQTH8xDA5JHyaIjGYyl0BHwbCK5jjaIRmeZyYm5SMGyb91YcI\ny8qfO7Ts2EpUppsSzGEzdlm94cgUfcFjvGXl0p4iE2RqF9W+YeAKz2q+NofH\ncLNpJ1tXTBLZJm+qhVWLXMKkOuCXwhtBtBG2XERwZ2oOdQGgwCyAfQUGoKUK\nsi8W1HvuqIxdawBv3Wk2k147RIgsEqLIl1V7hgzjBAuzY1/Ie3AJxzPvQHNA\nLjxYY/wEXZcwq49UohwmAEsqbu/zYiBZWwNPgfq/43uLOswqVMgh9JDvvR5F\n1qYEbiu8dLG0z5O9BUOn+r5sBet8SfKQldUxsYsjrqaVJWJYyp7MgT9bwqud\nWpJTSZDLWTOR3Z8TvXqIDSJX8UYqtfdpp0yOKE5kVIeFn/buqYulU/aSvb+y\n4XL1\r\n=Yv4R\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"429506181d5cb4d92da311cc8c4b8cb458570267","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@humany.com"},"_npmVersion":"lerna/3.19.0/node@v10.15.3+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"10.15.3","dependencies":{"@humany/utils":"^1.0.12","@humany/widget-data":"^1.0.12","@humany/widget-forms":"^1.0.23","@humany/widget-adapters":"^1.1.17","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.26"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.12_1576565117985_0.7809252791751624","host":"s3://npm-registry-packages"}},"1.0.0-beta.13":{"name":"@humany/widget-conversation","version":"1.0.0-beta.13","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.13","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"11bdb8ad813cc7ebf879cdd518059c9ebeecf2a3","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.13.tgz","fileCount":69,"integrity":"sha512-K3xvvUgM5Evu4J15jTOZws3rHN4/muk5rEsrUcuDyJFY8B43RT1M5j/HxBvCiUMGF9KKKd8cRF9Xuxk9BlWtVg==","signatures":[{"sig":"MEUCIE3XhVcWCNx1sCp+V2hPudzvXqJSXUYL8OpG1BVVFNYkAiEAnec8WT6p09BhtMvA/J2YtUjtPXk9ZZSNLdVQcpRoyXY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeJVGhCRA9TVsSAnZWagAA8YYP/2xeABY83O5hl1BFlKr+\nCQgigLWpZc1ukDHSEUt9E227KeHgFbeuaiTvyJ7p5XwX+KKGzNoKrjIQfyoh\ndqIJ7BGuIjMWZT3EqjWFI+umOVgeVPyz2CuKi0ngHugZfcSeajrsV2AUdVwP\nQzJDdLBGbuU7XU9+pP7HFlrCk1F2tb+sbXLN0UvQ/Ui+8YvFl7Z6uqUDrrYW\nDqqXV7EvGradz55rymxdsudXRE7EXxPYJJ3q/GtDmB9wrrHtN5wu4qe9SbMk\n+y7qORiBknXwz0o93j2a5KCCBfR1twrvFjypKRMeQQIeY6EaoDYMSn1CGpaV\nsUZI39vA+lF47r3tbYMzIKb5w90PDMU4Tpd37r1gjdYHCe4MWcI8xiqkyJMq\nKJzVzgpdBIhPvpJQtoFPAr5/eS4lQ8GPx2Cwifa29P6X4RUmUFkttx5v2AHZ\noZ5brZckWsq7Xxi3oJ5zRuTIUUpFUj4Bxcg9vi41ePywqcdMOrDdAA0V9EPL\nfO0YgNRfHAd7G3wT8hNbUmRppWpK4j2BJS5nAkLG4teuzyliD+9IB3Dt2N2s\nVg0a/nismbCOJPOJl5TnS6QxvXLwZyu+yq5ZaRSieuW/G1MNUBcvzkjyk0LI\nLnrjewEWwFoiUxV71G1uxle6vsUtJJEpYDXythSco6iWIPKTNneF14d8d1kP\nbhKy\r\n=Z8BB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"5b30d2d5eac19ae809209f92fc1557c0061662d9","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.12","@humany/widget-data":"^1.0.12","@humany/widget-forms":"^1.0.23","@humany/widget-adapters":"^1.1.18","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.27"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.13_1579504032880_0.8645684286195336","host":"s3://npm-registry-packages"}},"1.0.0-beta.14":{"name":"@humany/widget-conversation","version":"1.0.0-beta.14","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.14","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"9d542028998d98b0cb6cfa3fb533be1fde0a8cc7","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.14.tgz","fileCount":69,"integrity":"sha512-fdgK3qCSQh6LRHSZRVcjlVcIf/SKdoh/iXDH3imdROZ4cwuKgAuANfJ19arQP2giXBuRFG7JgxLbJwcy7AAkbQ==","signatures":[{"sig":"MEUCIAhplQ2jmJJfOyT5K+DT4DsF4SceANI3N/W6Tug2gcgMAiEAr7ny9e7MfGvshLUwoJ/g7kmShWJ39vP/XY8224/ubJo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":112745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeU9SiCRA9TVsSAnZWagAAanoP/30y/hK8eudxgvPVIALT\nmpyHW1AsTgCWvwsI5GZE3OyMuHwD5nMCniJ6wi5dnE9g7kd//BIYs0Iabsmi\nY8S6GyYaQlLS1NixOQBzWGTeA2CQfcVOEFW0qkdaYlOa8w8AR1W9dmnSYA3a\nkKyCgm+UKSyUJyHlpQmw2/x87LKHx60D8QgdjDZCaE0TNXfEXrCl7hkWQ3Lu\nIb+Qh+K/R4meKi1sgl1rXpalzoqZDjgZOBTgVDtd68OQJoFmyA75JIBAW2Ck\nscaxBu7v97gY+QbRO64O95p+TE97nxp7tZ0N1hZOXTALQFnCVWZiA0HhBRLb\nF2Zeaf50aTxQ5K1nHDtAbnOH3B62qiwjJtjOVscojPCamDM4tIH20kqArwwD\nlJkQKh4bkq7s6XTHT2MWQPORw0pKP/tI+O9TLtbM/5o12ygPPMtcmvRkDUSu\nSvpfGVJ4yMDOmA+IlvBMir1uQ8UIFvnjlkPEDU3a8phN7DKHan1NpcOIAgJ9\nl6O48EGeBHV7SPtkOFWEVyL7jBrj5UWPMAyhxuaMNa8OSboXLZX6FL5ysfrh\nGTEvPvUdet3hQCOYYw7vaeia8fIwqcjo6GzPiLzZbLjpa53z8Zh6JtlBvJdm\nYMnQdaUHIKrWecsUsjCUbXkvfqilOxj21r2KK70SkxXr2fmOSkWuEYwb7gx4\nJpm+\r\n=fuTQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"dccaa93a3312a1020826e12eca04bdbac2ddfab6","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v8.11.2+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"8.11.2","dependencies":{"@humany/utils":"^1.0.12","@humany/widget-data":"^1.0.12","@humany/widget-forms":"^1.0.23","@humany/widget-adapters":"^1.1.19","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.28"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.14_1582552225835_0.7607677276712652","host":"s3://npm-registry-packages"}},"1.0.0-beta.15":{"name":"@humany/widget-conversation","version":"1.0.0-beta.15","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.15","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"91b5d7d60cc8afbc7667554c187fa4dcfdf22a64","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.15.tgz","fileCount":69,"integrity":"sha512-AUJr0amOYKJagZ1TlvB/D1xLFGRNFFx50kN+0sqQQpFfbULj3pEP1PjRfEL/9021ranQzZv19+mwLi/s8Rdsaw==","signatures":[{"sig":"MEYCIQDZflQ2RjS6LQL3fOay5YkOUbb7HEqYwq9Vs6VpCoB4XgIhAJXKg2f1ngwJNjE+VHdg3AX+VmqSf3fG+AAiMz6dqXOL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113097,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefLltCRA9TVsSAnZWagAAX08P/iqUUVN2sPhsPYgOXaiX\n54GxmD1smfWgzBc9m21qS19fWhDXwcWGqmWacuoJZvgL6vEqLh3jhkLB+Tj+\nWjHFWP1O1CQbN+TwdWlU8zBLmUbYSFF3ClC0G28kNdtuqFYwLuRBH6AmWxD0\nACeT5anIX1+altnTdsMAiIkIc/I6Ohzpf5JHw31yY9m5rt9sJTNwWeHJuhIr\nRNlXpWaVLtrCElClC1puuYbmVSnQOpoX95bAIG9u9lM3ebuD4P9Bd0Lzm2Xh\ny9oWGH7RM9VRh6J33S+HzcmrIwqPHQewMVN1YYS5KM8XucCXmReUUICtdvUM\nJRzHBnIaC9xNYtVpeMn4aLmMYmvNwMCy4adW87bpijdJwUHqVLZmzmADA9ri\nNY9bZoa3EkpVImYajAybP/Mrw/octAJT6aNuWD2Eq8YN0q9cCEpl99JCxfPJ\nFKDAxZUy29xOivrnr4Pm1Eget9L+2BthIHbdp7lfHMKQ9Ut1NbwPy+bx0xuH\nVdMFQaQC+ZR0Lws5vc8FIfPMEqPQqQ8b9Oi8di+OzBDHR6t9eN7XRdAnx7Tf\n+ySQ2IVDoZOGdVwaxQ0pLmZUqh0zof1iMMOMteL8/LEcj/zL8W9nfQQy2VsL\n/s+zSq8A/NKNXLDJkV/Wyowxo2pQAh5fAiZZ6rtE65FR1p3/6Zl6Gszj+r+P\nrrEj\r\n=cMkM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"da6eb35c2e10cdc095b5828617370b30f588106b","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.0.12","@humany/widget-data":"^1.0.12","@humany/widget-forms":"^1.0.23","@humany/widget-adapters":"^1.1.19","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.29"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.15_1585232237440_0.2552380633425271","host":"s3://npm-registry-packages"}},"1.0.0-beta.16":{"name":"@humany/widget-conversation","version":"1.0.0-beta.16","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.16","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"f3a572ed8f7d16d9438efdd9e1ebc48eb441315e","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.16.tgz","fileCount":69,"integrity":"sha512-HDS4Jr8W7Zr5xVlf+Ay/Qb+onzTl79H1lGnuK/xInZFYpNgrNP5iT7ikszFpnw0HeNSX7PQhk7SsCLK2nvjnsg==","signatures":[{"sig":"MEUCIQCdy8MVAfM5eVsBSnDoRf/3HloF06CQ2u34IssVr/8JQgIga1gjcwW27xbfX50YlHmf+vyLz1xAl0UcSXM1qPq+AkA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113097,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJege7ECRA9TVsSAnZWagAAaVUP/2z4ecP8lAgGlwjng2fH\nxM9TEsmGGNSWE/TVHKTWr0i6ggBNZyKBjJn9bGeNZWbs5C3ZWn77NYzavGHo\ntkYkxMRtzwGHvVmaIg/MY14S3G8mDrDREwNwfFfFiEWWiRnBExjWIK7LQhaM\nivCI3XFpu2fwSh6IYofv1lgrFdw9HA8WnNdn/DVxjS11Wvbh/Y3KlYh285MI\nQBj9n+JAw3+e82V0jyCVkymeqDJ7JOyb52axP6dIAidCYplK8er+IEuzPb+d\nmNAH3JBmC+zn2H1TDf0Qeym4YYYRkshiXphc4EFQD5Vh8Grm1t4pRV7Um3N6\nI3j9u3qC9CySGzi4Es6CeGirhsjiT7p1tZNPwUWWvsMGaIZnPoGrN3M7MFhz\nVHHmSWp/RpZmbdffm1Q+axrRXL28F+zXm0btLnDpy0PUFz4gH7u4BU6xmmTq\n8CKMJkV391hwGYRpC5jIrd8d28WxOi/CRUxSU3gzKyU8By9or7xRCGx907dh\njUnvNjBzhHiwziAiII0K0VfrVMhPFgcc6T8CsKBUJOOww71WhuGLlh0OpsfN\nocnYD7sAPMUvwcUM3BbbJEfRcgz1s3nFrtFY9j08oTA4tyJeUNmKmLk1M55y\n50NVB67xx+ttUAzIaxbF6R3EzZqO0GW0Rt3JfeCq6UjSVwBHbgu8dqhxsSOU\nvc5t\r\n=1mH0\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"71f430bb6df9df6189d74fbd3a9e6e833c7e73fa","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.0.12","@humany/widget-data":"^1.0.12","@humany/widget-forms":"^1.0.24","@humany/widget-adapters":"^1.1.20","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.30"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.16_1585573571897_0.9482069977745651","host":"s3://npm-registry-packages"}},"2.0.0-beta.2":{"name":"@humany/widget-conversation","version":"2.0.0-beta.2","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.2","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"6f448e0b17910c53aa46aeb23cff7d550be635ad","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.2.tgz","fileCount":111,"integrity":"sha512-qPJm1ZZ1iCYD7F7rKUJ2puEghFKQ9F6jRSrN6mFXTJF423L1rfAP5eDvWBRLlTjJHhiZ4K9EYR7frORObuYFjw==","signatures":[{"sig":"MEQCIByfczSYX01i7BCT0cQRXsy0p/HmbDZSDIVqfLe+FVflAiAzvT3wOvzsoE+2bLGV25pvbHOPTSHewjK6exwoJr6a8g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":158644,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehhw5CRA9TVsSAnZWagAAvwAP/1EO4dbTGA5npa8nUDrp\n+KgBEjUXkHsxhsEf6DX3mMQTPG1X9QmQ31+UBjuNP5gP+BJl/pnwVg8t/BW9\nwtJuOxmkVvT6dXgWZhmuyTypU+QaR5OQz9MOwI4EQpm1s30MRi/uwvagtwKw\nD+9QI4I4Fyr8xq51LqPGhnZSu7dpyZccAXAvCTSx5p+Zh1UpAMyX6L5Lu9AJ\nfN9AZAZfKKZLgII80IE35hEQODkW2TXMCIW1HDFWZ5M5mghDZBAhVMjYfLYQ\nC8yfLErrHWwLlG4tRhnQbxtUuE8LPQ/pIC7PsqmxktF2RnxgtoEwWMEIBFgM\nXuuCJ1PlTwNJaCSnzlf/w3q8OH7WK5spjVhauOmddliNDbTvORz58SFuov9u\na9Wox2tm1LJLKAtaq8e2htaPBlrgI/RL8VJ40gBRMi2+lpLLth7YSFKAwWHK\naq57l8GBgTey6t9aln+X97WeaF+4bY7LENr1afLKT7/BqkSuHy70upGoTxbI\n10kNDbsUx0zFu+LrOd55XuFxJAn/hsszNB+9eKQ9Y+vHgM403moyTbpBjxUZ\n6CN0DZO/fFMFyPePT02C28AHLczKHgOLe/L8Snjou/jvVrx6tYUqiwjx7M8m\nxjNG53h0Z2JaZWvT+5RUzwAqjXMomxpHNhzkUKYCzDLqrxcDFPXQis0g2FhY\nOZGp\r\n=JLaR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"39825f67357db406f646d1ff799470949ed321f5","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.2","@humany/widget-ui":"^2.0.0-beta.2","@humany/widget-core":"^2.0.0-beta.2","@humany/widget-forms":"^2.0.0-beta.2","@humany/widget-adapters":"^2.0.0-beta.2","@webprovisions/platform":"^1.0.7"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.2_1585847352824_0.23116138482366488","host":"s3://npm-registry-packages"}},"1.0.0-beta.17":{"name":"@humany/widget-conversation","version":"1.0.0-beta.17","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.17","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"56df52fb5232ff911e5fd323d13896ae6da23642","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.17.tgz","fileCount":141,"integrity":"sha512-58HUf5Q0OnDYP/qRGzPGU7B+zywXjG/Lds2i5BYDm14uUpTbFct1ipKz/uFguhBO3HcYoYiW2iz/eOeo0Acl3w==","signatures":[{"sig":"MEQCIBK53fLiLdKG0MVtuCcy5D5tlUkuPrOgJsJMEei9PogqAiAX+eul3TZZWqVAzJ8ApXsVa6trmSclbFLUgpbWQbhVHA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":233640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehi2uCRA9TVsSAnZWagAAVaYP+QEUxfGg+n0Zt4XCZjV5\nXQgPQGO68tcCHOn9nj3av4AaDYK7qmgWYBePLJE/f6lR87ctvKb8ysSD9dUc\nMUdH1Bb3+iAWLMDkKZnImMY1LGqXEqVQDA0uS6kuA3zOzz2Rh8DrSoQCGg8h\n01MJVL6kVFXMNScBHLpX592oBem0TM4ttawTEd7EiAtozrdm1k1sCOL6fI4Z\nDw2zU39S26n3C6ZIKBeZhHomJ14baftNCdUBImWSA75Zli/EGCsBZm1uWY4E\nP4WPnw2W00AKnJcjhrw48J3y7ihaj1pW+LJGZofTT5t/rvT6fzpu1RavidAx\n4UnmcblSgZRFbjsfYl85tW986yBBkw/3WG+ddqaqGFNG47XWC2g/naBqhOJn\nfEzlYEoZQjTrk1j3uSfU0xn4gzKTK3WfmzbL9celxrdp5k2i3/ZflALp4kmT\nBZxvRUpkZC/EQia5CzKl2Bsd70XGCf3voWZ7eM8eqEU7X3N8lsuF8ymzrhc4\nTYjlWUqFFhewCfC074ErKrwvnabCiGh7yhgCvzNZVfOtT94lpnDOmSP3Ung4\nKkxiVfgS0EdB5u3XgcZyTLjCxppsf8tMjjHgclzJhgTCgUDnyMk/XwRacooW\n6folZtW37C91PFujDwLgzheEEzANA8r1k6inyhiNBw+GcBPU9T6Plu5H33L8\nOefo\r\n=SUve\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"e944a6eb9f5a314030fc92593e25fb3149cb35ef","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.0.13","@humany/widget-data":"^1.0.13","@humany/widget-forms":"^1.0.25","@humany/widget-adapters":"^1.1.21","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.31"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.17_1585851821993_0.4202461391368555","host":"s3://npm-registry-packages"}},"2.0.0-beta.3":{"name":"@humany/widget-conversation","version":"2.0.0-beta.3","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.3","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"b3c8d157aff94a96b3c6447867a1033b94c452c2","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.3.tgz","fileCount":141,"integrity":"sha512-EAkGLaU8Fk05e9xJc0tfTe4HFIwlAeGDVZVF3R6puFl15Qh8bbmON1mPeet4bqGUaB1BuphdlYaWkTIjxrvZOQ==","signatures":[{"sig":"MEUCICk2R/mxZclHZVPV0O4Cj7mppwv5nIdTtKZg5S4w6zLfAiEA19b34nUNriz9tft6yb6sEtyaG5/olrC6sJA3LU0sZzY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":210223,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehvViCRA9TVsSAnZWagAAW8MP/0CcwDT9rIrcYqfkZ8bx\nUWrECMM4y4IjPw/U3dURQ2nfqYcrTN/o4R4EvlAnVJSlJ+XZ4SnR5PzqKOY3\n65gXyGUy4+O5ll3pGBRVgikgUj6bzkENzN4mILwUryzg+MRF/kTcrOi0dNeR\nb/G7KeNseVQCAxbRtaZb9UyWnxtP9zvqzcBYwGb4CXUqBIb1GZa5NMWWs9xW\ntIf3pWxQvMb3fhjvregN9DL7mCW5gdxuw57KnGYZ25KIixFN2iEu4m6tQY+M\nOu0kFyQKEZgVkmlVlmH8kGLxAtYQAb0r31LUT7PD+ZpZs1ElrREFVJze8usf\nMsPvbPvT03aITQNCahuqs+Inm37o9YFbjEejZAxV9H0FuDNWVCTi0PQCZ+mq\n/JKGRcvLTFQCJZEKBiaTKwkH3+pVz6yNZtQdnDhu/GSO9XW5RR8uy/SnyLvg\nS/W0Q+eMHTS+H2eIxoVwNwmyon7vyjI4cbTdunJTCf28xIqvQKOSMjlB1jZR\nVc0HnhFED92Lg8ZcdUDR2x/8LjYuYV2nhizvXNRl9yO2VE0htiOxT1yJqdhc\nSOlPQAilYPjcA6i3x4RGDjPp9b1OcrrWZWNfu05F1LekBOoWbpeSc9/zElIU\nC7HG0/tSrCOG1PZjnhHKe+W6YCibBfK1TmkV+eQRjgn5DDEZ7YGXnoGXjK4H\nNnpH\r\n=OI1e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"cfe8754eff6e7ef3f94bfccd3ca776fff758ece1","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.3","@humany/widget-ui":"^2.0.0-beta.3","@humany/widget-core":"^2.0.0-beta.3","@humany/widget-forms":"^2.0.0-beta.3","@humany/widget-adapters":"^2.0.0-beta.3","@webprovisions/platform":"^1.0.7"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.3_1585902945726_0.6781609364202132","host":"s3://npm-registry-packages"}},"1.0.0-beta.18":{"name":"@humany/widget-conversation","version":"1.0.0-beta.18","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.18","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"9373b0bb682b1bc3cf830647a9b9d3398a3c5c06","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.18.tgz","fileCount":141,"integrity":"sha512-aAdINh9rPH3EamlHfHEfrrwmtqjdWggsa4EZhnpsXG6J2iuFrt0XQzjUIEnfg+ZukJGbpB45G4Hdn3iDqEL5mg==","signatures":[{"sig":"MEUCIQChI/SCkMHTrbiiDfQ0rZw2/NmSr+e7zwh+lyUhCF/fAQIgKZ7B4wGdGgA/e9JkwNFBoafIlEnEWM64s4xJ3uxBVcM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":233640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehvgpCRA9TVsSAnZWagAAldYP/Agbr0i/GrdYjSxIzfl3\n9QNdhLenbmQxxQUHHmbupNqAF8x+2EgzCG3Tt/M9TV/M277fYMW33IoDrWAU\nirs35Ya+dysJF9bUkV2Eq1A2zAx5KWXGqNtjxZp6ClYZyYrUspbLogS5qXbU\nz3afTAfbN2hpM4dtStkLOX7bbo/jnkSXWKaISPK0u3TdthwRM6dxa+Pc7AuY\nwNxCFwmcG2o8z9nrler9UOlwFr12icl/7Im1MWmrlKPa1FKYJZ8xi830Gr72\ncQeZHF8IRX1drEa5oUPr0H3x5NcnUoTcDxI1TCU4j+W187jHZsDElNZ6pPn0\nsHF0uqEtSQGw4N+RQzmVNGnLaOihuTC1NOmcctvjlsy8JHujapmcisureHBF\nnCTjVqws5sy4OS6AXqhQIe5aiNo0iIVFJNxKpl5qUBXYFgskSgguBonV9/zN\n+rxCu4Xv3lUB8ZKbZILABcXMxFt+hXxEeoz0jAc/p08MWZyjJhu28pwY+x2h\nvsibf/hTzgKr/wX70w4NrRLX9yGmrw0dhAGVhJ9suZzzC+PprxYajqadjY1t\nSZjlTUpUlEA2pN9GIj4gRn5x5D73VQKl38i0gG6wLf8dbTlXZ/vP7mDI0u+Q\nhHGoWohQp0vpyXvpgWMNMyI5vg8Hr7QJVhjdvzjRqzw8x4ktp/rChDvfzuPM\n3oaC\r\n=Xbs9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"fce01f1f1bd85f0f0e16812e25cb08db3b938d78","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.0.13","@humany/widget-data":"^1.0.13","@humany/widget-forms":"^1.0.25","@humany/widget-adapters":"^1.1.21","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.32"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.18_1585903657076_0.35262628882501934","host":"s3://npm-registry-packages"}},"2.0.0-beta.4":{"name":"@humany/widget-conversation","version":"2.0.0-beta.4","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.4","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"5ee7a772f9cb71467cc4673d5d97f54383086384","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.4.tgz","fileCount":111,"integrity":"sha512-0QIeZjHB0IIbYunNlWignUEFxU9DwD6QSO7haDfrPhkYv02Vu1S2VdkQtGqyJMUYHmatUt23Cy5qMs1QO31S/g==","signatures":[{"sig":"MEUCIQCgd99cwIBANm8RWGUeBZJ/UtZaF3/hMPmBicZk/usjgwIgXhlNwVrOVv3gXmo4MMBuFZquD2I0Jub7hz5fbE5DsyI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":158644,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeiwTpCRA9TVsSAnZWagAAGMwP/Re6MyDefzmkIr1XDdAY\nZd4JbH4NcwgqXtvVtoB4k121zuzwMHuyAduBNg/GKlxrPH/O8ZOOAx46Fne7\nfFsre9dEVISV0DOAheFchKjzU2rahZvR5fPzVIsIDB4SSyk6m1qmiWdtlNni\n6aYUB3G/Wudj/zTdnYrwPUZyHV+ob8Is1JV2z3nVjnFaTauG5hU6yurgDbDv\nUKmQ66ydnUSHpVRnEzWdOAKG4FmqoGsAq8xJuQEuF0n/3/c2GAqN0gRxYL8T\nertc1doO3e4ilC0JmgXj9zRSVYeV4hRBGvfvuJiqR7Kr5OkA3Y3WwbfDdxS0\nf6YfDZWsNBxiGP6p51XJw3SdkBJ9fFr/ccbUTppmzvlA10Obp+DzOOsAMS6g\nm91dUSF+VpiJ1FSxHT8Xpv9e6QTWc094fnnHex4HHUK6A+pRIT46Y7ZCOyXN\nPLOXjv1IrWS43Q2jI3Z7Y+3mXnnm9ZCJd2dDUMs7Oro1QbPpTO+TWd3cYsyF\nC4cLyun3BlQCwDk464cuMsdNTyO5YZezA0nclHY0j2HKq3RcYKrj3Pg+P9gr\n10vEKyITURLzweT6VzWTtPHXnZNeEHSVJ0TAe+Yfe44lhCuIrMP9GOrSAZ3S\nK2aRslGIrP7/DL7rrcUFeaILuntTilSD5JrgTHI+W8g6wxnQxZSsla+Rz1sy\nafiu\r\n=yw1m\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"5d3345e38ac74e496be93876390a95cd002f760d","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.3","@humany/widget-ui":"^2.0.0-beta.4","@humany/widget-core":"^2.0.0-beta.4","@humany/widget-forms":"^2.0.0-beta.4","@humany/widget-adapters":"^2.0.0-beta.4","@webprovisions/platform":"^1.0.7"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.4_1586169065575_0.18495925887502263","host":"s3://npm-registry-packages"}},"2.0.0-beta.5":{"name":"@humany/widget-conversation","version":"2.0.0-beta.5","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.5","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"f1fb6bcbfe7bfa511c91180d366c1f230217d536","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.5.tgz","fileCount":111,"integrity":"sha512-7+Q1sCAo/Fk/v/RR6R+c+G8QN3eqhLNkWAJGkS9qOqnJ1S50o0RNv2lf3yiOrv5fxheSrO9st2wi7pLKMyWZwQ==","signatures":[{"sig":"MEUCIEV8AhejlGNXUJ0L/lTvA3ZTcTvxpcVgg+C0OhAbK2XRAiEAvTnJjL+vP270LjRN4ZDAgrlHOEss7jBmoROEwy6hdHE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":159662,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejDssCRA9TVsSAnZWagAAVQ8P/0FbWQ3W6j9b0MRyPWH0\nNOY+E3Dm4Onh64EomVjtBYOQTRyE5KETz9RRriYIkVskrcHcNs+tnbUG733/\nu41qxND8hPI2QBiSlikR9SPoOx23XLVF5hjNHywUcBH9HcwuU1pzYPkasmSR\nuGjZfpYRFxgTtH4o2re2ydE8K3mzHEQmbux4V9EYp1kK1h9D+VS8Siz9y7f2\nMdP0bJHBvHBqnLQJwqLZQ+Iyb6IDZeHoS1nB5jbgDzS0gulIYaOUT2I1gVvl\nSo2lbLcv+WafgyPX31/wyVqM2x8kj5mBqaX9UmELbeTiEp7a6b1c/96d8Cfr\nOKYKLpo9gSVEbFvl8xbx5OrKN8VgTW2evxem2fY1S8QN4ng50zXkdguFqDDo\nz4uQQbXaQRvUc9QT9E0uaVmYsSGcWM6BavcaELltRRatQ/3sbf4b6CXNKTPL\nHH5JKhklTCEPR6S1Go++/hTQURweVaYKUPGZNB9FjQuHdx1B9JbuBkrZ5tTp\noXrPbfXNCL56ItUuPvNrVcWuFUiTlkNuimCbTw24mWoMbRSSN9nXxEGF9rL4\nawwQtTPQ3an52CUkm4nfKAnQef0fxlbydpY3DLajRo2aooYuHZdcYY9YAbgL\nFHsM97HghL6tlum+wB8y6pXrNBS7iytxXxYWH+dxMap4SQ/utl8nRZ0dkwVM\nr1w+\r\n=NzPB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"7140d955decfaabd262bd0e43672706d765fd49f","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.3","@humany/widget-ui":"^2.0.0-beta.5","@humany/widget-core":"^2.0.0-beta.4","@humany/widget-forms":"^2.0.0-beta.5","@humany/widget-adapters":"^2.0.0-beta.5","@webprovisions/platform":"^1.0.7"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.5_1586248492034_0.805571696653135","host":"s3://npm-registry-packages"}},"2.0.0-beta.6":{"name":"@humany/widget-conversation","version":"2.0.0-beta.6","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.6","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"d203f6387abe33020fb6ff557980e2dc71aae261","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.6.tgz","fileCount":111,"integrity":"sha512-aDB/cRqJ2EI1tkm/7yI+Q98bYxw2ROkEM8Ibtper6CNg7c2gDO/O8kCjvWcZ+XUOMzfDQm6BfrdRzSvsHc/ChQ==","signatures":[{"sig":"MEUCIQDrrd/J3BvpNbwLvjXHS9P+yoC9Qi/52MsDpG/cIjJRjQIgOdco/3R/Nn5EEhYgIuAXSin/vCKZqm8/8TkoryAKfY4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":159662,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelW4QCRA9TVsSAnZWagAAI1AP+wYEkgqiqsv0cWXTcfJn\nMpREBJMapTY7BlUze5L2h0xUd8uKE7DT3H1Iism4RQA27cmA8Y5FprG74bs0\n3FTuYhJrUBAnMC1ZBh+vbjAY8HysE49hhhE0iIxZHts1UqwHKVl8ieYGmJJy\n3tmILr0fLEzQCx0IxGe1SY10dL7jJHNKiK4VDof29EI4Wg5ZtIE3dBJ2wJbx\ntkd0x7zlPdiJ8HrmeC7bWL0cEeau2FjJ5TD9TaQ2ZVu543x291miM5rjUwcF\n0V7tYe+a0IldU8i78f8xoCFrtJEkXTar1Yzo94eiSt0Rk6K347dyioAEUIHO\n45hg1BgmhUgd9JeRBi8BZsaX1juZ00dx/wMUt7jD//Dn7u8mHZaRYkxzVu35\nKYU21pRAs2FccBCz8yx5FdSVd+hFxH8YsaV5maKTZ+AalVz6KExjxD0d0pJs\ndu3kLNJoHMcmpH8T4B16xXsj+aoiPdKNaTjXWSxoX17MV5laSlh7kc1FsNGc\n0tXl9tcYH2NYkMpSFHIBvXUUxZWgF0m83L8UxJLhC3wLREonsls2KDab5trZ\nTr48qh0ugljJhC29cT3taxOdI7qSN6uu6JFnASeDNc6oiMwtPt7zdMTLG5KX\nOBCcrrZzO9V2Uy+g/vTsWEZgMrsQCZ4wAy4sA4aP4iWJpeHV2mCo8G62HGvk\nDiWz\r\n=Qu7w\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"c571e900ed3f0b1ed4e942cf23ba2ae308429caf","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.3","@humany/widget-ui":"^2.0.0-beta.6","@humany/widget-core":"^2.0.0-beta.4","@humany/widget-forms":"^2.0.0-beta.6","@humany/widget-adapters":"^2.0.0-beta.6","@webprovisions/platform":"^1.0.7"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.6_1586851344054_0.3985108093592056","host":"s3://npm-registry-packages"}},"2.0.0-beta.7":{"name":"@humany/widget-conversation","version":"2.0.0-beta.7","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.7","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"dd3f65a30a078729e8605c2d52b77fd7580eadcb","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.7.tgz","fileCount":111,"integrity":"sha512-xgCt0abr7m8ypWeO5JJhaCo56btakANqF6X1N7bbOSQh8wzGB7ia0odGwL1zTkVLMEMYdNZiaGsk5DxlJCFPNw==","signatures":[{"sig":"MEQCIHF4ZQ2Pey6rJwgVE3OXToi0wlFUUq8W0nd43wpIBVXfAiBxexnfs+pTdLIL3HLnaEzQLoQ+4WWPtWNcHRT569VHHg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":159826,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelrtdCRA9TVsSAnZWagAA1wYP/25aintyUIjYDqZr13N9\nfwMSmcB9TmEiZXqz4roo9+M5RtWS5ebL8R20sgtHqJbHFrZmutSniAqx+7Dx\nsKyGlvOSYrwKBWiPCoa7nAD7GU8e+reikTsOAa5isGMxRd4tW0BJ6f1C31Rp\nS4OLL9twBcek2OYxT8NyvYS+tLq64Vf5GzxS7TOdv1N62XRoBa0MAubWXu0f\nccToNkz4bFOu2XvcJILyx3o+aRSjPSSRx+lAG6ntP9NjZpVZ/6tA3qKGSMtY\n+sYWgX1egHu4+Vpamvl67WRp3C56VsgAK6gZe4PXjO6QS83kkZPL9mxIj+t9\nTrpJ7hKH/vbd39xJgI5LTdSwdfz4BiLoI5XeQdn1FXN5S5BG7VzksJZblLMt\nTIQkvrLKl0WH6OIfaRa9QLz1XNa1AjAGK1Wgw/OkIT176s4sZEGQhmjRAbHQ\nKoUKlA2ITvVdyfKBRlYuQiwmmkPosJVZzAEPC9bgD8bawov/OQsi24A/EZZo\n+/ytOwOcTrvLavBt2qkFlPCpvakfp7k2DMBzuDMwjAx1ZAymMFrOehYsoYhw\nsVhv9o3W99HPQuob9wmQ3CXv6wef/WCmqr64gEkXbf4sgmB3iKt1yxn71xn3\nQRBfo8QBtFTWR1imPleynSy2XCPnltfXkaRq4aqNd0sBCMGzUAz1XSx6Jicg\nEGlz\r\n=aTdt\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"33bc4a8b6dc66bd7965cfc5e407a0ca8b6513b22","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.4","@humany/widget-ui":"^2.0.0-beta.7","@humany/widget-core":"^2.0.0-beta.5","@humany/widget-forms":"^2.0.0-beta.7","@humany/widget-adapters":"^2.0.0-beta.7","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.7_1586936669176_0.4290372005708276","host":"s3://npm-registry-packages"}},"2.0.0-beta.8":{"name":"@humany/widget-conversation","version":"2.0.0-beta.8","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.8","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"51c276d11db37c4288d1762db9b38083b2dd0de5","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.8.tgz","fileCount":111,"integrity":"sha512-N4/me2LxjQPcJr1atiK/RgrtiYnEcciRhXTPSHgc9ayGxQyisCHkfDVYDpsCSXCIJJ6VnHphK9gz7PVFYca3lQ==","signatures":[{"sig":"MEYCIQDdnjgbMWeo+9IyWD8gb9xMU9HxhceretBpeDrGYGctJAIhAKw9cSjruQq0TtO0yPdnjh1Lh8VORooz2ipOPmZ80cvU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":159826,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemENICRA9TVsSAnZWagAAMVIP/0HD+f8BX+enzR3jTerJ\n9JIbCdnIJKHF6CWo1yEkgAsLVK+6NIqHyTq3Mxx0ScWG1Bb1kRC/qkRtZOi6\nvr4Y4ibhhsJ4q7l1fuM4et+GTz6b0KpTkedg+e9VDQ0+Z2GRFErUwApr7jTS\n7xu8sYu9N/7KF1sPH5uKBRcf1YiCJ6pYyNKY1oRICo6A/9JVKUrCU2Kc+fqE\nxTRY+7qtJPTnsG83GlThcvdb3JAXgS27hNXwVXaJgZ7eQ8yZQTFgQDYkL83G\nCv1bHXQ2cG8m3Vhf1jZ+/A4OYjJP4g+W47v9tNRDfw7Qh9JKRTyTYYXfgsAz\nAqUr1JkaqS/EYU9gzWMcz50VY219sPfPO14c+3VIXrhTsfa3XzH71ZAMiCRW\nzJ8O43GZHKeYxh+aAcFn9OUHMZhmE3gNaDRtfiQSfOZA0Q6dxcDaDK0lQOw/\nZwSdo3IZX6vtgsjZTJHghpthhElYfmGQVGjSQtPH/0XfVWhBvUHQ9Cdo3bve\nTuTjAPSWqZLPUUUkzELXVm6fP3heXoS8wOeiHlUNfk6K+TZ7Wnyz6A0Z9C3J\njg41EeflDFlwYXq8sANiyc+VVuwCgbMUtzJeFGRkg+msDLbQYCg58iNOvBuq\n5vjA0e7gKuoiDEvruv+aK4V9vH2pxEQQZAKdcgHmI4iGpIK6eQYUH1oUhOXU\nMZCd\r\n=KqDa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"36506acb2b95c8470438c41b9cbe150c46cf8c10","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.5","@humany/widget-ui":"^2.0.0-beta.8","@humany/widget-core":"^2.0.0-beta.6","@humany/widget-forms":"^2.0.0-beta.8","@humany/widget-adapters":"^2.0.0-beta.8","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.8_1587037000240_0.6735441612361386","host":"s3://npm-registry-packages"}},"2.0.0-beta.9":{"name":"@humany/widget-conversation","version":"2.0.0-beta.9","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.9","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"452ef5951b97be616404141d5987422ff219dce0","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.9.tgz","fileCount":111,"integrity":"sha512-2zcieSsyeCdqrKMwLP5b2uXljN/06T0PJQTQij0F2YRro8oFimgM5Gd0Lh0qLkuhkS+LZ+wi9MV3E0HBwag8SA==","signatures":[{"sig":"MEUCIQDFyOjCS8VBtikEljNZCkgvnFKiJc0QV8GrQGE6Q2JzAwIgJUUq9I6ddjADkYc6JKnfB75vIEn+Vq6SsVu9CIj9+/c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":159826,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemYvTCRA9TVsSAnZWagAA4lkP/RP1RSe1tpQtJjjznVHi\n7si2gOTx3nJ6ZwRVnYVvER+EeHQ2pfbVvg8fGvlKKpMigOVg3jbZXSe2DQz6\nx86Y1pIkFpQHLmT3olIuBTCdWQJLmfGNIX2QE33wwLWivbvfHSLKGriuTcT7\nGOvqNqyVOD3kVcY5Pf50JU0j7kE0rdOuMw5+qau3KoBYoSDzgU/e0hrH279G\nN5h9rsLf9QETAa8lzfGmNnQqb3uyEw6i2gb2I1fEXTnhV5HBTZQTXCxF3mn+\nX8NatwMiFt8GeCglOwcn5qbOOc6VTj5EE04sbYBjl6WiD4qSTS5ipmdRBSXz\nXjrFgz/wF55rvESHkN2gYVRyXO2AfatvRFRsfdTkawXZA1tSZXmKWprcl/vM\nVLRtKILM9IWccQEnaN3FuUSkNPtcL5PRJZP7ypR1HyaOPEwpIVQyfakSVMJT\ngDeKQgvnyieoTLmqkHplZBuQ5hZC75tdBrcWgSkZ8FYPBz4ezSe42RYdxEI4\n9pPMIOQ17TLjn8EUO8ZLlcgCyvOzjzq3Y6BsReit/EKJ8Csz3g9yIyvuNbaE\ne1t1A5pBjH+tr8e5TnpYq7Uto9jcr7NHKFkKYI+XWxtY2hZAXwBr6QgnRooV\nbmpz8bDd+HFC9JI01OF/an5QpDSFpx7rc2n2FCpzxoBBXE0gCsBWjT/QSEg3\nxNjk\r\n=M6rn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"d953f8a07f82c33afed531fcc480d73d737689c2","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.5","@humany/widget-ui":"^2.0.0-beta.9","@humany/widget-core":"^2.0.0-beta.7","@humany/widget-forms":"^2.0.0-beta.9","@humany/widget-adapters":"^2.0.0-beta.9","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.9_1587121106803_0.1011652571906625","host":"s3://npm-registry-packages"}},"2.0.0-beta.10":{"name":"@humany/widget-conversation","version":"2.0.0-beta.10","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.10","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"499d39eff01ca8004af4791a0c7b0bb77037c408","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.10.tgz","fileCount":111,"integrity":"sha512-zFKZl6Y7g3MdtKR28Tpx3KI2jcSmTSiqdsC+6EG00YWfVDeA4mPv9DuWXiEmpJR7f8aolcrTX95lU230jN8Q8g==","signatures":[{"sig":"MEUCIQDsZae0l3dTPwcsmhrwRB1QuOPz4juM3X5x5I1Hm6ny1AIgMYawPLi1QpkzxQG21Lvj7T/B1hwippca83Xtr2T2rX8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":159829,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenazICRA9TVsSAnZWagAAjkoP/jdfPPkfgGn742faonCF\nyYc2xvGYrP6Xou39A23vNnF230Co8MbOhbtz+t4AYF/xmBjMZKDH+KjzkaEP\nu/5Sa36tdrvXtqUHRlXZ0ND5nkkhdLPQF+M3B0NgAjCryA9rx4DKrYu1A2uo\n+Anzuu08ecxko+xQV0TYbSYUdSQQfxKNV7N3y06bycW92NLUZ2FuDh34LCN4\nicdCtzr0liDIX2kvxdCeONZPO/gDCrDVtVn+5FDg0o38nJdzpQ4gj6SjfqbR\nD2M0ttSSepLIE/Fkja5qbGekKRWIV/8Siwd9RONkJvGIYCuLgsjzyJcrnbFz\nsBztIP4RW5EpbL0uxjAgnB/GQbu6Ippgrk+/hX/iTSCyn4fzSxgZn07Tf8oU\nZz+70SV0CW5Na4KJnwjITHq7JoBXoljQrOncIz57wfA/aeMbw+V1/8/yxxDy\n81F4ja0F+7ClStocG+pCSW/7PNeVOow0uO2xh3EtKYGLxgAPB1piNLD4RSMk\nymk5gV7ouW8mXOlB3rlq5+6wC4oyPqURDf+EmtKDSsLejlyztY66Bg0a4czY\nrQPmTceu9ymfpQGeJUlWURo97azAJJyCfmPeGnXdJlfvuxEAlXl+aZYoobV4\nfuN0QU2bSh6R0mWaIErYmnZHk5hOwPXgKj4ZwFwizMHj3iVoMa3N4XT5buat\nipVB\r\n=nXIQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"5f99bbb24760cf29d9577620e601241e9fc165cd","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.5","@humany/widget-ui":"^2.0.0-beta.9","@humany/widget-core":"^2.0.0-beta.7","@humany/widget-forms":"^2.0.0-beta.10","@humany/widget-adapters":"^2.0.0-beta.10","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.10_1587391688263_0.1792001242081449","host":"s3://npm-registry-packages"}},"2.0.0-beta.11":{"name":"@humany/widget-conversation","version":"2.0.0-beta.11","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.11","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"25306fb37a9e5d16f75336da2174dcebdd7732fe","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.11.tgz","fileCount":111,"integrity":"sha512-XqnNqI0cRMVLKlmF0qYNu4fttr+0zpn4HV8kZMV1teoo5VCfpY5LhpVfAsVP+xAHlDHDj/C+yCwc2R3m1XcS3w==","signatures":[{"sig":"MEUCIQDVu54znzLCVFwc35Zxu4sGxGdsWYKAF3Zci87GTZ0gaQIgL6O74UL0gxkh7jmm3QS9lqsjantidhoTAZwMTfbxJtM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":159830,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenvggCRA9TVsSAnZWagAAHdsP/jv6EEaTMxuEYpb6rOYH\ntSPYgirwQ4yLYdgt8wWG6qn6LjUtHb3w/Ce3DlN/GnRP3sIZB/gJ75tiebam\nvvKSUtIDM10eCoiMus7Mi9r/h9RkqoCUo4wAtWsIw4BQGT8lTsu3qd7LsKXv\nA9NCuN17QyhcBZpOAwGJ+8w42qAWPHjl18UiRsEbl3AQzhzYUHDKJUKywLTb\nX28Z++0z4ByOslzwH0f9pZh2WIa8se2YLtp1LkduY0m5LTsw7jqvNTAsgt8V\nJRNeT550M5SwPVTgsL5oOK1SLxhO69LAV9rbYVInZCst5M3yah5VeHzb1aR+\nD47uALdUPcj+N/z/oSFj+7c36hcTZlM9E3N9c7iFnuTaX4bR/9BJ0k0/dgg0\nnWlcuE69cnVzfJ7GaNOQRH9GR44y2y02bvgsvrHmNgB/CVyPBVmmQkbCuc2h\nS1reyjfDLwuO7N5PIx8OiGlyk7FGO5VtLkuVKURirjqzOg9LPcdKcnjciI8n\n7swDuh9DxZZfwtVns9+sdqv3HXDZHaWwk7YsiRLr3lHaXRDmUbEzJ8mD0q0D\nYLxETlaRu1N1pJKMPsn/Gmt3fpvEE+oae935ieiXgtsGcCdba87hUS/+62Ni\ny7Qdc8wHz+LyrSTlm5lJhciWzvy2Q+qAJMJpEP20GDVRgeHRmjpKSREQRAK5\n7qUe\r\n=z9bM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"bca5f4953050eed7e450ac182882b2a6ddc80cea","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.5","@humany/widget-ui":"^2.0.0-beta.10","@humany/widget-core":"^2.0.0-beta.8","@humany/widget-forms":"^2.0.0-beta.11","@humany/widget-adapters":"^2.0.0-beta.11","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.11_1587476512252_0.4026613347236754","host":"s3://npm-registry-packages"}},"2.0.0-beta.12":{"name":"@humany/widget-conversation","version":"2.0.0-beta.12","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.12","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"5567954cd14539f5b002992f663465f9cf77d55b","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.12.tgz","fileCount":111,"integrity":"sha512-UqEXX9/642gCSoOiFA3DCmPUOOYA1tYcpI+YV+K7ZzFD0NqCSvvnE7zTDcNlI3/BZXO+uJq7Nt1J/GGTAv0clA==","signatures":[{"sig":"MEUCIFmO2y58o5cspryCRVytNTnh5afS04uyQ9g/U9DdFiXkAiEApL6f4exqpqg5uynBW4gJ3BO2dAnJ7NCbqByYctT3q4Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":162974,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoEVJCRA9TVsSAnZWagAAeA4P/RvymQwmwRbsCDQbL2t/\nUm1HEMSaKZhI5kCMZA7HpJOF37wmgGzYe3L72I12GKukMnPFSYbMpvTZyzyD\nT0iDC9Dndof7VIu1F9Z9OaRz8O+/u4rhFP2jqE02RiFnfFKD5mUgjGcKpu7i\nxbCREpxHT0AD1m0IU/qdqUTwwFLIBsnTRME3ZSw64ckzZOL2sIzHVxRjp+nB\nL8A2uyWp1uDQNqkazMRO0Rb13DMXf6IULDl8oNHdsCvpSYjicYheviwXfzb5\nnlhc8nwGNujy9OoTc+Hd6xMdkFreSLsKCBoisHmC1RIv0PuwaXrqg1fOvdOg\nqW9AWLEvvmNycIl7WzxRfaxJpx4E1aVbvBsig6cXI9J4z+UtQLxq9D8EjIje\nOjHsdFTYv7ZLeUe8o0bGMcAJTed7XQQ5b0ZKMmwYGy+R2oHIUOZTiIhWsx5K\nxAC4vJz49WI/vNgsABNGYZCBS/k3a6LvHAP19Cx5vfmC9ZC1MrH6hiFLHwrv\nDSkZa5jj9Cnne4JCxAQkulPuLzF0e/8Fp5tqt9ng7DrBkWMH4JTlfACt3mat\nmy4EToMNjUvqIkJ4ovxy3N5iaDxc2RPW+l0fPJHPtU/AMmPzGnWM0cKS02IQ\nlKdAna5ZYhZRtC2MsDfrqGWERAwSgulUuKdJMOzZUFRegL4x21h+vZI02imK\n9wyh\r\n=d3Lm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"11f2ce41e52e50d4316a56c0ed06d5a72b859f98","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.5","@humany/widget-ui":"^2.0.0-beta.11","@humany/widget-core":"^2.0.0-beta.8","@humany/widget-forms":"^2.0.0-beta.12","@humany/widget-adapters":"^2.0.0-beta.12","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.12_1587561801174_0.9046203937478314","host":"s3://npm-registry-packages"}},"1.0.0-beta.19":{"name":"@humany/widget-conversation","version":"1.0.0-beta.19","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.19","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"8696b40962baf453aab88dbeaf6811a845743783","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.19.tgz","fileCount":69,"integrity":"sha512-WMXGMnEt5rnpQuCqqHaW1Vsu0+xEQ2m0BkhMr7owvLgMb6Xy3VErUaD5ZvDHlbf4++n0UT1FWTWjZojC5LihsQ==","signatures":[{"sig":"MEQCICJakqHeBdvi15BkGhu/M4HYTenJkVhRaoIEt9wxILfNAiA6iqnHXV6Lu9Pm/QFyvFHDJWjwQNRFuICDWdkwP3QwzA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113097,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoTpBCRA9TVsSAnZWagAAGQEP/0922vPK+98tsdPUe4bi\nGpDOIoTjAgG0JGXrJh9zQvdXHhRf5XksWGW2gcQyMsk7sEzg6n4pnz3IOTuk\neOCXeNgrHMg3y+ciLrPYzNQbNF8FTl1qswWpELYtisOXU6wY1oG6hakRmI4o\ncVqYbeUqi3xER1FloOk1sPYSPx/mDbKThScIw+MnDmEJej25jWvJA2HfSRmA\nfOWjPw4kO5O9aoN6oZ4rJf4WTy8TBxqSILg34UmyUDS+su2ME+km7vTTlzU3\nSs9TaZbOlxFw8Kp2NdZW0HJPgAhYijmISvGp0pB/Q8dFvsRFTCTh/Ci6tBnv\n5R+4IjsDvo7H1IRmqPASetD8YwKWdBZvIIzazlAcb48aCu4kfbRgNM300PFE\nv9Ok11Ckbil7lBIyOqjarFAn+lMJ0mreu6bCP7uNpvWpOnsXeq86Rotr8Ik0\nf9bBm0JW8+bmjZ+WyQaeB3umxdW+L9LQjsAx9HqnM+spURX9DmuNIvKcMhgM\nbgb8/qvRkjFQN2tqbiwiwQdPIhjYdJ5JfU2fhU72B4v1JFtw22Qr7X0u6KSf\naP0h7wHuFcP0uZLuGBPZAtexoOOxiWIhh1Pr3VgN+YsVFqkXAV+Ug7ig9QO5\n/a+XGOSvqa97q9ubDcVjUYT0owoZzvXv1qjUq47T07bCJEiuAkh3dYTXkQoG\nVxM4\r\n=zuAX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"87db185f5df091ccc463c963240a9d0cd67c8f70","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.0.14","@humany/widget-data":"^1.0.14","@humany/widget-forms":"^1.0.26","@humany/widget-adapters":"^1.1.22","@webprovisions/platform":"^1.0.4","@humany/widget-types-bot":"^1.0.33"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.19_1587624512741_0.9257225017082402","host":"s3://npm-registry-packages"}},"2.0.0-beta.13":{"name":"@humany/widget-conversation","version":"2.0.0-beta.13","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.13","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"02bb5220c609e02d6d9736f2612496f1f80419b7","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.13.tgz","fileCount":111,"integrity":"sha512-H+nmJ9pnpfwy9SPy1T9xIqvUI/c7IdrxeBN9NE75zh2lMhV2BlhKlMbsZA/GsukAJGyACbnBchyQzUhK0zNvUA==","signatures":[{"sig":"MEQCIC5InruHrZ9vN80wGtam5/4pzhMJMjM+ROEQ2ykaieJLAiAOCzd3dIc+gQEoXXLAKL+NsQ/jVRDDGcX7tF/ybVGOPQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":162984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoXyOCRA9TVsSAnZWagAAXvMP+QFW+5+6SitIzlw8pNxP\n9if2NTNfQ8Zsh4yxs1hG+0EYsU/QNHPlrtdev3uKO3NltnFywM1Zca6hnH/D\nI7rLF2nvjhjVJDT9Q+CaSdRQQe7mIWY6RXEJOfQql6PkKuIT6I8vyAEzCm6S\neRjvH6U6mHtglkeHFfBX1PwxUr1OMVc8vqJ7jwSgG43k7DtZ42I1pgahOJgm\nYwVG7LloHqTJBM5uJHiPPPj8nozv/fMa/yWAAZ/o/lXq+ZTxl/iiY0YJkspo\ncy3ypk9K7kvM2PwhCbSk6qTGpdYzWUe8xZFyyz5dmrYu1uWZs7iDowPJewyj\n8g9jDz0P2HcTo5mK/rD/NKoCZOC5Cnd1aTGNzXFPXzAGUJfc/d0PRMbN2ruw\nlzTMjZQK4G7qarTlhyeNNCIqFWFXTKKTPgf0wMrWrg/yfso/HbJviO/yPKTH\nwaz6/Ig0LWyNZwdRz/OLbRd7dfWFd1AaYORbeshnEJQgPq/uEPDwy37AMJZK\n7LxbpMzc7YIUNoPaMllULktdOzr3jSGJPC8iuGjSYdYe9j9/yTs/5NUzPYT+\nntA2tTiop4L2kldVR/nfBEusj6bdxcc44NxSImlyvl8VTw7rOGmxvEVY5ABM\nECzwa90XPIits/3cD0Ds9gnawRQanPxkkGLA3C9pRlnpboowhBfakq3MAcco\nGI9+\r\n=bQtH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"fb6dd8b60617cea5aeacbcaab1ade117cd3f6ab3","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"react":"^16.8.0","@humany/utils":"^2.0.0-beta.6","@humany/widget-ui":"^2.0.0-beta.12","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.9","@humany/widget-forms":"^2.0.0-beta.13","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.13_1587641486051_0.5562813372428737","host":"s3://npm-registry-packages"}},"2.0.0-beta.14":{"name":"@humany/widget-conversation","version":"2.0.0-beta.14","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.14","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"bbcc3682fcb2bf1c605d57fc8c032d52fac0178b","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.14.tgz","fileCount":111,"integrity":"sha512-D+QwaaV94rPPNU9tQscwHo7OBa8XFz7Pk6vjN32Uzf701oPRWmjR0t3iAQiR4e/lCGKUdepHrNw7qmNk4DYH9w==","signatures":[{"sig":"MEUCIEw9BelQNWmHdnzFSgPETO2Lkhgl77rcfarw1fppcqNkAiEA2q2imct7ZSb1zxW7+6tfHEHT3bgb6t3yANTtCwm13CE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":163012,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoaYFCRA9TVsSAnZWagAA7hEP+gPaYVbjeDULqddJV8IO\naoWdcvRDbYV3bQbm5cteqXVqz+Xo0sdy2Jwb99DdLdJflKD3jnWXMToxffpT\nva1q76xm6qfTf5qySO4UeQKuSkRk6tI2pb0gU60hvWa5A1F1EDqeqwjxxZk1\nrf6OEj31ow+WLFdrvNfWwGjJlfgkmWpzf18mjcYIC/ogv67I7ykzun9fSxsY\nZ9/oORMWaCN0Qv97LpzxfolyThJPiQkn+3w7ZPorR4EjaE5gI3xBYnzIqfrS\nec4FtXxo8ZenZJIvZUGyPsCO9UsHiY3DjJCi7vsDwNlxU46dBi64zGOZllye\nFDv4EPSgETUZL5BBQYLm5rK4brmiZUfhn0tZTrxsJhEWiXgvq6yqcca0WsIE\nWvCzdcheyJsYHQWtRjBrwAeEEhn253mc2YBq4LwksoFJRWGxtoHSH9kKSqNv\nu6YqQJKOlC11pIHIQKpEOPfPSxzkrmUxgENZh+6abweSMSDp5yCa83sQSkm7\nGnyXsU2s1u0sWvOF17lKSj+lSQbYg358Qc2jYjuOYJawGYcoKVV1ev4pHGUl\nmyCjOkJsmMWr/912iWiK0QGKpalMVeEtXpmo297ymPEM1sIW0aHiheJJ5ooR\nO7zj6WW/x5w94eSRfN6LhjcBMZxs0KeftsTN47G1viPOaJT6RtYS3rp1XMVA\ntJTv\r\n=Pcfi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"0f67d3461ace3ebf7a33092454ff4dc9e595a732","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.6","@humany/widget-ui":"^2.0.0-beta.13","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.9","@humany/widget-forms":"^2.0.0-beta.14","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.14_1587652100901_0.6174194557625885","host":"s3://npm-registry-packages"}},"2.0.0-beta.15":{"name":"@humany/widget-conversation","version":"2.0.0-beta.15","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.15","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"335ac38aba91912be395e945b3effed6bfde3777","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.15.tgz","fileCount":111,"integrity":"sha512-FFMow7xTkOnoVif4weVSFH+bVnwLNhVI/SuQoZ190yPQ4uJ/XP2+xgDWHfujaHoahGloD9wvuMsoM9lwpVvdcA==","signatures":[{"sig":"MEUCIQCw262w5ApUZ/1O1I+depfe8sA/ycSIDRaFJ9hosyggfAIgSLAuXuLXkjF0KOfQG9tpM3Wek2o5LZEhy9mZ5J8ezw0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":163013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeopekCRA9TVsSAnZWagAAEJUP/RdU2NlNZH9nQGO2LZAo\nNKUdNq9XhDHZLvIvnQx9MTfLL8E0d13QbW5zLxhaT3448r7Z1umo/KPAKyxR\naBZLYljLlPbTlmysMdwr4y6/2f08dRmde7kqESkavk0zzydQWi8LUNnk2pfx\nXD2BQFl9p6tE1a/CnwrA3bvyTI/5qeSzZCFRohezPJ6g2TGkv90JJNMwyN+N\nlD4PFlbP3peezMPCkXr0RpLMay2ApM3qNKJPBt5Nt+S7Ll9ZX3/HnMzdyq/d\nd662HZR/7+1Q9sHSh44bACJ/0q/sYCMbNmm5ZhYRZ2u320hrOZhcd8uYZGn8\nupotkUGwt0YM8FHZzXKoEbh6D9y/8CwZ8yhYENVL4NWtARcI1eGmNXwQmCJu\nxNVDmeWFtK5VukWL9rib8rtaDmi6DOEGdON3p/arHdsryDRZRP19wYBXPsHI\nc7Dmox5UdprV3/SCEYvYiktyxelBsF4g4bLBcVpVLfdc7oMoa4yL8IMLMmCy\nOx7XcT4zK3I9+UJCR2HXxB12h09t7XCR/PK5UkSW5wiweVgvTRiTVZJ4SuZm\niXTG3ltj6FyolDooxACq68Thvw01/4b7Ue8ShSUGYmxSNhoJcls1EWcMtNXg\np19o20s/lFrkihPjRrrZva6mceRS/eoEId0CGLXwiH6NWK3UYIgBW6h2N26g\nMHlr\r\n=HiGP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"479d28c055bedcb637f6c0d64e84dfa65a7eb282","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.6","@humany/widget-ui":"^2.0.0-beta.14","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.10","@humany/widget-forms":"^2.0.0-beta.15","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.15_1587713956401_0.19352385492729152","host":"s3://npm-registry-packages"}},"1.0.0-beta.20":{"name":"@humany/widget-conversation","version":"1.0.0-beta.20","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.20","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"540679e9ba37fefe86eef77573431bcf9d4a481a","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.20.tgz","fileCount":69,"integrity":"sha512-Hph6VTWPXPQF47Qx++gqXbJw2537IP4leGgXsgAzY3ADReECkifYMLMa0vwmoN4mj9+NYUKqVJ4Ayiii8nc5AA==","signatures":[{"sig":"MEYCIQDY6jUI/rvXGcSlQoXe4kKLGCIOJw0BMnSoa7LsjHiKqgIhANBRzZqWudVOQ3jQahdiLikCSdCu48P3roDipyQ2Omwz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113054,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoqhuCRA9TVsSAnZWagAA/6MP+QHa3pqCIcH1/UFzLO8G\nLDSKtNhXAuuWaAY9H98YkDK52j/CfTgtSqVmS/VHwZH1fgbodnSEIwOVvCaS\nHS0gjgKdFGjggmNP+EpqRYbYe3pzZejj8EC3tSM2PtMhk0wJCXl9Dth/xgLh\na+VSCVCxGiopTIvM4XJ4IaaxNM1+9rB0T2tqHZKDMrlfp8ygCH0DSFW2eH5D\nlCGlN8rwyokAZ9lwspBPMEahxlZYuWMcS9F7Cso7MmXFHF5B1qAv8qE9rhNJ\nW9lnK8zCmQ1uCFZtA1eSBH2R4jDKkBdci5LyNAHIG3jfGTyQ2h8doUtZtjHk\n1W+VpS8mVfCV2IxcA52s9ppkKx4/fsuhX7Ve9gKb+aqk67mzHrb0HWA20XMC\n1D6vzKU4Jx+hSJN4cxMo8UjX62fFGLX3wdaAEx9BYsWZQxiCrTN9t03Br9RT\nzNykrJks4oaLCUoveGM0rEPq/BHt0TIWRGdjbCgZUNpwkbAu4OQnSWJdpPPs\ni4EgmuYpH7XoKU4O78u2uDrPXXWzl/cDJb9scAHpU4dXIAA0r2dAOV+HzlDy\nPenw66RvW78nOTQuXMcWusZ+VKI8Oy8ZjScOkcnZPotW5Y2g0ORDiVHf8790\nfjivqpQ3PFgXngs7gy8qJbnisg5xiaYVf0JEvS226B2z+W71JnEPmcqyrUNz\n4iyp\r\n=jMYB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"80cb7eca6d6b3c3a232bb14fccd5dff1280d269f","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.0.15","@humany/widget-data":"^1.0.15","@humany/widget-forms":"^1.0.27","@humany/widget-adapters":"^1.1.23","@webprovisions/platform":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.20_1587718254355_0.32261754118836916","host":"s3://npm-registry-packages"}},"2.0.0-beta.16":{"name":"@humany/widget-conversation","version":"2.0.0-beta.16","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.16","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"ffe8e47fd587baceac16792e98ef75bbc8c9d3a8","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.16.tgz","fileCount":111,"integrity":"sha512-+AVhdSDt+BhMxusvzTPKvWS4ysqCxyY6KMTJWJnnB0EGcB9KMjdNWWvS7yAeZCFXov71dOmvES8ReLBIRMMs6g==","signatures":[{"sig":"MEQCICdF/KUDheNDdLNQEjYYkwRDHl0EQlTJpn7tqXIIAIdGAiB/g1ZgH5uP71yDwf0PMmeuzFfNV045KbyFRtnnjRTauA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":163013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeouX8CRA9TVsSAnZWagAAs9MP/izWXihWC19MWvO86JTm\nLer43cLqwGsOifwjfYuVpsgjpl8YLIY00CGiUDNH0O6+qhHaYDjv4vqaC7du\nWo7SeOu7w33u6cYChreQOGm+U25BdSB4i41tKaEAB6EnSVORUnhSO5x/jqsG\nQSA/svawD8L+JqRGc7vJw5s6nXTwPQ1fDsShPjksI+Bx6lyOFvAHxxBJ56d9\nIgI+Ug2j1hcnIbvxuYvRH06K4NYIzcxkcFmbbYDDh0/jtv2QSIy7Hlskbf6q\nTDeYQdwNwktAabGL1EuLF7Icb7xve/qKqRIeNSDc957RhIdX8cgY04Xya5ju\nfUIElSiXUpdhzWTqxrpVQRbFE7TRWl33maSW7FeLkIr2ykOyOKb8IhAvH+zL\nwKf2sqy7/jSLhNpe7YvjlRiNzULqofkqNjmliRtEk0mr2FXqmS3NxjKV1HN8\nnEbOTEOFozZav+mQhLDgYIikUXPVwPxxJgJYvhY7FgEPGnylUFo30c8Ur0e+\nLQ5Y5NVKqf/9is+lJFPMTB2mL0AEUdSuil2VSxwMXOqW74pV2hFD6j0T1vnl\nEB7+yndCVlH/iQW34HDpjzkL3MBMsGwxp5xs2A4SaWNXJY2pwP9v34NLMVvV\nI9yOzn/8nLvtiX0dHeoBRELcAwJElR/WYg2NUBamX34GQvRraYlGEs3M3wPz\n0U90\r\n=7Yk9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"279b26cedffacb1bc745b8a553b7afe84b19aec9","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.6","@humany/widget-ui":"^2.0.0-beta.15","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.10","@humany/widget-forms":"^2.0.0-beta.16","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.16_1587734011742_0.6541488081725939","host":"s3://npm-registry-packages"}},"2.0.0-beta.17":{"name":"@humany/widget-conversation","version":"2.0.0-beta.17","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.17","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"33d881dcd3fd3a1c2145c5e2242699fa6c9a451c","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.17.tgz","fileCount":111,"integrity":"sha512-ynT22jdpzyGXyF84M/lmlQYunB+EVoL1mq/bMb3l/wMsgWlmpx6rZqdu7j9wBMRbUYjVeQZbm5Gxu2LLQyza2w==","signatures":[{"sig":"MEUCIQDs6FboxpEtfv/9jHQOu9wU3u4Ere+BiBz+XoNFeVxc+QIgIqFC04vvma1nxYgWVWJSTctf9CK3/PNfpB33ILcX6vo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":163013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepoqfCRA9TVsSAnZWagAAeZcP/jsyc2h/Zuuae3nv7DR5\nE1JRkveqelOLpxTuJrZ/3aQXkgplw3T7tbJuUJUVzsvwwMn2x1FpyNybCrSB\nh9l62+OGZWUWOEv5RFmhfGgRoXGIP4wASDvxWTsqZoIcF7YD62QxAvYpbqFE\nX+R79ZkS1IRKypknYPRuumEEbq7HN7Da2+1pDe+4E7vWTs910BMOvTXzwQcI\ntvCsfeqbJpdZzDR7kRzANr8ZZyprsHPl6U20l0vqYcKtjK2gpBt6aF5crySg\n5no02nvQXS7VQATOJItD+zrOU/eRhkuD7pJYUfOldwHUkfQscWUMIeBr+Qta\nco7rEyq9t0HnXRX22bibci3yKoMQAlzDuXwMrLNNFRMjnmNcXu6eYeBlOc/u\ndmixFGCdD8MI2DttUB5VZ8BO2ZUA5wISkbOXEXaWDu7TbrTMt6OaqBO7DQ7C\n6zTAL5hu79n6n4L0WH5LlLzNAWijmSNX8PJj+Da4rsGqO/LgO5xjUrJYiE5o\npDLQpIKLDLXJLz1DI/57dWLYSwTh1RjXAxKf+uuGigarixLKIldtuyBD6aT/\n1HY1XbUAj2SyrriV9ckCqEaD775d4rhPXq0hz1rndRJ9Q2BJl6kr0d0UmWll\nizuWz5ZZbRXD7YEZwYD43L5Y60NQbFQ4d9aDKoNlUs6Hd2BQh4JcXximyWnh\nCApB\r\n=98Da\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"0531c09de91af7813db130e355cdc22bf7278f8a","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.6","@humany/widget-ui":"^2.0.0-beta.16","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.10","@humany/widget-forms":"^2.0.0-beta.17","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.17_1587972767247_0.743985753639792","host":"s3://npm-registry-packages"}},"2.0.0-beta.18":{"name":"@humany/widget-conversation","version":"2.0.0-beta.18","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.18","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"d22ce48701047ea386a0734986d4e26221005b46","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.18.tgz","fileCount":111,"integrity":"sha512-skuVhu9aa2GdsAnKIz8HqFvbEcJUwLCgdfkwzOUEMRo8/U6kU9hgBf/fwH0zvkmq2bSIAQX8ZRBbMnqPu1oXBw==","signatures":[{"sig":"MEUCIQCOnrppgbMIgbLhiLdgGSb2cZ5MJgA0ETL4nETXWciZSwIgB+DI9YcwMdpNmrRLFhieU31lv7T6d46/G4SD864IttE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":163013,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqYAJCRA9TVsSAnZWagAAohgP/2RVYp8gwH3EarEL+7iC\n1YmgcLIMES821T2ZSiYFZKW6VB7aF0OoedZ5mSC153A6STvrFPxy6dvZE21n\nL9qJD7eALyMPhfLBhZlLU4iK8aHcOoW3tuvMxxibcqbiSEXqwCALqu5jcVOR\nKqbZ1rLiCbkMYG2xdgXDdpBpuGXvT52u19VXPhhG8IBs6gAd5v1IDQnixAYg\n3rbtEnLhJegJ/5X8Q1UB98KCoklORj048riNDh3OJRKXFRBBpPBC3LK+T/3X\nmcKLt7NuEo8XbgQaxIB1MgPpYSpnwUIb39TP1WQFhkPQonRcrWipriLqvD0v\nL4oVMUnD9vraXKmi2jaW3o684M79EhIken/u7yVw65loL58o1K6yNUnsgTZN\na4izhpD6J0xUXm5cOSlavzVXPn3T4MTL6vGt2p1CMdLORy56FB+GLsxQ4WGM\nHjGKLMWViD3hcqcjF9F7Am962l1D+DE5towDDnPpcxVrci4eGTD6K/YES76Q\n1RaNvlckEkKDO/yeM7krQMTVDIsghin3ewcE3K4NKzyUqZY0g8T+FRPbcyvh\na7EsZ7idZ/CMo2wTWdLnil3g0GFx+VPAzn7hV6jkaPYKIey67KG54iWQJ07/\nAgLdyYWCASZ72NINZdW8Ci5uAODXXMBGOWSjPr5aVdykrgvOtkqAaDczTWBT\n+BZL\r\n=wuVZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"425c1f4da14170f4a0c8df932c89543245418ba3","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.6","@humany/widget-ui":"^2.0.0-beta.17","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.11","@humany/widget-forms":"^2.0.0-beta.18","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.18_1588166664757_0.1777525505061015","host":"s3://npm-registry-packages"}},"2.0.0-beta.19":{"name":"@humany/widget-conversation","version":"2.0.0-beta.19","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.19","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"fdce9044127fbcf17bc82165850396ab36b16abd","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.19.tgz","fileCount":111,"integrity":"sha512-cBSyFOUd48JU8G6lTb1b9xP3jppaaG3E8BUKiz13J6Tana/aqKrNkAt/60FfnD+Hao1cwIpVnIKEFzza5DJoNw==","signatures":[{"sig":"MEQCIEWhEqdtQ6K9uI3ASiG09E6O/syCkSrtfC7LcCVo4TL/AiBoaztG+rGEM8t5lw6y9w436iobXw27cFFhYvoPn5N2wg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":164527,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqqinCRA9TVsSAnZWagAAl98P/0nJlj85ictGOpp7RBim\niIyYshncn/A2QVkAXpROLo5s1lo9XQJQRQ0qaizhVXo/NCvvvB6AOQRhg/vs\na+IbnumuMRBGaYpDd1Wzi270KU5q/3tGYIO7gDwF14X37fa5PuGFEIBE9yMy\nzTHZFmPBnfc7YRwGxSPhXSbgiv0tgGS/t0lR8HV27Ek3yJaxKnGDMukwEES7\npW8WVmeRuYqBCjT85YTMD5bUvSPE8aaboBtG5BsflNt9Dpmi4+NccBAGIixR\ngV1f3VQG2i6lmO3Rv3OQsB1d42cDJabqsI0ovFTsbnJcwsDIqvIyU28kzjLE\nNTpEpTrwZ9xk0Q1iQDSLZC26qM+AObEOA8lcU/gPpLpShwU123NzDXUNrwwg\ngQLVIJxeWdrIPJgh++7DoG7/cncn4/Fa2AaR94sA0wF8kFbLJWwSwLfXn1ZB\nP4krm1a8u0NidgXeWFOJwTMOLMTRe6a20ntvqWuT6ThwvJbqty5Xux8/XAY2\no+UjBJh0Znu91EEFna3y2nOiqqxHjCQuZ8SmXJSv5T+LwsXzW5FStFl1knWE\nYu48ZEmwn/BaqRF0sn2gWm0lEwyw7Kb/P1UDqvkbYN39pNTBe1miAzS4J8Cj\njXLIXUp0R8CWWcGoONkHjmfirWGHzWCcIG09BTiGrcFv+ve4rJnoFMJLQ0hV\nhtAt\r\n=6J1B\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"50a644764c85f3283e40b19fdaa8d412928230e0","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.6","@humany/widget-ui":"^2.0.0-beta.18","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.11","@humany/widget-forms":"^2.0.0-beta.19","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.19_1588242598849_0.7286043199557868","host":"s3://npm-registry-packages"}},"2.0.0-beta.20":{"name":"@humany/widget-conversation","version":"2.0.0-beta.20","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.20","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"af87b2b9679df89b07dd43f60366630d4a28fef6","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.20.tgz","fileCount":111,"integrity":"sha512-avFilNIGh8VmuEQG+xzOShf+8UmUlHXQkETMlVfJIg/WwXPgVGLkIay3NbJM/Ic4wg4MFwwrJ9Y+YwmtY0mxUg==","signatures":[{"sig":"MEYCIQD6h7b+d7npRpnFDOjQHuEuzVR2MLqcOYWXuolT3LBQVAIhAKdUsx3djlA1ehInCtT4/pLgzwLhjv2/qY0JAJ5Kqssa","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":164337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesq5HCRA9TVsSAnZWagAArKAP/296s9ZEvrEybSXQfcvZ\nIuHAyKboluxPkzitao4UWSa2iUyiy2Ecv+E0aacb+sRhoZuhuoLf979aU6Nc\nuIUQ8/3omI1z2/Pn7Tce1Qq8hp3wxnNDNUrhEHU6IE3X6MQTlx6VqfDQBMcd\nZ2GTJD/CZXm1brYqR25hh13ZDXmq2dvjL7TpshmF4yAqX0ICHl7N5pANYuCx\nYvCLLAQqT6OMzIIiOct6e1n+T6X72Ubs0834fLrnlvLnBLFzwDCTbXjiG19y\ncDT9kdRf1FlhQnSVT6w6/846726JvQ3JA9KDDJq5i+XscgkGfLAr7XXuxs1o\n96nY6pOLDH87yP9QGw9qx8W3HNhJIgZWlYtsNzs/d5UcHexPHaK8CES9WpF2\np5ukue/1M2PoQXlRJyGZ5kKFBa/UtKv+HbcS+98G9Uf8YtIKqr7qxUYs+tal\nNkRIFzKwq+k/84FNA2R3JbJ4qUGab9wYUzVm/kw5AQZMaCZE22J3Ng2u75/c\nbBi4q/CApuc7APptPFvLP54LRrYKH899I/EdH5R9VYHlDmH8bkso5sxqaEic\nR6k68yzmSOrCdWxZ2dmViHBl784veUP4JdGbFwwZIBb1EkwfOMCan8nxMHxe\nduBwMWzDj85SpmsZI2srHgV7fIQwlhhF5+0yHaxPPzYtYO+vflamqHtbzSoN\nyMh3\r\n=wL2r\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"438bd757998dc469628e38be6097629a1f005b2c","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.6","@humany/widget-ui":"^2.0.0-beta.18","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.11","@humany/widget-forms":"^2.0.0-beta.20","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.20_1588768327140_0.7735653724546943","host":"s3://npm-registry-packages"}},"2.0.0-beta.21":{"name":"@humany/widget-conversation","version":"2.0.0-beta.21","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.21","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"3099e93aa5b6f2470db73513f485f7f478b2dfd4","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.21.tgz","fileCount":111,"integrity":"sha512-qmX4vOTR1EGyF0MwTY1d5XeUB6FLsT7ffoNiVdXdpYKwJrq4cIPQi5qnkJPAx/olUahVP4Xn31/v2geLXPVk4g==","signatures":[{"sig":"MEYCIQDeBF8sk6+RBHY6a515e8mnoeMvf/p0l34ljMhV3iJlEgIhAN6mH9C9xonHnT9GY0Yi80Hv6I0qZ4g5ttn96esLcZkC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":164337,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJes8FmCRA9TVsSAnZWagAAi6YQAIWoXQyOeYIMOdsHqiQx\n/QASbEYmSscY1YmA5mD3TRmwT/1jwno4pT5t3K4uVjhYpEvQttttf7mBeQLO\ns1AsUixXdZYNDITwoOMCS/KukhkM1jQvAhfXoYZIQYgwgwz9FtEguyYHXTmX\nbIzhSevgjVeUono/l38UlO3U9m4y8C+8sy6GbM929zuGBBTqq6WYOBaTPAKJ\nIGAKCpL7iwbUUhY+M7DrFXqkjNLmud+gT7dQLoT1hcVa4G6ClZW3+ri2e0zn\nbnGUjgLy1a8xUvHkCYpModU9u+0q0uC4/CFxQrSNrZbl17+M2xu0jgFhhNRd\nvtMZfWkUBXkKc1iaC+NylDpWpOu+CgoUWjo5Rh/ztd8vtiJ4Ub/uMYHxv7Zk\n0sDHdDDUBvRQP+RPHwO9Z+ZbpH8wqeRuGyoBwWZRqjxAMQGPbH5U7uP5p6A5\nhke+gIXZsygapSkWzqnlBiXSkiDvAIf1m3dHKv1qXFkrqtBQ9qKbSa88FzOo\nkJsY4trmGgyBfYZPODyf2VF92046fKG2cfcgl8ACTha3Cl2vVmA2lK0YnihX\nylAwmNoTUA2797y45V1NWgC3e+hwi1AFrhSBPua7lyaW2adECDBPMNxCD0Uj\nUHYzDE1wiDfZmZy8WUVuCdFO6bKsonlqGd9jKDweuYcJoHDskqo1xeQog3kB\nr9lA\r\n=VGQW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"fc55ca4def01ca5dcf0180a12b421e29f653548f","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.7","@humany/widget-ui":"^2.0.0-beta.19","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.12","@humany/widget-forms":"^2.0.0-beta.21","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.21_1588838757988_0.10572716494153567","host":"s3://npm-registry-packages"}},"2.0.0-beta.22":{"name":"@humany/widget-conversation","version":"2.0.0-beta.22","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.22","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"ec605e9554182d8621097117f163068bc9657982","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.22.tgz","fileCount":111,"integrity":"sha512-Ckyq0SnxGr+YyeudXQ9EX9jXFmX3+c3ZKymJw5c48fOr93p4jYvq/dIw7lvjls2x8GX0liCMziKmDLFTmDbC+Q==","signatures":[{"sig":"MEUCIQC10QhWlIy6Lsv762rVtXMQ1xy0LHumvgTUFcIHsgxWewIgGmW1IKUg6tQWmFWEoUBpQiyen/QMV4/xBtcxi/mXHSE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":168838,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetT/LCRA9TVsSAnZWagAAk9EP/jpsEjnEi8Kn/yVOKSIK\nnQSA6uQ/Gs5Uf1dawyuJA37cBdM4CO+F1opc+V91+HWQwtT56XIcz0xRe8l9\n9CRCABU+xDUHFHZ2bkvt+CRuxkeTZ5BXSaD58zkIT7Ro3+IRFJJtaAjopyfJ\nhYkLigWrvPDAp32FuqfW5vaOY7jVNWs/lQHszXFU0USiXcLh7ePWxoDfiboz\nbiaW+eJCvLbDseK/uWWa0xyDaGW7CdtyRoDtDZIYJ43kf1MvzEKxvgJq4vQu\nDPsPex6AOnoVmEAyoj9cOpXfROKGKkJdRh5u/yYTzbxk3g7AgXEA6DO7BOU/\nWdDwBGdOMBLuwcozlb7sWn3qG43XBZwXDXq2OToyvhY2mtmCgtTiyUhaN0EE\nqR3blOth7DVgfEOkk+b0Gk9o3y/fU4haiFuxpKH3XvNluEIWtjoYEJJFo63X\nz2eH1YuLuIji7wDcK+2Kv3sQ8FnkYHkax+wHK5Gxek8aGLFI+J9kzknEn3+h\nCWtBo8kUFNs4pNaI8tidX8pEzHB2+PLctwvgCCqMscYkIVnkkj3YDd30qGaj\nT6932OskIykmb3ZMpMCjBDHeGfFEalWOtCPvUdClyYXRYkH2V2FOUqzX6oL8\n3rRSYj9N6XdR9V7PR85XfQYhwSdzMynp9vky38pmS+jRPP6fFg1Ly9RqDrz2\ncrtG\r\n=F27t\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"a72469b310328560ac6be68c96e27b1ac8217c4c","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.7","@humany/widget-ui":"^2.0.0-beta.20","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.13","@humany/widget-forms":"^2.0.0-beta.22","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.22_1588936651101_0.20411070352816374","host":"s3://npm-registry-packages"}},"2.0.0-beta.23":{"name":"@humany/widget-conversation","version":"2.0.0-beta.23","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.23","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"2a16c85f525492c453177cbebc2a35cd8bc730d1","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.23.tgz","fileCount":111,"integrity":"sha512-kXPzGO9nZldi7esESMWq53GK1FWHKRoGh2Iy2vwauA2Wx4gE9jVLmA1G1LHo5q2aCBTB1uPraOFRbH24bXI1Lw==","signatures":[{"sig":"MEUCIAZ6Rbt1VofzoTIv9kXtGVVNqWD5EStwC1qLL/tRtNA9AiEA3XD5PVdDWnRP1jHxAQ5f1OkgkJdmfiRT43b601TmD10=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":169112,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuS/LCRA9TVsSAnZWagAA0m8P/3btOiCDoBPSggAx3UpS\n+66paUDbl1kiWz3NwUq1oMg9XpUlWJxmeX1wdiKu7TY4rfA4iN3cvfk6rhSd\ni+CBDxERCgHQxeyq4AIKfeYSk3f2mCJ2Hmv4SIyj81AAS7BEuhLkydY4mAVb\nR4w+ML0b3q4GkVt49941rd6xRu4HxsJ5wX43x/iGy+DRC3MquucEIxw6b+T6\nuI7azMaX8qtFlkZV5idUmFzGQxMvsJlu4IEJHhv1zwnnAvyRbNn/qs604Fdp\nsFAa2ULZNcI4WNbMqzsUFMmP7fGT5ng81Wce1rI5Aw/TISBQvuYbl0OqehtD\nLd6xDuwhODJ6ay+Wu+mGoJ3nHqNJ6hKO6I9AfwjWHzsX9ehcsej6+zCICQJW\nJbecgku6W5bZ5qpklLLJ+aOKt8DQf3zKpMU1iySMq7p9O0Wo6rp+twfl73/d\nI2qQDz3hqSvYKkfUvetKLU+qKlnyepHJN/o5bBcYJkAeSDsinPNoS34MMfve\nQcCJUJAZBwTv9f8CO/TwOp47dpFLWgFKhG35kHI/cxa0duAdxjAUTMCsbjYv\nV7nDOOcbbK7gmhLd30LvLqHsnk/1q0M19BV//7+VnwoNFVkVBGXjP73Rk/TL\na8ywxSB/X1AM5+B2TLplBVhPeKmde0Y7K/hLSA3PgH9Nak6MJxPYnF2m8h8T\nIjZY\r\n=Q2vH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"0d39054e7cc5734599b67d4770789a6236462b60","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.7","@humany/widget-ui":"^2.0.0-beta.21","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.13","@humany/widget-forms":"^2.0.0-beta.23","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.23_1589194698675_0.6018057208779413","host":"s3://npm-registry-packages"}},"2.0.0-beta.24":{"name":"@humany/widget-conversation","version":"2.0.0-beta.24","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.24","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"d7e6babef166f82c2eee713a2795198a31ed2213","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.24.tgz","fileCount":111,"integrity":"sha512-Dg2+ALPRQSyNKgFzIjONP4JZxGxH5iVJy9wrgR9m8dgvcH6G2fLlvY21kRhsk2t2yEEnHpaQNLxxVVmZ2PP8ZQ==","signatures":[{"sig":"MEUCIFrGGFHMH5/TnErq1WcVJLYjTtLfDVgdUmDlYDg1v0W2AiEA17Zzd0ilIV9Jn7VhKKFhVCmINte92lI+xI1CaFCL6g4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":169112,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuqkICRA9TVsSAnZWagAAKQEQAKN2ffIUWBkrlTNCC4oN\nNe2x6qYMHK2cfM1+NN7YJn8uiGhqY9xqMgGTb0f4HTcYHtVZrs57zsOtdkHV\nap+VKnSoxXz0oN4EGlIn8a0OyCCLz0XRLLHnLiRydBt0z7AUiT1xIg1GHPW5\nADg+D/CLrUpfaKk74n9VlKztWl9zrSDuw07vab3r5/3YWgVEPT6Ji3H0uGRm\n+4n7Ycvq+z4tHQZgurZvd+okK0Me6vLRcL07/faOrzfiI1XCD/sfN9RGr6MA\n3CEMUiI5Mpg3uc4dDklBGqitPqobNrPEbsDqVffHYwJOMPRcg2mhStV+rVDJ\nolmcNbOr5Cyqdb8vQ/GFlizfOhpb2vQH82Cks1L+hUWV0qaWsLDgVQLjP15u\nlvpyW9NdjDD4k0P7j7F7n694rA7+mxZjor90Nv2TBnS5bCwhxbZd8h52btVA\nfGNZF9JaK8nTyLdZ9wZiKTGGMjoKAUdNLzfgO6a0IY6WM8pPAFKEmAFcwcYx\npbuhwUSyUvhP5uL9jWdYG7kXsYyWDpFWWXgc2qxdpqNVj+cHj/MpiLHjki2E\nKfEIYIB4cP5ZEZMvi7rC5o7kIIU/8bcppy/RIoM4Rm9ddxhR9vh83TKjY6m/\nJ2kZ1oENGFD+7nBfV0DgnLma7rL+v7egSQ/BrrZ18a+dp180lV1kuLrorIPg\nts/7\r\n=U5kG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"cfe0dfaaf4b644c1316a82ed90ac48b2fdc74f46","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.7","@humany/widget-ui":"^2.0.0-beta.22","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.13","@humany/widget-forms":"^2.0.0-beta.24","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.24_1589291271842_0.5288686039594883","host":"s3://npm-registry-packages"}},"2.0.0-beta.25":{"name":"@humany/widget-conversation","version":"2.0.0-beta.25","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.25","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"ec5f5a2f50cf80ae6ba8269e4aa0669d584c3dd6","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.25.tgz","fileCount":111,"integrity":"sha512-ytDg/gvI5nHJurqVGW/wZFQV7J3y68upLYppZ4QzU+9PZR9qMcc9BOLAhZfNIOIhhG+0/efmcBLgpCADUenFeA==","signatures":[{"sig":"MEQCIBMB8MLhpChqoVC6AlShMmzHyoYFUvxxLJgg4uFrXDo7AiAzqjboSz1bDli4bVnruaPWWThdFJbOTDfbNGiLbO3YwA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":174554,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevmoGCRA9TVsSAnZWagAANZYP/iT/m6Q6x2QFhJho/eFN\nKsvRnnhmqIdGlyyoV2tECrQq/6dmKkzEAEVNqWTEMjx78IYu+8eHNvA6Ffpj\nBIzY+2FCQCUIzCvGTQRdAXmn1mt2iLKpuGNn0K8i8WZMwkqwCkb9d2DRFChw\nlicpvlriA5gWAjd0Iz7Xq+rNurR/u6esMtuvja6Jia/FETzqa532YNwIim3F\nQ/GDUMJWMCSUh8dte1KIAD8zWFlaRD9zWy237ueaunES797r01Vb0nTk7Xax\nnVmu4fmmo9x8SStFC0AloK+nSxK85vyvfTzm9UHLfC31fk5XYwOx4U0PmI5k\ng1QqNlpUkfAiK89H8tJ6X+FqVuTw1F/Rd+uHkiK+WiIuLH2m0wOCqF48b8yJ\ntN1AME5Q/X0JeZTZqa5P2tOQmElSJa5DcBDt4GoifR6kV9hNnYqFX6AzpDx6\nrnoPKSrEkVKpCrC/Eta02NixJyqwm5uKGluYyE5jljmf537kG0p7zjabsoDV\nwaGumQUl0VUzOMguLcJPaSnuA8V0c4QCAlGYQtaP6UWSXq3QO1CssitjI8m3\nmTvwQMxP8TYDR4PSKzezVOWMUxUmZ00puoZcj3mrzCLzvretAPxdpfjZk13k\neH8XiD4dHspjfQgomF2FGmVd5yBZ8vPeos/R8idQAHgZV3viW0+oV1++UarN\nuF3z\r\n=6hJT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"24e35578d98d2bdd1a6766fd87758b4383155cf6","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.8","@humany/widget-ui":"^2.0.0-beta.23","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.14","@humany/widget-forms":"^2.0.0-beta.25","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.25_1589537286152_0.145945037408179","host":"s3://npm-registry-packages"}},"2.0.0-beta.26":{"name":"@humany/widget-conversation","version":"2.0.0-beta.26","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.26","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"d2664f7c11757e39589af379132783287672edda","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.26.tgz","fileCount":111,"integrity":"sha512-J5cvucqEfmHsHI5kC4IE7aklB10kBVplOuJB32dNOD6yPzWPrWnrdyOrP0jeAXPhM1Ptx+kjPa3pzTRhOo2+Qg==","signatures":[{"sig":"MEUCIB7EfdKdcf5oz0JwLR8/7dTRpS27L03fqe78qBWsttlWAiEAgXfQpMH5q7vxljrV3Y+R5vmcWm4JZ4RjQFQilnVwjjs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":175808,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJey3xaCRA9TVsSAnZWagAAkRIP/2rR5PNduKK5XqCGUA4W\nmqCzh6RlzH0rDMrJCl3DLowujK5uJoAOcM7x1vf/yfsgzwwZ47e4riIHkNhv\ng2JK+euFPAfUpLl5d87ZYZoWdNFGGtHBL0xyV/Rr4gicKkbpoE4fGsQQkDy3\nLZVbiZ7bq9JVCOdhTKqYSUz52WGQtg9lakLHdp4HQShb2XqVqMX9CR+rdOGL\nWOrCkjt1dT904CluN7adWesUrfDM23thzDeOMfdWga9s0L5AOoM63Vg4JmoT\npau7k3nl7YvqKaoKF+sow6d2zZvMhoQaPJQPR/eUjgjsfA51TmpMk/qLn5+J\nezM1P5txP5od9jTpay2ToVqQuIymisbpRP8UDBZvGIQ13/Bf+STHepok0YX/\nAvxTF3o+wuy2pKuZ5rNJD3thRWksXzPoI6MX6r9l0deEsFiQxG24iEaVfR4X\nmrz8a98rWoAkYhwOz+K+LCPtKl/97GOrvnzQ7syR4bTaVDNWNHlgvLb5GJge\nNWWKfccIBPPpYIvJHEwFBtRvm26h8VtUTHJBxUKaoErVWMYy2/fCL1jTJieM\nJ7XM7pUDBjAEfjB8Im98/K1ftGgPL8/n51CDfWHlihBaLSt2yjG2N7HZte0f\n+eePmSkYI5k9rayeodRPJM+ckBbk3iBzUZCLUCL2SWScmXJ7AoJY4Hy1DhF8\nTcJg\r\n=0eZC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"eb15324368516214cfb6dd84615cf678c25b169e","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.8","@humany/widget-ui":"^2.0.0-beta.24","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.15","@humany/widget-forms":"^2.0.0-beta.26","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.26_1590393945650_0.40611637169122417","host":"s3://npm-registry-packages"}},"2.0.0-beta.27":{"name":"@humany/widget-conversation","version":"2.0.0-beta.27","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.27","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"40debb68c99f8eadc1a533f45d7d3e153f318126","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.27.tgz","fileCount":111,"integrity":"sha512-TKrz0DPArUtKsn7d616+L4EOTBfrTKjEf6of+ZK1827Nt6MwdA7QArTULFZJYIMNIkk2TkN7pcIWeh9xqqOu6g==","signatures":[{"sig":"MEYCIQCiShnveqtvJzacUm0XvN6AXhbxEP88sOs4GUL1C7kiGQIhAOBCbJyyDi+sDjPN3wlJGtyR0taYgVJUxbudbA+2iGbo","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":175808,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezPlRCRA9TVsSAnZWagAAo5sP/1lcLQoLuIPcUcD5jKFn\nSWzAdWITcJD4Yl6tus96Kh95ENsCshurqWQS0L7iYNk3Mk3o3RWfIR1E0pIn\naMyEuUefuwz+RP0HML7nr0huhCwhHVp0uUv5oiHsPdngvu7LmFzv6fIfW/4Q\nNS40QA2GVMpyi99SSn4h+uhwHUFbC61Nc4o2hgcAdquC8JLmRuuXY1hRt/qu\ncY4I8iyMzVbmMjaBcIRRrQMVeb2W0pTS44E007MiVgvB1fXgB6UANNs3ULu+\nxdfOaobTQ9tddp4gJWl9X9fesfSQS3/5Zi/OZ4zN/nieTmXB/Skrio8EWRu8\nozUuYaB3lwk6SdCTYTiebjOum2x6XlsW7HUeGaqGtbZ9CLBj+U8k0jT1R38A\ntW14W4Igdw9p3hoJ6eC+t8jddbLQslK6uh5lCtSbDo7CUIsjPPTDBuaFh+PJ\nBWH/eDmDDCz4ToEQqihbdtYEnoMomQKKGLSHl6mQDWo1f6jl4r6Mut5u3zGi\ndfmh6rF2rDT3/+MeniDAl1CQQHilMLyOKqhn5s6EwyQIHte0HI9EAeZdw2AO\nQJ6yrV4Xmfxic95Nu6tRPN7xnQ2EziQkjtDJEIPHOCp7K2MhW5LjGG5CFvXN\nHs27W1oHhoR09WMCZ1SXLlmXFZ4qE3rIpnKuJP4dDr+SNZXVD0ThYB8jScDm\n3BS1\r\n=V0Y8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"20192e66f175d955c992622167f84f3b6aad1bf5","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.8","@humany/widget-ui":"^2.0.0-beta.24","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.15","@humany/widget-forms":"^2.0.0-beta.27","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.27_1590491472643_0.9026202084941486","host":"s3://npm-registry-packages"}},"2.0.0-beta.28":{"name":"@humany/widget-conversation","version":"2.0.0-beta.28","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.28","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"66ff685224a4c81cf41aa26a4b7334a9a1aaf406","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.28.tgz","fileCount":111,"integrity":"sha512-Ap08Pr8QFZEWYfZAhA1kqweoqAeBdPKlmZdNoD5R1Q5Hbwt93ZcBEq6Vk1iStmT7PDrjvCsbIc/udl6gx+u06Q==","signatures":[{"sig":"MEUCIDRckPQ9kXJSey2sbTpHcys67evK9sbFBy4IXma3CuM6AiEAvaiVfEKa8QiSQ713dcaL1nU1xkRSB5+CW+5kegY9MaY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":177850,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0QuzCRA9TVsSAnZWagAATpQP/ixVbL+KXEk15650zPey\nSAPiISGSowtxaBaUxAZhScx40omtMz9bD/7vaxUY6UlnpVkBZq6a5jU98w5r\n6xsgtyhtWz7nDFQ8KZl2qjLIp/Jgkq+0EDaZ9bjWPj3YSRvZPCE3dAPUV2oC\nZK1xbvzRAZ5qHCZVCpFFVen3m/Kes0djh7nhVX/NNohMbf3hbclQMltoqNvn\n7b9kdq2ZvYhVt2L3HnL2WlOHYgUMq0T76PubK0H8xfJ4rDSZwgzNkd/GoV0E\nkyXtwjsfYCCc1siWVvg97l1d+E7+pq/kCZMi2urls2beHtXyG1k3i1y3VL92\nbbpY3+2pKxYrb+bt9lUTuHXGBb5HaUAUUuf7QIRRFO8e8lIqW5vT/rXHd3k8\nFNJc7TBJhbbTCxehsdwl8GfVEvt+QkSdPkkAJrDO4oomO3eIIj9v2zAcuUay\noXSFHdHS+RyJkEp0p6tdU+KLlSJ/7YyC9ii9HOsD6q32MaH0bCZSg273nRXM\nTdRBHimxCcOlGMRSvq0PXzfxmJXSzhqTOxHhA0R5AhuP490SBM9ppZ/cwrGy\niOISQaC1ED+HDqogkKTZjxq3kqHf1SYs/A2L99g3hTUfeqhHwV6I+kAvHgvX\nL+ZaM+Cry68s95BO5ZZ+fod103WbAPcc2cweCi1YcAEfpGdW1Qw7hd0rB7aD\nAYzg\r\n=w4eo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"a2b54ab73f8db790c804ce918b235a25995d7adb","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.9","@humany/widget-ui":"^2.0.0-beta.25","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.16","@humany/widget-forms":"^2.0.0-beta.28","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.28_1590758322743_0.4385475942598025","host":"s3://npm-registry-packages"}},"2.0.0-beta.29":{"name":"@humany/widget-conversation","version":"2.0.0-beta.29","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.29","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"0634f57ba78b084aea20cb7cebe72a07bef023a1","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.29.tgz","fileCount":111,"integrity":"sha512-+Kj63aun5oX2dxrhk/b60LoV3XKgPZWMwe9nS5e+CTXYsMpSnex2J8tJw5e1u7f1zs0VLL+SBZd3bPavWvTR4w==","signatures":[{"sig":"MEYCIQDEylzvk0MiNVPzu5QdDqlXN6BoV+cW1DxttN9yOww8owIhAI52mjiAMHng4c4XDuupBFPlHhQgGYA4NKkRB1pCh9hg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":178104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2JnfCRA9TVsSAnZWagAA1ocP/1/uDwzepg07DM5CHPLa\nwVlj+ohxE8YO4EzAbdvmOCdsoMf5/ciSa2EtFpWd1ATrSUcdVbdCX7q6j+r7\nTvnbBPw2WVJsceAbMM0W9gti2UitUsP4KX6vgDZUTp6uqH+5z17juwuCclMB\nbr2Qq8xLdYfcrZ3o7E7Rw3+F5KEmm/5DeTQyrHUk6G2h4mzvKGAavFEmOe88\n+vjAdkkRgV69t09s/8b3K4m+TN5WGnjbiXi7srREiA8QVKSzugUmASsvRGGI\nED7rN63O9v6gwfl0k/LJ3sTSIWD/hQlu3Q5AUMT7fFHIUdPL/jcJ1XzET2hS\ndTeL8BHzt6OPAH5cTXkJope+7OhWviFqWYNsyGuYQNtVgmvUT9tCxc5YjtVe\n9I6nKBEutkjis5r0ijB1BcRRoWDn5pT0MtAlwAe8N7x5x7Vx8ZU4iMmDZuxI\n63P/FgC0XLsNKqd8FYuHHqc4/S3Z3YeLkUB5+3wND13tCa0JlpMbk9ECHqA6\nTknHepXqEu6EvjclP7uRw9yStYojtZHQ+tttZMbQe5O9UitqIFj+n33hgK9v\nm1KmOC2xzSfTHndLhLzSBRFMCvCELlk71u7p39n8a0CzrIWr4D1MrJJ4yLWp\nh+eJ0EkKuE+ID6RIc+iNn0m/RsD87qz91N8tdWmzIA2LO5wIeCzmJv2MVp2s\nqwsd\r\n=oaJs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"d301d0aef3d71d8064353aa2ac5a41fe1b9f664f","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.9","@humany/widget-ui":"^2.0.0-beta.25","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.16","@humany/widget-forms":"^2.0.0-beta.29","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.29_1591253470994_0.7532143510045306","host":"s3://npm-registry-packages"}},"2.0.0-beta.30":{"name":"@humany/widget-conversation","version":"2.0.0-beta.30","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.30","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"40b0c122b91f335b6c1dd2b1a3032baaea4a8178","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.30.tgz","fileCount":111,"integrity":"sha512-WJ/+gywf2ZFb8SLcRf33MOLXCR9WYcGMpOr/eN66b5cHf7hwr9pcuyL/Nl9KNTMouSdA3jR1ROGAebuDjmm8RQ==","signatures":[{"sig":"MEQCIGmD64wro0VJUMwOfjizjtNEhI2UXKigMddG84AkMAV7AiBs8o7sAzen9PAo5kmADyQKcN84u+qZI74VILq/5eZIMw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":178104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe3yTRCRA9TVsSAnZWagAAoUcQAJOojfKRfGEOMiKVhu5F\nUq/xicgfUdZEy/+bZMciluGncadGH0ASWGy4tXuSncCjc5FJWZymPHjT1qOK\ntDpgp1k7xMvQLIgcnbKUwzA3ub0ffd80mwTqYngY40DSmJbbBQhdnCp2s21t\nhPBXTDisoIwf4/O7Ps8M/rrcQI5qlY9/1uHa6Z9SqFplzh9SOT5zjjT1863F\nTo9ahQlUHM52NhHvBbnYpxIKsENnaWtRPfFHNEJEftlTO8Ns4a2h9wQr5loA\nt1NebCq0N+bScjZUPYrzQa+vF4Fwhx4Ccr4tnyJMcwTgZo5yGssQLWG80SSP\nfCt4QTAC0u0J+bahLOMRjX+qtS/tF65A5kmuepYsIpxs1DJPU2OE/5ExDZGr\nZ6tzW0gS11PwjJBFa6EUFRLzXeo45yBNx6vAWCJZgTCldOLNqpwSxrl21Y5a\njAj4V+K+zGkO3O16lhVejRZh11EU4ZouM64bEwZhomq22DEbftXwgMbetSYx\n+jbTTOGTv+Xoo3CfjmBIAu/+0spzMAuHRNSIed7hjt/Ob2KxB8XYaiPpSlyn\nz5lSTKKIvfB/44gqa1YOJrIBALGU4ATAZK8Ymoh6B6qip1uXErn6r3WarvkH\nJR6vx7qd3ou+kir897fH46kBJP3w8K0bhlXbYEBGyXvg0Yq1B4jbpMcCIjTO\neNMa\r\n=UV4V\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"7bdb011d791ecb1c4c06507bd8898c85a78c920e","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.9","@humany/widget-ui":"^2.0.0-beta.26","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.17","@humany/widget-forms":"^2.0.0-beta.30","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.30_1591682256689_0.7583060332261218","host":"s3://npm-registry-packages"}},"2.0.0-beta.31":{"name":"@humany/widget-conversation","version":"2.0.0-beta.31","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.31","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"36b3961e29e0b9eac94ee6473b9299dbc0a5e9d6","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.31.tgz","fileCount":111,"integrity":"sha512-sdz27dQmeKBZxjexTwHRkrNtI4M3W2NEZ4DlxmjMuZpiH7OWKijcdv/0zwsakH6IyRMOsEFTJoHsbZzur4eisA==","signatures":[{"sig":"MEUCIQC8IMdQv5jwN0NWxIOazb83D3InVzPE+/tAbhhcYKWebAIgHmitBSZxhKNxcD6LbWmuQB9NKrBXDIp3BaO85Y+cZSc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":178104,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4z2uCRA9TVsSAnZWagAAtpsP/i4p73zflcC5yJAdkd22\n75PCkXf/V8Phx9RL0+BbwyhT8XEDSGc6OE/iYxtE3r46p4g2Lgu1jMpPjmP9\npydFaV3lpzGuJ4RNEqhla6tnWWrTnVzFMaOMu46wiQn/laqS1AshGk0+9fXr\n9lTioFeq50YLYi5nAxOhfiALis5Gw1Vq4uz0u7PilRhsftr408kVrGecfQB3\nNhdUhYLaMSOKNy9MJ6zrtE8bNRaXMifWkgO/G2ex4hOv4tbL8FWAbmk4zd3q\nyZDXZvc5NJgYW4c/Tkt88fF7kuDiwRH7faXLsHk/8C2UBXKVz9TfTn2k5CDl\nL37uZno4tp76kKZ5BNF9c/8zpkPZLellI3L9FZpUuxqutNth3b4X0gHtK5X0\npVyJRggh2tw0YOPGNuUZFbotNxw62l0RnN0v8szwKWRpr8qGbryiHKXzyz0o\nUcgBPkbCONGnWxFh5upXyMIbnSBO34xzxjR09E239vtXKd0aOnEAEOygkYVR\nYC85AvvGTQKORV0j9KsHrptha6RUikJp+PZQTva0D2VILUtvF7PvzbtLRzh1\nK4Zt0a2y4VKcV/RlldpNEFRCBoQ+LlKFxYDOwOaWmCva+jyoTLQh221WNXIo\nb4Kx0V0zITG3erTIlFpoaXQMNYFmBwCxU/aKfxGqdWQaWV8G6FCtgkRcogL3\nOjqQ\r\n=+pCa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"c2f72b0988d7ff5351c337c9a4342e4f3acfad42","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.9","@humany/widget-ui":"^2.0.0-beta.27","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.17","@humany/widget-forms":"^2.0.0-beta.31","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.31_1591950766560_0.8683176906191967","host":"s3://npm-registry-packages"}},"1.0.0-beta.21":{"name":"@humany/widget-conversation","version":"1.0.0-beta.21","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.21","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"718f089ec6a8ba58fdcef0e0e44884f1d0a30b85","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.21.tgz","fileCount":69,"integrity":"sha512-/PLAyYG9ckgffgF14MQvWZ+0aO8wsv9mYUBywe/canXXu1g3m4d7U9wgIueaXmZXr2lhHzhPiTrGs1O19aPbHw==","signatures":[{"sig":"MEUCIQDw+iDmqIAjABrnUlUyHPP7diKKDJFsULXRsaSxurUzdAIgKdBJk/1udwMq7uKcMLxwnwNrm94T1vCr29aqCNtioyY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113054,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe40BHCRA9TVsSAnZWagAAZ3AP/izdxGOey4Jqf9qYdElj\nQIyGvXWZoxmZmmY+3aTGNup8pWtGALbxOQbhSmYUo5NNxV8HiMB1uhsAEa0q\nMJq3x5mSb87XJFDYFulyTRe7o6ImA31SEMGvv4pfIU35BGaokMC/HXI9cRmE\naqfq9sY4YAqrLa4Iyo8wkwlHTewejsq3igOr5rKpeWnmALdbFez130gZpZnF\nh/mA9H270RHeb5jPj4tGinjxeZN6Kxqx+c25mO7ZOGEEBI3xiUw+hjHJz21g\nsRBIcl2lkTL+YW3Qood+V0KeexilbSLDcAcGtcBStTrj4iUzgiMc1Z2ueh4c\nZthxoGXpwWjuGBdWNZOWzKZT9O11f+OxG4w34IdWo6uEN1blQnyzBbdrSPCg\n+ybS8bMVNnenSYWKTWSrQ+B75jkuDxudv73wJWybWcD2B/Jmw0W+3itx6o5J\nxwEbDRMQi8xobmeiTv6zpjV8NhBl2P05DtwR2QQC6pUuRF71tnhlfeiBFW3+\n0aF7WNgTIT+hVUEWbfZrD/e2jWQFiXWPeOdnYrqxypo1O0lGVqKauxagK/Xk\nyTyBNO1T424M/U+9xgyvruvFJBAL7BOia8IZ1T0zp7Y2AV8MYz1gkbzouYYP\n/X3vzoflVci7D6LcFNw0T4VL9tqSLXb8i0lX1a7qmxoAdb5xZQF3FEFwbLgQ\nYnEv\r\n=A029\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"22642158b8e3d2fb3382d96e6ae17a507dcf4ceb","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.0.15","@humany/widget-data":"^1.0.15","@humany/widget-forms":"^1.0.28","@humany/widget-adapters":"^1.1.24","@webprovisions/platform":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.21_1591951424804_0.7533874258770712","host":"s3://npm-registry-packages"}},"2.0.0-beta.32":{"name":"@humany/widget-conversation","version":"2.0.0-beta.32","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0-beta.32","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"eb4d9ab6a170fb65652f338fe315407e97d2fe65","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0-beta.32.tgz","fileCount":111,"integrity":"sha512-KXsd4K3aEvUSAyElByL7C8JK/UotF9WVaQ1E7U2QZrRn6VK43uCEw3Vl0Cb09bW2+qGBujtd01AdzcN47DL9Zg==","signatures":[{"sig":"MEQCIF1l4m2Kk1pCXQtgjIngEftZX8ReIiHlFbWThQ7qdhwKAiAgBzrEAyTOrdsr1dXKlCdVS+A2HrRJ6lzlDh+f081bYQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":178105,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6gWRCRA9TVsSAnZWagAA1/MQAKRIIEUxVz+RPvGtyPkQ\nKAv6TuCYnP9qnXyr4myeGYdtjYqiGKmCmr1ElsNFZ+Fq1ZODmAc6NCeYYv/F\nxZmoxZrNHArxLNLpcOaZvZkiKVkngr3uVENNbXT8LhG79wjvC6XuYskmijC8\nQNC3wt2+cyZhrNWRDzypSCmREE332hPwd+2MvFG2+4LBO0XUQKoQksZ0FVW0\n3rprFbfD0txxWfxmDYvwWXRJ20sc04B8T6AYsygPBdGA+KdRoPtJWcsCk7NO\nmus+UD2YTtwjAnC7CFXxXFPd5kRgO0+l8Tvj8KoflrsHFEaLlhYO/FFNPD0g\nfSLxO/qVfjthIrPayO9vJKZIOUe11+97WnQskHY3RSdW2brPoMKPcNS8giN1\nSmsW/Wy4x4gqWgZEzVD+8J/CYqGnpQOFm3h5sVFmMUIwKldK8+4K/b/XOK/9\nT7arhOEYNDSXts+rO7C5DIelMH1B4nrSBoTTuwxBESuW26IOfK3ZHxio8pDG\nSGnzB/YXD2xjd+dyEvvsFQntg++brx6+1qA+hJlwWesJgaXVNm/ehLFIuBTs\ngtNv35R5yNqHtzIka31WJ3uP6KVXD71NpzwE2sD2vSE0m9nuCTSi6IyRb1O5\nZ0RBl/QSmZh/VlySIgO6VtKqjLZVWQCBWcpHDjjjJFBeX54DQoQustbr3rOr\np4JF\r\n=Iw/J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\n_**This is a beta version of the ACE Knowledge Widget Framework** which is still undergoing final testing before its official release. Breaking changes can be introduced from one version to another._","gitHead":"bfa3f5722dfa6982f1609041ddd08efacbfce981","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0-beta.10","@humany/widget-ui":"^2.0.0-beta.28","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0-beta.18","@humany/widget-forms":"^2.0.0-beta.32","@webprovisions/platform":"^1.1.0"},"publishConfig":{"tag":"next","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0-beta.32_1592395153297_0.44002297418119096","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@humany/widget-conversation","version":"2.0.0","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.0","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"e20b109c3a3dc05f123832c6e5e0c115ce4c43de","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.0.tgz","fileCount":111,"integrity":"sha512-Oi+PPIjsEbFkPgO+fvrBrPOFgoAMO7ruOpqX3y4lKSXqcw45dov0CNyr7D5MFUAdRmHCLXZ88UQzp62YgevrhA==","signatures":[{"sig":"MEUCIQDWnhIQzCpWLCdcHYBBe9sGya0MxjhNXUrK2n0uOlqHHgIgSqIOHmVSP233wOdpwOByqAHwc7YTTriAFVJkVL8t5ms=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":177950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8zhJCRA9TVsSAnZWagAAhesP/1Kg1KxxaUBg5m/SWbNc\nWz/Sqqz+nZTDxA0ZsgoM/a21vvxyOioQnrEqq+2QX16qfzoVn2VGgk4jzFy5\neU3bMQq6bwb+qyKKNpDg3wvQ2VY/e4II5usiBO9tCADZr070fFcDq38oVn+D\nrekcBS1pa3hI11xx/lGsUuXZEqRSG9wgm8Kn52g3rJXOtuoBKsdLroMUCxD/\n+J3/6d6kKl9GNIk1VtV8ALucj5qXAadOMmynxOdjadnTOqn7cBYX+S7tmSCI\nlsCwSKwQL0vUQAyjaDMLfe4cGtRy0gFJd3ZEZBREtGBFtJwHfMSNVu3JKsB3\nHMeVnZq27Q2oVe/ehrPB+5sk3zjbsmVzUns+lQcNQnz4qYJpaUFl+UQ066Bf\nIaHENyzlPyK+ei/8Wm0fTPVb/fRDJB03/Dr8GEtq5EXZwuxJHk4s9Zcp69Q9\nsPBEwwG0Uqzl6r5IC22BLoPDbw9ZupMuVPZSJB5SbRlWZz8B1hECet26uVNo\ncxjGAzBKMDLfrjXsNIw+eNqlwyS8lxwZ0dE0a618CRMik3XdITW8EI3XnRkg\nJKpQEE/HplE5J2VES5yr5WjjTQRNFyqIjDlRh/bSx7KeztWU2C6Ium4RmQ60\n+tuNAkFAIoPec4g8e9s36ZY5s+2ywA5AAC7qF23xosY9rVlaGp7aRdo96I/Z\nCIlK\r\n=diSe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"2b6db955fc71cf1a8640e68982a566425eab8f92","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.0","styled-components":"^4.3.2","@humany/widget-core":"^2.0.0","@humany/widget-forms":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.0_1592997961030_0.07648195968593763","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"@humany/widget-conversation","version":"2.0.1","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.1","maintainers":[{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"497a8b764819a8e43430ce0b3f71e27068541e3a","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.1.tgz","fileCount":111,"integrity":"sha512-puMepNg7rf22furffklhFwFD6IcZR80kJ0vzJG0tR+Hho/TpajMUEEZ9e767BkJ1Lx2tf4OhsN0nLknSuUgWkg==","signatures":[{"sig":"MEUCIQDs7FkIK1RgYBcz7zxa5EgdOT9N4+YDHTKd1/eQ20QfqwIgCc4BgP+YQ+ujX3uKLzrmGTQ2LSaNmuyzkznpgK0GqPI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":186146,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfT0pkCRA9TVsSAnZWagAAIN8P/22Ji1/d+iu5EBzXv9ul\noumSq06GsvckhJdK8inLrqkBNc+eSeOFyJ9TZSPel/B2AdKvSLbbIUyGYSd3\no1j90IqHCdi5n62OPLzvSSUArHarcVJ8Z8hlp1xTBSwsbiIkz4xNzg1mqjhG\nPjIZ0jO1a2mumzXfaxCiC1xPmO9IrWpdhdJP1hhCQFGoNl2KHS5VNTEHmQHg\nANo2QO8t+3UBpCLAu4Z1Um7gKHZ2bHBBvoluz5yxb9xn6miwsUyMCCofs0Mj\n0KRuQ9Zf/xXr5N3PR1B3cnfE9aRn7aELj1gdLMafDfOrwQ4ycdwccJAks5sC\n6hE3tzj9MqNAleKRdlSuHAIyuca7uH4QQoAZJJ9qXmBi/in533J86963o/A9\n4PALIS9dwQvPup4iF2RI3HGlNNtMeHSGhNfGXZhCefK4KWyXuFLJa/QAt36U\nKnNzpPmpJGldfs6xeJmsfAxivAUS8p+dmGDnqakRw9jeyzxlChhNijoLpEkN\nzlDuH+rQN9tUi0j3PEcPYL3xmfszvSOvxfHpM9odMl8i9lvVzi3BtZOIP82m\ns72OXuBY9nlH1IkBb+Coffw5HCHacUbyfrCku8u6MqTAtjrohb+k0RaeLpHH\nExk27qKUOHGy0FVVVS3/+20XjcEDGLHUpxSWhbdxiO/YxJndLBMmK5daqTly\ndmyi\r\n=C26W\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"ab14175a2aaf2b9105e64e821211183c01f7f36d","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.1","styled-components":"^4.3.2","@humany/widget-core":"^2.0.1","@humany/widget-forms":"^2.0.1","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.1_1599031908460_0.38355221991161437","host":"s3://npm-registry-packages"}},"1.0.0-beta.22":{"name":"@humany/widget-conversation","version":"1.0.0-beta.22","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.22","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"993c331286bce9672d540e1e4cdd02ed25168975","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.22.tgz","fileCount":69,"integrity":"sha512-VLpjV7glQJlxba86k8XVHMbYMCl/ge139wy5vzgeHsEaFjrX3cX3Xq8SISZoSVfLx1EQUINaAERkBkGCNmzQ+A==","signatures":[{"sig":"MEUCIQD8Sv5yf6Tkjw58IuBgXciERFzNI5s6KlJlYoJ2PPtnmgIgL1mtwP2JyljjRFzs7gjB19OTMkJAVQyH7YLxJSqL3SM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113054,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVjMdCRA9TVsSAnZWagAAm5UP/2VcTl7AWCGDTpbF92C9\n5pyQlqyD1YTGWt3biQ4gHCivUrBe80EG31zV7Nw9zFHgFWqL5P1nkbxu9RFK\nyJ62EV5DH1cmzwc/BgBmTsvm5bnhFy/VdWHmfCuvo0WNzv+wBLw9BcYAWwHb\nvqh9Ojrdcadlew3133Pfr2tSyiSResXAkEf0CooGXdv+VHSx7njTqtXpB1ff\nK1nVRvo4fHZldWMfWHwImJ+tNS+yeafO909mwRkwwa94m0ItyoNsJwCZ+0Dd\nzof27wK/qvsMWei+CGh2rlZwBYnPIyZUJNjEGrk2mY7tIOnJkZZiZMJVSuiM\nGvCrXkIE9MP+MgXvqZA2pwrE2BD2tgA/BeRfkXpFZ3UCsr3YqL9mR5YqokOQ\n3gDRkXKKFuW/YnhRm27M/mPdo3fXMblynQtdifpJfZjAAAfntsUEQysQqKz7\n/oGjmYgAvBMW3UVp6dWWt1CYg01VDBnJursAi5X/+D44Ci/8DPbSrob43lKr\nboNdhmL+9zgzULWbTYguPjisrrcuLowtErvU7O7J63hPFLQf4xiBdUfxEDIC\nCieZTFZ83I2nk3E92Rs4RhaQOAUzjATY3h6LioUbLBb8AFmR96yOcrIBD4JS\nW4zm1w6xdvHjIUWzN6Q9b71h2H4sB3roLSi3SoaYGKQbLNrwoC1YtM0Oqz0I\nGp5u\r\n=vM7F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"e0e02c9a9c84553d11808d8116c418f09a77a230","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.0.15","@humany/widget-data":"^1.0.15","@humany/widget-forms":"^1.0.29","@humany/widget-adapters":"^1.1.25","@webprovisions/platform":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.22_1599484701312_0.1128883228882076","host":"s3://npm-registry-packages"}},"1.0.0-beta.23":{"name":"@humany/widget-conversation","version":"1.0.0-beta.23","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.23","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"a4d4fae8b41082f0da07033d97df8ea7e73ac753","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.23.tgz","fileCount":69,"integrity":"sha512-CpLICng+aTBzkJmjGzLoOHl0eeav5ZjBj+WHo2Y2a0M2MLfhDXJhuek1KGlYUO37oahpTiXM1Lo2tK3mP/19sw==","signatures":[{"sig":"MEUCIQC1sYagq4Q84Tw9cOsVWNtMAj8CqocAIWX4uqEXSm2o5gIgUF+Pj2spew6NEZmHCzkFn2mCniMo2axQTQap5+TyTAY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113015,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYIGtCRA9TVsSAnZWagAAtW0P/0dOrDQVzhGyCluYtPb8\nthf+LupRqN8mMJuu222ND6i2A+LBx0bH8fMUKkz552+riVCBCrcbjHuwqP57\nXoPKLJlOcyJt3yvcLChZrdTBQV9fF8NbBXJog/Z2kqM1qMRRcKrrBlhgWQOP\nUdpo/1UU3GY5eK0Kzldt/KEtvvRCNlA78Gm3sDSfm2kxszDG4bH+EiCI2tdr\nzRoR0HUO479h2glKzukZ9nkolKBGgP3jYCEE6msGLBARWVUFttdi1uLE29kr\nKYakZwF83Q3nknvjqWp6RqqcFtZpBgBnbznhxMlSZTIW4oin5fQEHNZHVQ4s\nXP9uhufVgZxRjIjJKjfJYXK7oqePdqUxlfmyqZNrN8tzeTXcIpYyO2kG4+js\nm9Lm1fm0HmFlxc8ObsApYn259AH5Fg1GUS0Qlv+BGUMGr1paCFCP/BvMX0pj\nlePloRFaMyATezOqKmIn6PE8oA1fV83ifrxySfxuAuW2mJcp09C02hGTYRgA\n8Y4zZM1NO4GRkdInrx1V2dGfhN7P7jjEFUVcEB/uWvUv5UfSwSkVDrw8byPP\nIrlHlxZDKe96epeH8oUvbex45yPB5v4Rx6ToPd8WjsWwWsHh6lEYQgcfJKEn\nQExYcCrZAMznUOXS7f6jA1eWnzL10eWQ8uge8yzBr0MXKBHe4rGawSOX3enx\nRgEz\r\n=PRsG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"5.6.0","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.1.0-beta.1","@humany/widget-data":"^1.0.16","@humany/widget-forms":"^1.1.0-beta.1","@humany/widget-adapters":"^1.2.0-beta.1","@webprovisions/platform":"^1.0.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.23_1600160173314_0.48227620114204495","host":"s3://npm-registry-packages"}},"1.0.0-beta.24":{"name":"@humany/widget-conversation","version":"1.0.0-beta.24","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.24","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"bcef66db3f5c8f70f0e10116dc2e17bb94b66316","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.24.tgz","fileCount":69,"integrity":"sha512-VXOgFQFjmk7slin9+0SxInYhZ6YfZcDiE4eb8wxLIUdd0bxNknaTusHolcWgtei8U0ucN4XY5Hm2utXRY8FhvA==","signatures":[{"sig":"MEQCIDWUUKom0QsHcR1gu9WIdL58B8AI25vBNwbEvbmpnTZoAiA5MVtvr0QN+gSZpE/M6VtPlvubd2A3nfN9GWwvtSsEQA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYhAwCRA9TVsSAnZWagAAYBMP/1YP1YHbGx3lWg1U5YAb\n/FNYnOHgg762CyoAYsYBFaXK6O3Uf3FK6bbfLyek/y8NinlXMEvuGFTgAnKf\njpsApIvVHb6MZh4yepw2SUbdunJw9Gc16DnfA2STrTtY/MMOaSwtnj/sVVQF\nr471ZMlrBMLDcMBhPf6u7TR4SYi2xhuWs40bnrmsDDS3oNmQxzsCdnOxBbRV\naJA2S5rbFDXDtXwN8stPiCEwyyV9/QIz7zMG24aVTCZK56On0BFUARTKRYXE\nECGYuH1Y8mvh5Hh+7OqYkxmBBKXCzLKTux3/fnr6XIeOebi/c7lc7mas7Ahc\nNUElmXlhgPvM35pSwRvVw/NPi1wFZ6pfffvF6v8WaO6fYx8o2Q79Vb+AkRUJ\nsR3LitlxU21UIBYmh3SRJNRlRqkOQ6LbFVF0CVWQWFamh8W7XULIL5mV6Rv1\n4ATf2DVxgxYxpl3plAqgE0QmaoP6S1Wn+aDdN5ce1nYo3twdxdm3SV0PC/5g\ndpn7KZNLevpR0WweRsLGxeix3tE4LDTqcaMbX+i2Qgv1hERt5yakB5kA8Knv\nvLEMNHpNGNdu3ULl8u8nZL3xvq4q5S92g8nz5L4Om1w8OCyZdLye2tPFDQT0\nNvkHLT76tthEMPmVBewFJ0fC2ShqxJQs3se/2XY63C62S8V7d5eTAQGhflF8\nK7lk\r\n=nc3S\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"fda73b610a299849ea5ea177d81b75a09ad4c91b","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.1.0-beta.2","@humany/widget-data":"^1.0.17","@humany/widget-forms":"^1.1.0-beta.2","@humany/widget-adapters":"^1.2.0-beta.2","@webprovisions/platform":"^1.0.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.24_1600262191955_0.196868476223641","host":"s3://npm-registry-packages"}},"1.0.0-beta.25":{"name":"@humany/widget-conversation","version":"1.0.0-beta.25","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.25","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"a2f44725bc27521abcaf2fac0dc2dcb87f30fed3","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.25.tgz","fileCount":69,"integrity":"sha512-d7ug1InOprQnZN93ZsHD1lnsOj8Qi9fs+pupO4xGW/cnr0XHNQ8lHLK8vXc1ECgq9PFmuIMjl9+N85vUcZOigA==","signatures":[{"sig":"MEUCIQD3MsODmT5XonvxGExt+5XTuJupO+M9KeTbz/tgqpFZ2gIgeSRvxoIAq5Br7Z1rO2y9G0RKDdzd/qsoGykFJwM92rU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYzWSCRA9TVsSAnZWagAAI0UQAJxw3d+owq6sN5/NoKYT\n/zLRDCv0Naeuak14/c5hvhwtwORg8KXyU7sl/R1vsCtE+VSSVXDeZEY6iP0I\nyqVE6/DsztxTgdTomgQR6XVtT0l/iVPmeoFc4lsJ/msA3gS8ILi6EOIYuRZN\n7tcscJXllWmJBfdggnSrFRldoHGflijBfSANaegfrXUfYWu37e9AmTJPF3wV\ntp6RKv4dIwvgz/blrHXWnLNn1erRAdJrLZ6cwbWJE51f/n2ZnAgUa4MMPCv0\n6A5NOGoCbqr//fU7e5TBgu4UPuISituzxPmPONapB3fUET+hyT6PQFlIoKsB\nTQosmsDnHkRM40cQUxQnVIgQcOnGhar7BRyDUE8XGVHYA0HR8PZw/Ux1KgEH\nBUNzUeCRNDlXMieOoKOmSbjBO2/tF/U3XXliRN3tDx9VkwxflnUlFfCowin7\nq74tNnujeqGcc+GahR2hFLcZfdustNChcSMCs7n61rybfBkwlmvwW/XHPcaF\nbfbD/6BBIB5FIIFbjCALMTZTEmRYM2+iwYeQP7w42nyyEDNCQQHH3ONbvXuI\nRlx+mLyhM1tBCDbjTyLaYN5Gg35nPd6VH8cPVc32hrvEmNTdKstbpagygt1G\nrdyEtbV05pnstIITA9b3sNzIYvV9ZQg4xwcR8e4VnMdO70GAM8soCOv262dx\nZiLt\r\n=4PrV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"f81819c5f81fc3c2719ced8ba9ed68e6c490172b","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.1.0-beta.2","@humany/widget-data":"^1.0.17","@humany/widget-forms":"^1.1.0-beta.3","@humany/widget-adapters":"^1.2.0-beta.3","@webprovisions/platform":"^1.0.4"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.25_1600337298190_0.7554090052824853","host":"s3://npm-registry-packages"}},"1.0.0-beta.26":{"name":"@humany/widget-conversation","version":"1.0.0-beta.26","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.26","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"f75107f6cb45b9880207561ad14f724a41dc2b9a","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.26.tgz","fileCount":69,"integrity":"sha512-ohr7sPZ0oOmkRc3kaLY978lsBGkksLyj4IwOsi/eRq8MDaQ/mzEotA10NAwRAj5YD4rKh+00MV8xR34ptnaMLQ==","signatures":[{"sig":"MEQCIBsJO5Y2gAl4yF+4zIuO37C3iOOOjKaK6UWz8U9rQmJBAiALrYFnEz1H6uKVKxtsGN831yIc2pMPv+0OPBgoqvQLuw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113051,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZHPwCRA9TVsSAnZWagAABB8P/1w8tl/5Gs2i/ull28L9\nCNjBSRjPB7jzGF6JMA/+racjYt0vfxzBTms+vHrd1JNjiRoyAHXAcy1/9OiX\ndHEPD9nextzbrlRp3k7Kp1V4zMvbHEFyhygf+PxHWJuOcAf10wCptdV9kLcl\n+JxdhgBXKs5H7EFj9HoUB1FXSxXWU6YIcIkTE5wwxLkziNcdFk9lU9NEbuYP\nClm2Uq0KEjiGWOOsI/p6m8hnjLDJ6dQRroxXrvtf5nC6E2w2FF/JRR3Z5rjx\nOucHqP/nATPXz5JAQScYKM683xDRm6t8PnOxKW885lLq9ibxtU9r65GcCRw7\n8tmskg2OEkwJTyZeVctWU6DNqapHwklarA/fflrr+gBGfzT82uo+7sS4Cmdw\nycD4wB4vfQiEYbAD65MjxgCTvWWKMunyARhwAH3kjjSKvAf+FoeDDzJUZ4NG\nMoegYYvMBSiQBQKEVMuaiVmkt5JDpu49xfXkGy/4Sud1uI4WCNpBxVQLfl5k\nZwe74gyIIDFU9yWVoMDRSscniONpBDTBqQLyE/96549p1nlVdQV14mEa6rXS\n5qhBCEhhesCrcylsHA/2CZomvNHNj95tjycSuooriIvDrQjxUrUthH0Tb90A\nxJjZZq8rcbVuCaII8uKnq1JxWew5eFk/NpDYlaad+LO6FHQzaH051lZbgCYc\niyYr\r\n=HoU9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"ec49ae682bd0e9154db1d747b9ef7af978e85b23","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.1.0","@humany/widget-data":"^1.0.18","@humany/widget-forms":"^1.1.0","@humany/widget-adapters":"^1.2.0","@webprovisions/platform":"^1.0.4"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.26_1600418799879_0.5392519036348651","host":"s3://npm-registry-packages"}},"1.0.0-beta.27":{"name":"@humany/widget-conversation","version":"1.0.0-beta.27","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.27","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"5bfcbd3f332ec138864365c9cc10ea51e2a059a7","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.27.tgz","fileCount":69,"integrity":"sha512-XJ37+4QJlLP+MS3nBGWNfukGKpvoZd2wyWb32d/97KpHzx4v7pa43OV95qghikTk3kG+j2GhayetFyhtaiI8Hg==","signatures":[{"sig":"MEYCIQCsFX+30CeVYNszurrx1R05Dq46avGIkNqP+0HruXpxtQIhAM5zsvR9WLZhVgQ2v4wcW+tE9qZinasGcZV1/Lnr9Smj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffvnzCRA9TVsSAnZWagAAVJcP/1ZSc+YbZFpb6QiB06Tn\noqkDBPQqm0huQ319VEh9zCK9OModCuPwHhzciFsVUQ9mwkt9g1CO/zIp7CtH\nBlLbZP7MmZFO2Myq+pkZaZBlFrnZoAE0sY33/TMDLsO3l/n3FO0ByUI/tJqP\nSpV4MogtAvr9INNqddgbMb3Rv+T2x6JHFHbPUiWem5legaOnjZ7MKoiJtvWV\nHinEQje6AWbO+9miM0vucnefBYHqFbtXUh6KkGfpEEB1KGv54SlnuruH2dEB\ngxvYXrOi4GKRSv6JrVRf8UWoMSzis98xe5ZHIxrW8MecbG9sjLjELurZ5Nif\npef9lcQJaYjevfchBI3kgZVmf26qpLTwD+RJSJvFg1XBuytwOMMQFj2+g7B3\nBBh3afVY9ktNh3cBir+hWOTG1brWXA5zEcJR6ZOzz+TWWK9uB1Mwd/59+DwH\nDruNC/ZjuNSTR4BvCl9Q8upa4agCzJ9PnoJqVhnDnYH2qYx6oUQXLU2zmsb8\nchX8n89vmC8icHCSn+L425c1lYHnBn97SCgSWJ4tbrXTf3ttLekf0Sc6mqc8\n/PifXgqSGoEUm/4JqRT0RFTEwXGST4fhwvy+b7aAcSkIAbO4utmOhTyCi9Y5\nYw2r5FBsrHZE0mtY0zyRNwTAplCucbFLwBk6qaumTmXz2+QEYZVjJw32cSaI\n/kvz\r\n=Rta+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"e9f4aea5b214538789e428d859d2a0a4906f2374","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.1.1-beta.0","@humany/widget-data":"^1.0.19-beta.0","@humany/widget-forms":"^1.1.1-beta.0","@humany/widget-adapters":"^1.2.1-beta.0","@webprovisions/platform":"^1.0.4"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.27_1602157042602_0.3050924041408103","host":"s3://npm-registry-packages"}},"2.0.2-alpha.0":{"name":"@humany/widget-conversation","version":"2.0.2-alpha.0","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.2-alpha.0","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"60592afdab7fac602047b44dd5743ed76cef0f45","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.2-alpha.0.tgz","fileCount":159,"integrity":"sha512-IbwMIiP73CeKqQx4UQ51149GilvvpKKz54tiGAYqe1MLzqhdH+1jf4lqlrBc7XLAfBwS2m6K+c8rvSKfJI6wtQ==","signatures":[{"sig":"MEYCIQDll2g3U1eOOjcYFSOzDbdguCBfxYjHHwM8S2zSAqo8+gIhAPmGEIqqKO2ReiasCs44ssMCpyEYpco57h1Wz6Jl8Cle","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":271002,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffvx0CRA9TVsSAnZWagAAKg4P/1kIjUjqh7zyBgtivC2c\n0u+tabRVOPOt6qUhNshuqGUkb63q0IbFDzT6bdBQ9cwgviPbR2l3D/8wqUFI\niOH275rmiwvJMtfUc/9qvuxCbGHujtEqghzDzomXDyr+qw76PrVn5qoZKTd6\nqeRGokrqBTG9b4TwK3pwxoeG4+3dMiPJdqMEBLn74JRc0Uz9ytC97l2QYTbx\nwSV8is4V4ZtUcHWRGM352fBJx74gygfPjNncrc0yyilY1k/eOXWk8Fo8/2QC\n021x49FdjMc0qQxi71oif7k11BPSxWvwanJYPR8vQ/rOXsfrL6WFad+3qhZ+\nFksmvl773OIKnO9OlF1bMWnIuThU82iYCpZ3cfcOn9GbN0Tw+vA0zSXmDsLe\npndzOnMu4TILwn7Sn9WN9XW0C/2g5n4RpHolHKrQxwdY7g7QS9isllLoj7mW\nJnBHJORoesdWGCTzdD3YAxbYDFhmCmt6/82sB1+n2ZAMpl5U306YNADJKjhY\n6NxiLbSKGc4xM0MejIWrtshva3f4BK6TlSOuZYvgH7DnV5kKtNOjdVTRQ1M8\n8qrUS+FY63SJSTcm0W8eU364kgMnYANSfhiQQ4IVgsmn4jidZroHBqYtJI6H\nSeCLoxKSd4CfnEDHgWmsTW6FnbdBR9Tl/FhVhYvWa5Tx5KYnr289NZ18a8in\nhCjE\r\n=swtg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\nConversation platform with API for reading and writing to a conversational component in Humany widgets.","gitHead":"82e70662dd9b8019ed7f8f2d7abe4005921bb278","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.2-alpha.0","styled-components":"^4.3.2","@humany/widget-core":"^2.0.2-alpha.0","@humany/widget-forms":"^2.0.2-alpha.0","@humany/widget-routing":"^2.0.2-alpha.0","@humany/widget-adapters":"^2.0.2-alpha.0","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.2-alpha.0_1602157683523_0.6131562295542623","host":"s3://npm-registry-packages"}},"2.0.2-alpha.1":{"name":"@humany/widget-conversation","version":"2.0.2-alpha.1","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.2-alpha.1","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"655b1868e7603753861f0b4f4a4e318c11f8b7e1","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.2-alpha.1.tgz","fileCount":159,"integrity":"sha512-Y8fUR258MLSG1HuRJ6yHV7rVSx4C4Gc6QhFcZJLwH52TCMfs/o8q/9+dGuQossloy1tRFsgO/swJXFQQgKo0GA==","signatures":[{"sig":"MEUCIAuSHfx0K9MUmEj3OODlFRoRyu+GPJuzsJrWRDjVh1oxAiEAqCxQoFkfIL5BkKO9FLKxM8DJS+mK3k7W34M5zgrX8fY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":271196,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffxeOCRA9TVsSAnZWagAAZOsP/1RvUADTn/HEctF6p0+C\nbv006hyCvEzlIXhCT71PwPZrt+Qzubw9FMbAaSp1bpABjSo5RLTPAvtVu+1G\ne6v0zcW/7m+K0im1BAgbB7DB7Jmb2JQt2VNTLD18qj4M6wEtjQ08YccFFH2s\nRuV7TsFj7qQA5JLhigB3PwkivKNIt7nVgPv/rTkkTGVyT7foEsFqctdokBtc\nUDqTimskmnwb+IMvpkCUxqv72aR5zL2SDEi2yiSUmbVtJQJBAanAw07S1Pmq\nj8k5nfYjBU6dz0ESjvEQfaJGaNDMg6ia0CVZZPOLZbColVdtxnn4uKbkHHAC\nHDkHmxZKkJI4JQUw6np/Cfb98mLqzZO7a10aYnat4pwD4hv7+p1nALRCaVr3\nxoTnvC2TY9y6vAqP1jY5mW8raHkv6HtvmHHazzlvgnbUR0o4FfMhx7ojVigr\nc2Vz2WxxmYZ+KiqUbrn9Aequw1AwEOC3tbn6UYSYmOzdlSRUA4BncFyEvXJn\nZUUEMG3gafc3xSp0K6NgN021RGSJNFyHagXBUNs1tNT4XbIxjiMOXN1I9+vr\nqs1H5RirbI6MHv6GHNn/PQdQrGTPWky/QkPPR9XeonyDMs78aN7r9uOLUO1i\n1h94SgVwyQFgXRS2tEt4UK9tv7g8B62G8d9whlGPOPRoLz/VJCxoubojmYTt\nbI+M\r\n=mi1k\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\nConversation platform with API for reading and writing to a conversational component in Humany widgets.","gitHead":"b490a1a039ffdce9a19bb51a5b2005d2715ecf9f","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.2-alpha.1","styled-components":"^4.3.2","@humany/widget-core":"^2.0.2-alpha.0","@humany/widget-forms":"^2.0.2-alpha.1","@humany/widget-routing":"^2.0.2-alpha.0","@humany/widget-adapters":"^2.0.2-alpha.1","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.2-alpha.1_1602164621893_0.3565701872083553","host":"s3://npm-registry-packages"}},"1.0.0-beta.28":{"name":"@humany/widget-conversation","version":"1.0.0-beta.28","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.28","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"249687a3106a78676d6f032684ed32604d98436b","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.28.tgz","fileCount":75,"integrity":"sha512-tbwSeo4wosZXXkTNf+K0nj9c/Pb79WYWcNkf/2LRnESRfDIRPy2v2bORDHC5BKytIap94jo4l7LI/DtxVUAysw==","signatures":[{"sig":"MEQCIC6iNHKRW0Tb9HWP+kVKMbUnzpPr7YUiZKTU2AYph8SFAiAXH74fEHWYXBWdKiivyxi+M61pdtGbmvHAKO0uqhDhxQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":134580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffxkACRA9TVsSAnZWagAAyhoP/R/XILXtouPGPlzL1s6/\nStl4hieT2WhNaWYm0vQCpf16JYnrZrewHN/IK06p+dvruhwQ/bp+a/nHAuv3\nJj+Mv47UR5R+qBLvtr9ejUwZbVLVE3m3v+5ci8YWiZiQcqPbXao/egoAdlVp\nrUXKEfgr1QM0o4xzAIyV0CIarp+O8dYZU8lm4XbbEIkudQSN6/9WUfHXwCGY\nHfLlJ8rEcOggElo54XFWMNdAzWHa9Gf2/pmqhs9AajMiEzPVgebXjA1+EAUR\nrN5uHUBbS1Y/5u+zOKD35+KDqJevIKfp6I8sXpKohiyG0rma53V9hyaVmhWC\n8z6OGrVTqZdIxslme9b8/vCJShp6c42ly3ZVXuGCmX7QqywCa1Lpschh6XqT\nge8DvhMi2oQUgmHr9c1NT0/Zh38sXgly051DVDXZiZWyGn69BdsbsCJ5Olm0\n8nTHtOeqJI3+vRt6p6ZOwepsgf5pGTs/35Fpfn6PCADOerWPyKqPZVVfGKuw\nzkj15vUT+DGCQzhONZOCJNCaDK7hNvJ7HvKht5ODPbiFfW9ytdKYmWCfArP2\nxxPA7YQl9se+FSd+IqSUlZizMQkzWQJCxRxwuCQ9YNK5hkFJhOZu2IT28ntl\nOWX4YYA3CWdKoEIrWOTMmhH8T3iBKwcNPgKt/Co21ljn7dMPkCaDlbO1AcEW\nvSX8\r\n=rrY1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"07fe3f65fab99da0ae6d722b457ab47369951293","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.1.1-beta.0","@humany/widget-data":"^1.0.19-beta.0","@humany/widget-forms":"^1.1.1-beta.0","@humany/widget-adapters":"^1.2.1-beta.0","@webprovisions/platform":"^1.0.4"},"publishConfig":{"tag":"next"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.28_1602164991578_0.6505954904857647","host":"s3://npm-registry-packages"}},"2.0.2-alpha.2":{"name":"@humany/widget-conversation","version":"2.0.2-alpha.2","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.2-alpha.2","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"4af38b6d93f52f588542cee1710e70e6ade9033a","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.2-alpha.2.tgz","fileCount":165,"integrity":"sha512-hmX25TFIpUvLbPf+RY2mTHe/Hlq7ZkG2vgk/+rm5WDAvPBaBa0q/2kBwFNk2OH6OldXRos2XF8w2DLo+3xOg3g==","signatures":[{"sig":"MEQCIGbi0lm+FxZuhPFXku8UhSqvPCx8sz93v9mE6JVXHZIWAiBuhbN0TZ59eCWSd7/r3V5HmXN2y9QIgXcYsDfa1zKGKA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":273935,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgEk9CRA9TVsSAnZWagAAlSMQAJqOP6tbFBQQ4CQrVnES\nRnkvVp2jDsXxLhT3hL/B+FFdSg4RMwl6GEW61KReZ35ioTraSNQK5MgIS2yR\nXn18RZnzJWOYoIeL3C83P98ef+iEX31PMfsr4wmg5ZhuCE6N+0D5420Kgbf1\nw2LPAvE5Ku4pgN+nyZNN1kWrOZLs8IrgukzJ8p97RwdJHLhaYQSJAY1IEK4I\n0al3EekDeYWU/ilZkt/ECin5JUe1c+1HDhgf2zHha2BrwRafBXHYMrL5rZjl\n5HP0ekWUgOtw69QEEZjpwBhBsQUglm3QPQACB9Onam/SYpQZ6C198SH3oAOI\n8GCMX9GvIaUPo6Lh4ibx9lD0Fy9nBUtwRq9s1WMTfJ8Knmu9UGTYLqixIp+h\ngaZfMu1SgR7DjLuOjrq54yV0O3zh/EeW8hsUJ+i7iowAcVcOjWshZrpHiC5R\nOdx03MAiL7cYktvW3zbx2vff54o4v+igNLqLuwSvM9/Uym8c3KJJGnkHOBUP\nYh0UR9T8dArGn74oiY4PvQuJm/+wM8dDb4qoYb3180y2lqEMJWJHtkgxeOCw\njnAPmR/DtWwDs8BkZPh3TlmllkTCmmtm0U2fYrjJw+HiQ3ZnhKw4IfhX03Pz\nMX1qyQBckZvnNK+JRUsfj2r5bKQCCLeKFCMXyX3EYmgm+8d7ScizsZuQN791\nhyzp\r\n=kAFV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\nConversation platform with API for reading and writing to a conversational component in Humany widgets.","gitHead":"24e040be4e0c81dc1aa0b61e6b4172c8f30f3559","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.2-alpha.1","styled-components":"^4.3.2","@humany/widget-core":"^2.0.2-alpha.0","@humany/widget-forms":"^2.0.2-alpha.1","@humany/widget-routing":"^2.0.2-alpha.0","@humany/widget-adapters":"^2.0.2-alpha.2","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.2-alpha.2_1602242877342_0.16335338244975062","host":"s3://npm-registry-packages"}},"2.0.2-alpha.3":{"name":"@humany/widget-conversation","version":"2.0.2-alpha.3","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.2-alpha.3","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"69671a3d45c084de0ff111bc721bb036e191659c","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.2-alpha.3.tgz","fileCount":165,"integrity":"sha512-OW+11bQLnqc6GNKOmwtzLk5HjpiqquIJRK8lfaKrU5Vn9hGeCA4MZj2TmncVFCnlCLaYKKLmaqk2iVwAzROfVg==","signatures":[{"sig":"MEUCIFI29q0m6J0W66VMqZPHRJDZeoctgLFZbFoJBAmGI8cUAiEAxiZYr2vJVg5X9kCsjCTUv4+FAENAmNwKdfq41Dt5dK8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":274517,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhEkTCRA9TVsSAnZWagAAkIEP/3nGkT+9UtojP2o9wynV\ntdqrfw4U3pxNakPdFWb8eLAy4YAG87lQO91FqtzCMMM4oymsn9o7zjJgRQjU\n7bVgDKok4dowdl69SKagjgvLbqnslzmCTmr+8gNc0kTJNrP5oi9bpOE5oVW5\nSgsXHxpuPrGcLPULAOEKXFyfbibeQV8LlL7BaawyObbfAW4EZSpJ3DsM50In\n1Ydc/sXNuoCB1D9udQAhFtwBKQPfGvEPqF5Y3xCnLXxe75ysnfuBoJo2bTfo\nP+OIRJvZCZovnVt3FKkJg1RtsOpIvsjZaGxqSBNHwpmYBwGb0NqiHhEZEUP2\ntLc+0pdDiMTppr88/FlbC0hUoDZZr9fWVn5wYHxkbVHSdh2bYEEEq3A2h8uO\nwd7JfN1Jwt8NeaivhvhIsEo4lRAOypujne4xThbY4c7fxLfD5NBSaZAXFppl\nOgMMmSkG4q5BN3HcKN4Haz3VGwTVmk9lzff1bgjswsw0c5pAOjhFWl+iNmbg\nnv40Q5HoeCoh1/sODjoX8gdxS0af3eA6PP/aH4fd+GFnY+ycEU9OsA2ANyIW\n9RcCpT05OEi5jgnIm3NiAdETCW2MoW9od+kLrDQN4M9mcyScZqpJiDP4UdNi\nCJ5gfF47DixMgTSuLUp/j/nTu6+By50xXbJa8IwJXNiM5uWQ7ausZ/X2EMgz\nDqSj\r\n=2FeI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\nConversation platform with API for reading and writing to a conversational component in Humany widgets.","gitHead":"0e538ab3510024d6cf8c3ce6bfa71cda9df94375","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.2-alpha.2","styled-components":"^4.3.2","@humany/widget-core":"^2.0.2-alpha.1","@humany/widget-forms":"^2.0.2-alpha.2","@humany/widget-routing":"^2.0.2-alpha.1","@humany/widget-adapters":"^2.0.2-alpha.3","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.2-alpha.3_1602504979525_0.08012716114307739","host":"s3://npm-registry-packages"}},"2.0.2-alpha.4":{"name":"@humany/widget-conversation","version":"2.0.2-alpha.4","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.2-alpha.4","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"d773153ed0ff5282e88c67120846c68497839b14","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.2-alpha.4.tgz","fileCount":165,"integrity":"sha512-kwnI61x/sigHeXABo3BklQqj2FA2km5XMbQv1IkNbfwy9ojUx/J5tR5bGUZSarVAsB+Td2hSNpBo0myLZxjEYw==","signatures":[{"sig":"MEUCIHpuu7yVpOdSvmzGPhU9PqG45/7MQHQYu8CEfrnuK4QrAiEAv/DHaGn129L4V4m7O5g6ucgukbrObpBjkkYBKeot4hI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":275218,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhW3XCRA9TVsSAnZWagAAGBwP/iCt5zp5MLN5dY16DPwX\nRSo13siI7/EpyFht2I3NZKyO6GsKn8rLp8iZDZBJvC+J/1AEQDDeBzEZsmoN\n40Y0cMn3z39XNM0h7GzBekMcaEp7N4BSrfHLrHzuxvEisUhctMtYcy/ui5T7\n0NErMu3JtyYoGY1kJVG51m/B+j/pFHLuIdAaXp6D6Yh+yqzjLfNyEXUMig07\ng2xC/KAYLt2lWcKAkKChJzA18AluNyMNi5eXJ7/elw2IVOMsRZSga9NcgjtK\nb391ZiGdk0OWX2ulIdr7ZDGJpalZWZU9CSlMxcobAD+ZXJPVn/P8KVb58lgK\nLMZfAzh/QJSh1JnI77qI0YjnK7ouib0a6BxXgGjj4lu88bmbTe/Mo1tPMtGS\n7mYw9hXMLDHQy0VRkmzbrJiesr7Jm2dlS1WFFkhGE+EaOF1Xj+WGDlTrhJ4i\nADzFzyBQFeAuDoppK1uKDb4oFT0pXP0qg2+YG1UFbwgIZh5gV6GcyohvuoFr\nIi2Q36J/CCMxYDVWO0KWQWMZdKG7oX7fuU7fZDCRCalzZInNRxuDN+gQlGde\nZVTDDj1aUBB8DQO6dEiSk52X0zgEaESDtUl1Mre5yDsmn9FABkZJHUB+HeEs\n3RArvHYv8fs8ZvjiuYs0x8Rtui5FOzClQVE28yQFSXMVAM8owMj8JTq/44m/\nQe36\r\n=gbuK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"1b627eab727c5ad62e87487cdeb00072e8f3c8f5","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.2-alpha.2","styled-components":"^4.3.2","@humany/widget-core":"^2.0.2-alpha.1","@humany/widget-forms":"^2.0.2-alpha.2","@humany/widget-plugins":"^2.0.2-alpha.4","@humany/widget-routing":"^2.0.2-alpha.1","@humany/widget-adapters":"^2.0.2-alpha.3","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.2-alpha.4_1602579927290_0.5637541644309318","host":"s3://npm-registry-packages"}},"2.0.2-alpha.5":{"name":"@humany/widget-conversation","version":"2.0.2-alpha.5","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.2-alpha.5","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"365b9fe595b4d4738c3148935706b1a394e1d3c8","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.2-alpha.5.tgz","fileCount":165,"integrity":"sha512-fcv7WKQ7+mW8gcGcwKfAyFeBEtAGdyQsza0PaxQaUTHuV4DHPB10oaZsF6Dzm2O8tgZd7wEWdgvTfGGvkBPdxQ==","signatures":[{"sig":"MEUCIQCzmNnha48tBqfKOFWUlVPV8nl0tqkt5/hl7dDl6cwK6gIgbRcdbS5pMQv7gq7teYlYkFl4nlJbMKKBaWfpkAIXihc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":275138,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhu61CRA9TVsSAnZWagAAbIUP/2wHXyXmrXSqxbMSeW+p\nrcngSUy06O3zNmFZvYN7pTRnC6Jp4swaRFd4grvKURZ/8N8RSPFuPgZUpoYb\n0NIkqqy8lY5xg4kZvtZOZpJ25b3XKrGt+3ymBVU6tNQzkz+9dUgUPy0DEThf\nLbylEuQA/Sq/MxTlJcSUZf6kJHvKJ5wf1OoDH/yHGBYut3+HRTfiPWrKTgxW\nlgjC32hrOONiZPZDQcs+Zr3QPRYsM25fXFAYAC8JUkfP/WZHcSEku3CRJ1mY\n93HjKHKRNp+nt1QN27mVKpV9GImBggIFuC7QI3g51quRACkbCj4GV0tBAOLw\nGFbukFs0UfXC4deVHpmVlTZP7R/aCn/Nz2ihcr/qLmnKZ0id9R0/cfxpaRfE\njnNboul5LKshwrTWyi6BlpJ9V8qwAhdZjZeQAoLFB3emORv9MeV6BivEyxcS\nXHrxCPnS1WAtwmxzqDGDAnx/JJXANNYjbCMShinj4GnH+5v1NCdyydkgtPHF\nLOt0SBI62sQ0AQWIwAG0OOjhYOePYZ9xQDozKhbGrucY+pBmTLoPa0EPGvq5\nUIAkqNfNcwfpM5ikA2ZaycOptHERvFvLNYmJjfrhdaGMd8oCWSEmdAKMYI55\niaEiiOT8hsxW5Ux90r6Crfqzi/hzuz6zlRLGycLORiTMygJdmxbUdWSGecuc\nd4qz\r\n=E79x\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\nConversation platform with API for reading and writing to a conversational component in Humany widgets.","gitHead":"afed202a7317205613df3d280322604f39c07ace","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.2-alpha.2","styled-components":"^4.3.2","@humany/widget-core":"^2.0.2-alpha.1","@humany/widget-forms":"^2.0.2-alpha.2","@humany/widget-plugins":"^2.0.2-alpha.5","@humany/widget-routing":"^2.0.2-alpha.1","@humany/widget-adapters":"^2.0.2-alpha.3","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.2-alpha.5_1602678453051_0.43699331439186584","host":"s3://npm-registry-packages"}},"2.0.2-alpha.6":{"name":"@humany/widget-conversation","version":"2.0.2-alpha.6","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.2-alpha.6","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"2fb9fc57a966106a998ba0fcddcb9b550232a032","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.2-alpha.6.tgz","fileCount":165,"integrity":"sha512-3/iXDrv3b+txCMQWyP47cCIAeERTTftHS/n8svoztTz5h5YuXvZGRDPTAsdCs4NJGVoR5Gnx5TWzmOGpbeoP/w==","signatures":[{"sig":"MEQCIDcQlUDBRA0AeuAo5Zu8+HSGFrvcbdLh9HkhdS74wCe+AiAc5tI3DxKvvexNYCwl0S6G5/h5ubvQnKh7hkRBnA0O6A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":275138,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiEAWCRA9TVsSAnZWagAAUsQP/0EHDn+066eSo57AvyyB\nWWBmQsZFZNnHiVaUqg+oPQHq2QHmefuGwvDWijdvv/Do49jq9go57T9PqTdL\nP+xKoaMvnYo5sgqrh/aGNkrM0POA2OMLVA8UFSs7Hh7O1nXyNSz8YAl9eSZj\nLIiMPuSQOtrTR/7FIrmOOLBZez6k7w/b/JUN/+HsuzbtieqsdXUmmWs/fCOp\nOhBnt7WG7afCKfEg2stSamlUrQJlruxhaQRco6LxsVHiEK/2SALIdhlTEB95\nqBDVHiPNVhl6CV9ulrL9dQHRKm9FxB7q0ipNl5MWCdrSLHD74/gN/mltGhJC\nbXhFuJj+fnMv8c5Q9xImapCb2uZcBhMQ6+dUnxHAizDDV3ug+rJ4VcVa4U6e\nyZUY4JmAors3Jy8NNwbzVXdmriINGM21VWxdPHiH1xrJZ5AP6jPuzrvzjCME\nHU3ObgtuzgugVdZQ8wmiz5m4hZhGy/xpJBbMe2nrXY4njeSEXY2YnT3mqvVi\nFxZqKVPR+Bq0rxwl1ZfGuDVHs8jZ1su9yonQ8SrZDqvACl0sqatvQWVmWu+/\nJ6Xc/pzOxd6QnQ4EeVra3G4DnSe+viH6leXsHZfd76nW4qgwS/zv8PaMP3Tb\nnj5J4mkKEPzHULbdwkVOHnbHUbqV+DmtShXvJFDsaFy37mp/IWVbMGla7BdH\njNld\r\n=ui4i\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\nConversation platform with API for reading and writing to a conversational component in Humany widgets.","gitHead":"f579de26e931646af06268155e0f843d28b7944f","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.2-alpha.3","styled-components":"^4.3.2","@humany/widget-core":"^2.0.2-alpha.2","@humany/widget-forms":"^2.0.2-alpha.3","@humany/widget-plugins":"^2.0.2-alpha.6","@humany/widget-routing":"^2.0.2-alpha.2","@humany/widget-adapters":"^2.0.2-alpha.4","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.2-alpha.6_1602764821786_0.9960342969616836","host":"s3://npm-registry-packages"}},"2.0.2-alpha.7":{"name":"@humany/widget-conversation","version":"2.0.2-alpha.7","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.2-alpha.7","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"2f38415e55a1f74c052e247d3c192e587e89df5c","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.2-alpha.7.tgz","fileCount":165,"integrity":"sha512-YZ4UDS8cIw///ozihO6SqylfJ1KmQ7JqyxT/Kxoci/UsqLz6rDFRs32OIN4TadlCZOW2CJGTej4Vr6JGcAYpFQ==","signatures":[{"sig":"MEYCIQDOB809x7KHt5s/mUAkRCN+VOj2JzhhKz568JtQDzuAfQIhALY+EIwDJ7nQkDjbrGrl64sVOLX2Qi310vsFFo6x3+i7","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":275794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiYDECRA9TVsSAnZWagAAMaQP/2AseYk5ELA9l2G3G4iS\nacmuhlSjTUAA+Fw7yAZpcJTElHlmg57BfoBvMvypeaJ96o0C7dwrGRSioRZe\n26mx8S9mBdlohkgUvLdUR/KpU2T/+tfoWmiigGXJ+8m8lWbk2nPEZcVp+cVJ\nYQbYFFEhwJbh0uilJ2HgDGdxiGwzu600B1RNp7aB/E9XiyeFsUQGVjzfneBo\nDVKmNJeez6FjArhr++AD0q715ugs/5jE8/L7JSHMqLigufftAQ8bwkF6U2gv\ndo+NBPZO0PWIUjM9GCgCL57osqruPJlb14WqT9AUhZCG2yx3nq4WhSZyw2gf\nJMDsDiGV+21wYyDfyFw9psX46zJJtZ4uNO9fh2fBqW9owdQuGAdUB09phuTH\nb1F6Q/RZaEbXuokPuWH6N26bF5EPHxTydyFs7MKXLlo6nPSyqE6LUqYA9NXm\n81gPcSAcvd4DZqlZ6RqRkaeaOBb7+3i+HPUXVzDBHVQXnEl4PvSijj85/izn\n6ns4QzIXfjv57ngrOEtLA9bUNcdOeXHKK18acn3srY4g6ejAu8iwUml6UoMo\nM30PDu3QLRnkQGHpCqtdHjpjHkaOfwRH3dbRytgwJivEDB0EedCS2yXQ9JfJ\nRk3a0SJwAJZ14mfBZCYfy5qseV37vdbMWVfpjqFne9E+89b1lF1oshdA5Fwa\n3TSc\r\n=3HCa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\nConversation platform with API for reading and writing to a conversational component in Humany widgets.","gitHead":"0f266512146226e3bffaba28a73f1657828c9b68","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.2-alpha.4","styled-components":"^4.3.2","@humany/widget-core":"^2.0.2-alpha.3","@humany/widget-forms":"^2.0.2-alpha.4","@humany/widget-plugins":"^2.0.2-alpha.7","@humany/widget-routing":"^2.0.2-alpha.3","@humany/widget-adapters":"^2.0.2-alpha.5","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.2-alpha.7_1602846916098_0.3521347390359413","host":"s3://npm-registry-packages"}},"2.0.2-alpha.8":{"name":"@humany/widget-conversation","version":"2.0.2-alpha.8","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.2-alpha.8","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"ced09db39d2ff20d1e453458025eb2d5a627533d","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.2-alpha.8.tgz","fileCount":165,"integrity":"sha512-PS9vZi4k2ML3S7WDGDrs2EX8nZCkQRFrIsBR3QUtBCl0Aa6v26LbbmAHvDFfo+ZMfRRf9NgoKsmQb43YDy722g==","signatures":[{"sig":"MEUCIQC/D18SSWrhKIthGPpugdbkwj3sfoimCwqXPqyRr3mK1wIgTaP6cyINLNaCC+SFYd8kWS1rmp0zyo9rOvmfZfCILcc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":275737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjVj5CRA9TVsSAnZWagAAhKMQAIHDEwkjUNRtyp8DYvyh\nNueK5jkGeJ1gdeYIbRSXMuOHmKPb0L/E2fsBrTMhZMNfGR2k7Qu1B0aM4xVN\nODCmKhSEJq1cbNba0tLAV8Qq0AoPSMdLoBZaGZj/BKRqg0CQB5u3a2UVDnES\nKX0GLYdI1xqNT12iqPRpGNTnBJno772EuxZDhIQpgnpb9WUphy2lMZRqCB58\nRdKzG6LgNk6SnuvijOxZAUHhELf+pGHIuKVjj3QQ4E4YtMqzG3hhWSTsJHCM\nxYPbd3r7XyKWqP63xlPocUzfiTHI0sFGQNDtN0PV9vjFP7D3ZMb3ZTMXFpf6\nS0D1/LfLSKfpD1tdHWc5LIHEwe5Z7f5NashIjN2BXH6jCM4Pk8dCi2pCCMFT\n3VsiOzi/6Z90FGfXqCD41MUKViaxU2KPgRMF+8CROXQSskIPfSEcW1NnXJEV\n9ki1MGhvRKyKJAa1wY+0GBFW4LABsxs5mlBT+4+GLegYN18ryKK9gT2Z64hV\nqXnfWX5AhjXtqZi3XCMrvqeNCvbnaIOH3mzISCmr0MO3O7m46Vw9jgPcUMBq\n2u3f8Yg5/uzTSwbYU0solTmXIP1S418HsZ1gIxwkrWKew5nfxpLDxjUC7/4S\nmYaYxkdln/3CIaECJjXbXp6B7jpcEMQqY/Dvc8ipndqZXxgZkztHEuV9cTZR\nSo/S\r\n=0kw2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\nConversation platform with API for reading and writing to a conversational component in Humany widgets.","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@humany.com"},"_npmVersion":"6.14.6","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.18.3","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.2-alpha.5","styled-components":"^4.3.2","@humany/widget-core":"^2.0.2-alpha.3","@humany/widget-forms":"^2.0.2-alpha.5","@humany/widget-plugins":"^2.0.2-alpha.8","@humany/widget-routing":"^2.0.2-alpha.4","@humany/widget-adapters":"^2.0.2-alpha.6","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.2-alpha.8_1603098873164_0.5242290927391671","host":"s3://npm-registry-packages"}},"2.0.2-alpha.9":{"name":"@humany/widget-conversation","version":"2.0.2-alpha.9","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.2-alpha.9","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"37fe44bd9f5e0cd5d4aeab528e9ec7ae4db61830","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.2-alpha.9.tgz","fileCount":165,"integrity":"sha512-bvqnTdMCehQXDpNsfUU2CXKRmtUHQni3gH5LjqubzP+vVLEKcrhaMysipUDXPrIYnpjuI4pdLDE9OKEk2f7DIA==","signatures":[{"sig":"MEUCIQCAH9mJWuK05DpHTscfnAxa8YYosLLEdRV7mdrnObCZLAIgDc4lp/r3GB+vvrS53ZGln1x22KASlQgez8Wl088rWSc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":275794,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjrLmCRA9TVsSAnZWagAA0TAP/R3Eb4HZSUoJ+JymK0os\nUlnh7Z0NpIq3EI0vG6o9t3wYgxNSPdpZ1/A5QGYcfVKHDVTtT0nma5yUkYou\nzW6qv2XNTXFwiQOHtLRqLa6RkL7YxRE8zj7s4vgIe4OcY86I3xFieIjyAR60\n26WBPz8VpN+vpbutU0UQOXYslG6J5aUlQRBrE3308xIJzBYXPt14q6NHMYpS\nFP0tDxW224UfpTiVZNIhjGWfrKHmKdkEfKyi0kGuB+S1hhkOU31Yo5dNfSGf\n+oU0VZIEtI9WPze7IoWWC41rIKuXhh1OHcG4jdtytcP3iNKcZ7ot24IC0q+e\nJ5WlFDXMk3ff4KfZiVLwxxCM3zalBY9tMTBGpA6s9VbPDa34HPNWxnhl1b3m\npNNjD8NaorjC2fBS5fEM20Dl5zmjRxflTaactUjYyueHsSOfrqEMtxCuCyOE\nYjJbJ2X0ohkztOc9YUtDxjf1VvxMxwwV/4bY2t0BrQmSqyMkY/oQrI/z3zwx\nvpEZZrkJwaSKE4VTCbpWfwCp2l7AcquqJkZfT/h84kRN7Bvqg+HIjJaz+NoI\nHf+Tv5R/RIjmPq2XVl7p2wq9dQBLrM8tudOGyDGn1WcreMWkAIcruVruJ+2i\nPIZJllj4URz0z8JtWXb1663CUlRqa4UOuFW5v7VgEOZgUehVkGiribjreVPz\nPVs1\r\n=m4wp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\nConversation platform with API for reading and writing to a conversational component in Humany widgets.","gitHead":"86709bdb78a8e5d46275a468374b15fa26cfb2f2","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.2-alpha.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.2-alpha.3","@humany/widget-forms":"^2.0.2-alpha.6","@humany/widget-plugins":"^2.0.2-alpha.9","@humany/widget-routing":"^2.0.2-alpha.5","@humany/widget-adapters":"^2.0.2-alpha.7","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.2-alpha.9_1603187429722_0.7060379254271096","host":"s3://npm-registry-packages"}},"2.0.2-alpha.10":{"name":"@humany/widget-conversation","version":"2.0.2-alpha.10","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.0.2-alpha.10","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"96a22958df11dd8e7a705c311c9ed23be16284cc","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.0.2-alpha.10.tgz","fileCount":165,"integrity":"sha512-nh/eDYmvjujuvXatRaIgQhayxZDAPUuoW3t1Ztc9Cxn4jIn+bjBkwvVX37wWceyMt+oaUgXdAqgjnPx0D1KNTA==","signatures":[{"sig":"MEUCICaaEzJozq0DdEahoy0b3yd41tqLK7nNJwXg6pDfklV7AiEAkdNSLijaw+Xfpzjyo6kKhwWUEvbqQ2r+5tjNTeRzjX8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":275796,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfju2wCRA9TVsSAnZWagAAzg8P/Asw5qmSpxgD8jF2UPYb\nU1jiYaCg8ZEgbsF3LOqcuAYQQLh0BseKFW267UWmU4L4cEc3F4dmJyy82zlz\nHuYjcsR1px3zT/WWQjiEHK2ruGqIlVE+tdaSr/A+n8xDW9uH96Kjo76yU4sO\nVObsxLt3vPMAtpXemdi/2TmPRmkrng2m8LFZYUEMDaRb0/oxvtFVcgXQThp/\no+brXynrXFNaHJIOf5XMouKiBwnlLLBNPQd6Wn5Y57mVCnrhRtWXJgGcgjEk\n7coD3fKlRy4IFITlJNB3ili3AHesG/2IVxQna3Bu/g4qtRX807sBon8oOCvv\nSaXiIlTBqysNocpLwNpLI37p4NpqUlaJPszRWzzXwG2WuH0lBJNUVxvJ2M8q\nGCuYgMaPKUCuKme6EcuqqcSGsNdzclJena29viTATh1MejI/dZTx/f9x86Rq\nHv4E+hEk5Ee+q8cq4SQO42WaFKftcHdlGh9VHxrJihal8OAt4K9IlCXkNb41\nXEs4pCZd2kYOj6A8CTw8GABjApdfE49/OnRVrimJPdnqtNkAGRdk3pTuQPLD\nVviaccN6WJcERODo7Qqnbbk6P310opWGmEJ8elgE1RYLRNkutGGnVwhFDdrO\nDeS2n+PYhKzrcj3RJLfTeCNvpGrIUPNhfNXlXeoqwe3WHvHoPyXFm7rZ14MD\nCqfv\r\n=n/Vu\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# `@humany/widget-conversation`\nConversation platform with API for reading and writing to a conversational component in Humany widgets.","gitHead":"1871cffcbfd3cbd7111d6973fef6af519f7acc79","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.2-alpha.7","styled-components":"^4.3.2","@humany/widget-core":"^2.0.2-alpha.3","@humany/widget-forms":"^2.0.2-alpha.7","@humany/widget-plugins":"^2.0.2-alpha.10","@humany/widget-routing":"^2.0.2-alpha.5","@humany/widget-adapters":"^2.0.2-alpha.8","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.0.2-alpha.10_1603202479582_0.31045031560254355","host":"s3://npm-registry-packages"}},"2.1.0":{"name":"@humany/widget-conversation","version":"2.1.0","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.0","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"d79a21fef8ec0d5fd20ebf453820354cf734eceb","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.0.tgz","fileCount":165,"integrity":"sha512-hMr1Ljv+bWCoqV1FXmTi/zxSZSTUL/lR7jOytLzhTO4IaRS+lD9LkYLSNEACse86vBTeFj/nmU820vYrvfCOsw==","signatures":[{"sig":"MEUCIQCPhaQrpb3+H/EhC1WvbpChzgCiS1k+argLf/RyXQecPwIgD3jyJy1uwkv2dlQrP5JRJM0/NBiAjnRUYXLb+RJKnu8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":275738,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfj+WdCRA9TVsSAnZWagAAfkYP/A7DbhCS8+fLdEy0drz3\n/xctMXuJjAYqdkDn6zH6zrEGcK78cuZ3RRfrJU3KggtbG2HbUAu/OgzyjbY5\ntwbmIjimZBfZ3HEz5b+Vn2JsPOawXuUFlrwlJag7SqTJOOmvzlS7wcep1UjO\n3dJMePsh5vFKbya3hr0QKFM6tgDvoy2nolEj4ud7FBmWNSjBGAVQyfmVdGKM\n9oIwhMyHQ5dX3QLvxFkFrGYyNfQTwT6hwnhwlQsrg4ItTwwDc3KDiBuAthk8\n1kpS70sT3pr0XNT6vq+gf2fGB24+E40Qzcor8TyRfCR2M6yb/gFbk2bRC3e1\n18lnEz5I/hgn1FPcJK+umHTXhuUQ3TwO1qPXmMrTwEQcP1oo9VcZy3I+1Vv3\nX7+pA2eWsLsTPt/9riB2ae8u2Z+JA9P6KoDgQmuZxZwUdm18gq1j3JQuVdU1\nX8g/5jCVf5BEo/CnScL1goJoQIQHkRZT6YqcDM9gLkTqEdswTJqxzBcW9C36\nd0RazNwChrUlg86f4s71P74wfCniFohBkwnvv1SQOEhoJ7n5dZrw5GdxOXtU\nIMt5d8gDqvbuw6YVA9uMpdNRk+0yWUb3znCWdZGfhy0vYZcZIex31azyyVqM\na4hDs6gzCZ3caZBOMn4T9kPuRMfulWc9Na5q/6FLAFONlZy1OBI8nYENVm8M\nCrQP\r\n=FcxP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"fddb18983a16b123b14e86b327ee904a1665d3ed","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.2","styled-components":"^4.3.2","@humany/widget-core":"^2.0.2","@humany/widget-forms":"^2.0.2","@humany/widget-plugins":"^2.1.0","@humany/widget-routing":"^2.0.2","@humany/widget-adapters":"^2.0.2","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.0_1603265949200_0.9760304299371629","host":"s3://npm-registry-packages"}},"1.0.0-beta.29":{"name":"@humany/widget-conversation","version":"1.0.0-beta.29","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.29","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"df66623cce96e5ec3f6a3a37f5dea43837576a97","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.29.tgz","fileCount":75,"integrity":"sha512-Ah8LzMAemUpfN5GrDB6JNsNHGVNc+eTa4bTUrsCkWinzcaX+kTaeRzBxt+NxOXHmvTVrVzho0imINv2qVj6glw==","signatures":[{"sig":"MEUCIQD1UnUYQPTuUOOxVDwq3DhEUcO6dBOeu3S1M3H8eK1mHQIgToLMyu2YZN1VdTXLapMfdST2fvm22YfTrATXDlaTjpM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":134552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfj+0XCRA9TVsSAnZWagAA910P/ibb6SKuM1ewoKaeBCHA\ndPbAJ1ytasdzUY4z4syBHj4MSWnS+1lnX91YRvHRNM16bToxBLwtnrjgz3e6\nm+5WZf1B3Eyx4t7SPdbsKSfGCEc7b4yfPJ/y8wO1ULkQcqG0seMeJYvRxOq8\nysHB3a3xISP8WTlt8setGgIlFDjTTxoFInB672cQK5vSofAtJFaqyUg9i1f3\nFYFoCDeYUbnWKYs/ggOCHnlIknwyq5bNUq+JQbS63Agd8ISQyYFoHYRoQBBO\nSYyhDAiPb0DM0i5yvNOF9ObIdoCkqeEJZbIkgjIyC7pP652vnsy4s7zs0SyR\nMGiHjgmWManUajuBLtjCGEcY1oeS7DBqLnY3doc055y9YfNzOnC3FrtkIzUc\nmIafLymlFsRd6026veaOlwq9P96T4rsiQ6zqih2gDsTRdU21+vIMglqvBJmM\n3vpx8QvodL+18bhYFuZJy4b6qBj7fuDPzty5F6G2kCguJ2to98ldBXfuFWZD\n0xsHPU7GQ2FJwH7Io1DCLDzFMhEx+GCcKGGHc2cJLOjef4gfiiKF2EBOtPAB\n1wNnZqcw5PC6hOdpcMozt78l/3y9GS0mxQbxqp0iek3guj+tXFUTSETw/tQp\nDswtWK/Ius187XTw0Jhg5EwQs29uQ2ENBuH2qY8p3VngIZoSIFs4RnF6UdTl\nCUWq\r\n=7+rX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"7eae54e5e1167d00d8e57ba4baf3376db59e6f8d","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.1.1","@humany/widget-data":"^1.0.19","@humany/widget-forms":"^1.1.1","@humany/widget-adapters":"^1.2.1","@webprovisions/platform":"^1.0.4"},"publishConfig":{"tag":"previous"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.29_1603267862592_0.7051752497604855","host":"s3://npm-registry-packages"}},"2.1.1":{"name":"@humany/widget-conversation","version":"2.1.1","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.1","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"e1ec20d413abaebcc76ee8d25cb34e3b424c42f3","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.1.tgz","fileCount":165,"integrity":"sha512-rIyYYuyusv70NkMWroli27Duo3m2ARc6jRlJxmYpDrN24x9sk6XBWLwmWdtToENi/8r/yF9R+rK/xSz9muCoFA==","signatures":[{"sig":"MEUCIByyP9wQ1ASIrmzfm5Ey0hWfOgiFSlMWWX6j0LmuS/EoAiEAgLb6THrSZx938jGEENwB8tMeSGFn/abtnk0/X6Q80OY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":275738,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfm8S7CRA9TVsSAnZWagAAIDsP/0/yY4swPRk02c3y1PSa\nESvkiLBSlf7Ty6nTwtveSAiV4nP6tZ0se0/N7CDcmm5PKe4w7m8izyCH/wJZ\nLTh7h25YvjwOxtzgad6TcXo0TXmM5h1MccHnuCSzqJ2viw9XGVtG/BUvDBmq\n06Q1nj4Yin2J2LVbYXmTb3QsqyV0CfKkvhgkFqlCDiDmYmUclQOpyerN4y7j\nBQR6KbrndWs/S+JH/1LJAXSip3hK7tSbqtyAGxbKcpII02klUZI7l/O+d3b8\ngLzvGFK1tLT1iDMGghh0fL5LlqKoFUbv5mS9vDMhQtFwargmdEa59yI/yf/T\niRor7IkSUIwUv7Yl8D7XPTH+hFl8AOU3rXXzEWoj6QZ4ZJIkY3f4XH0wR96L\nJsPiDF21gv0rr/Aoykh81qSaEwCHISWWtO7eRADjKTPzTcV3R9kT8VwMXldL\navpLlNrlzMubuNrNBTQwDkzbPXO3NGNsM6IlSy90Iher7H59e4CECqA9dQpn\nT2isuG7Zt+L8brI6k0QTo8MAyPFUdtXFSPl0btTZ4cljit7ZXVtMqzCwvhWG\nwyCLx7k7CcMPX4rQFzRHmDqiZAeN/U4k6iBhEbGL3N5DscQzZwHi4/WGZunv\nNaOXJaV+2weKkI1kSeVC18OUGO7EqH0947HuT4pQEysXqvFUk00sYKtPcOKr\nOPO3\r\n=rYH2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"cb622e2d92c673ce9b0c90c7515c03d421f666ae","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.3","styled-components":"^4.3.2","@humany/widget-core":"^2.0.3","@humany/widget-forms":"^2.0.3","@humany/widget-plugins":"^2.1.1","@humany/widget-routing":"^2.0.3","@humany/widget-adapters":"^2.0.3","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.1_1604043963125_0.40474947671882755","host":"s3://npm-registry-packages"}},"2.1.2":{"name":"@humany/widget-conversation","version":"2.1.2","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.2","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"261225faa1d9139d64074113aef2e41320fa064b","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.2.tgz","fileCount":165,"integrity":"sha512-cgdX1ytFvNplOqvyzZ0r/sSXzxJ6OJzCZX9pe4S8trHeSx+IglKr7oBA1UHueHApRALzJRIR9Ve3WZuezDL1iw==","signatures":[{"sig":"MEUCIDaC1B42l24rPG3JiAvMa2efChrpkTyCsxPUEjE/VRWFAiEA9j5aLBh4k8Z0DRFDH/ao70eomHSKy3P0YTAalhYHGnY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":276768,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvlL3CRA9TVsSAnZWagAAw1gP/18xCHs2YShzK28LNf1y\njZCS8FDjcfQMsgU33JFKWXgDb61GNWhpGE7P9z+u/AyRFekrTh1u6C2kRiCI\nGxAvI85ZnEBtkBGAgVfEvR4o71vqV1gu/CkwbwmMJ9P8qTAqPylSfptr/jUf\nlZTPLiH6gCwkcXkh0zjNfBtb3oIyhr4/wTnk1HhKAkEpEqZiMrhTevq9GOal\nQOQ1oUM57l4js+pCIGO3+kGiYwDys8qJxay/axjPeiR8FrV94A17SVJ98O9R\n/4iKiWKRNJ07CDpzwcMhkqS+xkcSws9KCDy6d2oTnlfnw+9+/BDRxkVFURtB\nR+g+DB0Obm8eTvJjh5GaO2dqVoJeG7Q625Cj3GLP5GwNU0CwE/0bITQr0rUv\nRparzbcepEDTxyiF7GKBFtVE9AGg90EzHJnD7gX0AUO09ZtajPuQKbiQ4yVw\n4xQmCK7z4wZuviZUcRFU/C437cRZ8Kf1JbdSxOHDkv3oFDBlUQ+MrNgdPkJp\nNLyEPlvJ8ET46/8dflzUFiRMDHGmNsXyRCclnOsBhFITOECbA5ilAaK3TAgL\nae2GC1zAD0kh+Fb11OinOkotSgrCa81N/0RItTaDsb55+d6di6JciIYI2LyX\nABwNP83lAFfau8qIvGTZKNkyjKLiCMXC56GmwUjAH59p2rt73bcRT4qUELS8\nhZuJ\r\n=C8xg\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"f45e1007af7057de31a0838d1adccd1b1eef305a","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.4","styled-components":"^4.3.2","@humany/widget-core":"^2.0.3","@humany/widget-forms":"^2.0.4","@humany/widget-plugins":"^2.1.2","@humany/widget-routing":"^2.0.3","@humany/widget-adapters":"^2.0.4","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.2_1606308598623_0.40754235035463116","host":"s3://npm-registry-packages"}},"1.0.0-beta.30":{"name":"@humany/widget-conversation","version":"1.0.0-beta.30","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.30","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"24de9155850327bc29963e5bc47833a84c2c8718","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.30.tgz","fileCount":75,"integrity":"sha512-oKZBhXlKblF7EcVevvX97sGYtv10LXegKAv4AZF0Pcljp8h+V0WIZegwMRkNdrcbltOZFO2ad3beYIDazEiVLg==","signatures":[{"sig":"MEUCIQDh2nwdhVUw3xgI3HjrKaURX7Tq4md05TgRruk2LctoyAIgRp8jtPNafOZvTzwKEa86udaMDhDQkXMqssoBXQDdE0Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":134552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvmLwCRA9TVsSAnZWagAAVHgQAII0ShjalT0J8+ZY0Tg3\nEyaj/fxTI4Yg151uEfSp3TJCl7JhP4YXPKlnWrg/P2+EbUN9ak3SZUGFr/pw\nGyYx008SOikb+sPXwoeFXe+nuQGbOzUl7Vm+zoCnhVmht9GTZmBnOEEeIYZu\n6J8RsTBMa3b/Uj02j4n/0IlzPFZ+cNo9HLjj37XSpmOMvygqOKI7RslgWOUo\nP1MezY4S0Ei7kQLX8SsGUTm4bfHdTRjNF5LDIl6krjd3zaOzpP7yHQFpnmG7\nGc0uT83WAAj1sU+LG7Ucw8OicVNkPUb8bEvWLtUrkZs8YoMQdGlg6yTJQQTw\n/bEkbj4nNN9iYWaJn/aaZcWY+3GUt0zel4RoHNYG2ggld1A+kVL4JLu4npsB\nq9E2w3nGiQZaOHC8WZWMdtDO/kizcQq0gCbmIH5PQBTyeanO7UwLr2hBcJF3\nLr0e5IEinE/2LaZCLLG8N4LjsY2z91tMqwPdn2k8qyn8yxcL5hPTPghXwe+J\nm6AwWHYnfH2APW4h6hR4qW/1dqZPFgLrYonh4wSrwzrblizAjFS2GIISzkqj\nYcX/4SmJYMsvdtVcM+UdQYnuje1VlA3ewhb2s7ChrO5ep+4m7arTyJHi2NhQ\nxnTehKFA9xfr7Kae1qIJ4jSMyVFlGF2FQkvbnkgza5x0CNO4rBqtqGHytClz\nrKfa\r\n=BKsU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"57835cc70c883a185853488616ff3517bb0fab02","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^1.1.1","@humany/widget-data":"^1.0.19","@humany/widget-forms":"^1.1.2","@humany/widget-adapters":"^1.2.2","@webprovisions/platform":"^1.0.4"},"publishConfig":{"tag":"previous"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.30_1606312687695_0.70632886298994","host":"s3://npm-registry-packages"}},"2.1.3":{"name":"@humany/widget-conversation","version":"2.1.3","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.3","maintainers":[{"name":"totte","email":"theo.muller@humany.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"}],"dist":{"shasum":"927e03de6a0686ee9b1103f2df7ef8763fcaf5a7","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.3.tgz","fileCount":165,"integrity":"sha512-L0wXTyaDfy2nT3zA9AlV7hR8iZcF6VHDmB464Xe2JkcHLWlrQQLVjakAEViCCmeU/29qGJHmQzY6k+t4AIJ5hA==","signatures":[{"sig":"MEUCICih/jT1OIy7ZigR37MOFK7XcjpoC89Q/FX8AqxsJ7SzAiEAzNDU9lFZm4Fqh4rpE2AxXzuA7d3epUiwoqVyY163yNs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":276768,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyJDUCRA9TVsSAnZWagAAZO0QAI5iBMBL3UkMm59zc6ZR\n4CKY+m9U1L8XdarrELgjrIi1tPEsxx5hgwSZcP+Vqnv/atuX/xh815B77QYF\nWBnurfDpJp12uqcbJ8e+/Mp1Kiw2Vz91XZJvyjDItYkuAEEl2P9wokzh0BBg\nMlumBZZtSdFLvXkkXXl4wAl5GERcQ4YFqgbpdiqC+TGBLMM3QT3LwIrHtcSv\nkl6IkG5KMMyKKUHeUUb4WmT4JJMBQnlkTjHykW4otpWk4GNMYE3jGvFSM2/M\ndJyHxce7r6mjk4Uetjz0bYLO7NOVSexEy826eZ4z5GJBKd5RXs+XysJkn3v0\n3b1D+WmYE6+nGL4L334axf8MVLWBvoz9xEJm1xaTsca/+jiUsc/12EQD8B0m\nFbV7Zjp/DatJzjkhktM9GHUCiOFxWYxgibfh63XPl71j9cV8QT9VXddAR5nv\nFQUfDvHC++gatG15s0n6i5OC+7S/f+AvaPJ3JU1JrKtU5SqrgaeFBsD+8R2P\nmOM3oY9rhXdeBxIw1mlCokPSV2F6EX7/8+GQ8YSXI5YKYy1ktsxyJObaLHnF\nbomn1axeGiQIUyTQmTDddhsZ1/B4aM+2XItZilwxR/T16f4Mqre9ryeMey3Q\nu35cEIBbKSeKeJT0n34Cf9Y3tZ5fZKVCwOtJyvP2T7UW/7y2HsqvCalDMQgv\nWnKb\r\n=wV10\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"a19d4881b806a6e7bc38592a8df43191e8ad32a0","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v12.16.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.16.1","dependencies":{"@humany/utils":"^2.0.0","@humany/widget-ui":"^2.0.5","styled-components":"^4.3.2","@humany/widget-core":"^2.0.3","@humany/widget-forms":"^2.0.5","@humany/widget-plugins":"^2.1.3","@humany/widget-routing":"^2.0.3","@humany/widget-adapters":"^2.0.5","@humany/widget-services":"^2.0.0","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.3_1606979795447_0.19293104192778543","host":"s3://npm-registry-packages"}},"1.0.0-beta.31":{"name":"@humany/widget-conversation","version":"1.0.0-beta.31","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.31","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"877c77fb82aa26decf32f0f2cc236941374bc87a","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.31.tgz","fileCount":75,"integrity":"sha512-V6RQKtL4K6DCXrVRCrND7I7pp+1idaU16BEhC09kQBcQxo9cuHTHVmN0TnQ6YbysSk5iYVvI6VsiC6BtILT4aw==","signatures":[{"sig":"MEUCIFmBQNwLcUPG7LeFN4c3UNgZaj6vbm0aiXBvXuZwEJbUAiEAifUzz30Jpog8vA73hHwwirZfMG95TT9s8yZUzL4Ixi0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":134552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf12AlCRA9TVsSAnZWagAApwoP/2YT69ufMFB+0LpYqRtU\ndQwf4f7p+QeBG3vjNxKmo5f1YKuMQG5Bn6Sna3W7J7n0t0/+kLiVRuZ+AzC5\nRb0/XX9ugL3BjEQiuI7LyJyAsVxbDJN89ctYkPFnwQrZXKDUf5ksjy3D6OcN\ni9azwbx8rCYQ8NNQDiFFPLw/r5d2LcydlzSZyFAjGLyvxVxqbFzPGGG+/OVv\nPp/IKTeYOjbY+dk+k0i+yD4CGpEP/QEcABzoAHGbvUGsjgUC+2FkMtjql6jB\nvTBNjUIruwCmSfYJWw0cG6MtPMpe+aSJyps9urlcu0CttEjc+uQ0Sm7Gz27d\n75RTefSOABrAMjsiJ3+QZkL3hp1gEhiI7h7bGy5Zma5QfPSG5c31iASkMuDV\neU1zS/DsXrtj29CLgyc/LpbLRUKPVZqXpbtSra5/KSa0zCs9CkVmUf8vE3Fk\n1Ry3DH/L7drstuQU4FUttQr2jBdQg75E9IlyzGL11uFsNnQu5Evah+ZZ24Hu\nyhHh7caksxG8QKNKNeTOFyzAes9M5DxzFttOrZUfM2dKwIBE6fdobGVYUNee\nEewW4e4vhgmA4D3b6DXDnAzt34o5e6j9e5tlCH7uk6OTQInLQ6Lo1iz9Yd9U\nT6SHh/2SNlswcE3Y2gwmLMPVW/IFFWuSsfTcxolECDcMRFSCwHphAx7ag57T\n4m4h\r\n=ynuQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"34103c761b7af62ac47cbb471d6cc1c22d619b77","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@humany.com"},"_npmVersion":"lerna/3.19.0/node@v12.18.3+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.18.3","dependencies":{"@humany/utils":"^1.1.1","@humany/widget-data":"^1.0.19","@humany/widget-forms":"^1.1.3","@humany/widget-adapters":"^1.2.3","@webprovisions/platform":"^1.0.4"},"publishConfig":{"tag":"previous"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.31_1607950373283_0.5677435565716511","host":"s3://npm-registry-packages"}},"2.1.4":{"name":"@humany/widget-conversation","version":"2.1.4","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.4","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"261877d93bdc3ee1b0b35f0a2ec48958a57da736","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.4.tgz","fileCount":165,"integrity":"sha512-B0e9iJyg2Ea8b8jEIJt+5NHW7kMLQS7FWzCPWReDhh8kXArK9dm9AH2UIRCLMyoljtboCxc6BkxQcuPwueHZig==","signatures":[{"sig":"MEUCIHnL0FEQEQEGyyMfJOTg4s+S6+zM4x2t7wjWr64bYybQAiEA+Ut79vhsEZv+MEvMidljCKiqtDmeIyauttKJIFsADVg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":276768,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf12VuCRA9TVsSAnZWagAAeHcP/2BBiG9OKqEc2jdeo5Gw\nprGRyosSV/CGX9QjDuSR8xAqF1QtWjXg6EpA9Tor0hzkHlBSbpT7prjjowt7\n99+0rwBo2VRuiH6G3o4BepWWO2xJe0Xy1oS7JFgbQkTTMyS51BRgRtK2rXJg\n75zVDjQZQzmdrLBpWdGen52aStspSECHVJlkmfsqjCe/WK8d805CzQ4y760H\nvGDuAFPg5zGQhRQaDWbxKGdyD2w9KGcVxLIaL31iiOt1DZZBjB7nXqYBvctt\nVmlUl+DHqzTOyAqhtjV4pARR4ezGvNc2fVVN2JyZ4ksg1P7ZjOfQoB7qef2a\nqaWRALqt+Qj9osRyfTbooCR534deHRjKK8feT9z/RPfiXWqVIxjbyZX5FoTf\nfw/xC8uuIpS96uMQ+N/wBQOvW9YKBdTFtjTPthzIDKkPyJQhQMtrl9D0IkE5\nPOv/AAGACkvWtcK1Ncr/m2DfKLFidt/o7jev4XMSAZebR7yWpZuhNzYbzgSC\nOkkw9/Sfz/Xss06eRcyyuxQJ64oOAeaEQn7F43UaJ7pGQ0QzkBfhGl0DsAER\n13caeXSF4OGdQiKUV06oYdK6E19w53lSXjpiB8aOZoDVBD102jxNAXVNg27z\nDhkOcxv70iw8p9mZEJOJ4l7mC+MtVHrvqBdF9VLRcpzYu7I3uHaV6sgpkd93\nYn/O\r\n=QfQo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"98308d41dc28464b73302db836f987544fd97cc9","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@humany.com"},"_npmVersion":"lerna/3.18.4/node@v12.18.3+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"12.18.3","dependencies":{"@humany/utils":"^2.0.1","@humany/widget-ui":"^2.0.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.4","@humany/widget-forms":"^2.0.6","@humany/widget-plugins":"^2.1.4","@humany/widget-routing":"^2.0.4","@humany/widget-adapters":"^2.0.6","@humany/widget-services":"^2.0.1","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.4_1607951725789_0.3092651542625753","host":"s3://npm-registry-packages"}},"2.1.5":{"name":"@humany/widget-conversation","version":"2.1.5","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.5","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"b7ca0cfd96c20f2d0bd1c7c8f9182bfcb8cc04d6","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.5.tgz","fileCount":165,"integrity":"sha512-sW1p/K+A8EY/n6NrwiOOVmjTfYDbHvxiCqsYBJoFeuqxKeY55q9rs+LFVztgnGEhuPSO3rLdyuOEb6sPb3SZwg==","signatures":[{"sig":"MEYCIQD4BFASVEIeiAGDqEYSjupJu1gYaNc2F3WYT1vjF7T+wgIhANDX4WxhnU1XOHzVtmbCiRH3vd6aUt6pXHr6gNL5CKUd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":276768,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgK+LWCRA9TVsSAnZWagAAzEwP/ix/8A//UVqaDkW9TkPk\nMkPCVIHQV56B0zT6aI9qCYu8yDn0+63QG2aYZgiVMteiFtfO3G5/z3HbUODJ\nkJmWojjTVcOC21HcoJp21ynlHS9oicunrweKZxm5l01beWr26LljrUfkzYNK\nXzagbmH4SWjxhxDxQwAf4pY5cQLD/s0PIy7ZNzTgwo4MfMxG78G26LbXkC7U\nM8zE1r9SmIU4yvGFwC8XGNRiNX9iVlJJO36hzJqwB2kC7kHf9snKDZ9dIQf2\nqrByaAJ9dqgU43Js8NE57hd8Lj3Qmr/uK3vjj91M1wPKkSHuCBtlSBlvy9vE\nAUuwp45aagW+KZZK5FTzeBT9PgDTJs8hTKURemB6gAVzoY011iKIPcqvZSZW\ni5zyeDuhXLeDJjVKYd8+qM0Hsa3RB0jTwacj6cFINVEINVFqOuzpqR/NreM5\njxoQrRmY0rvlTOqPxsiCGcIU2ygvn8OISXy5LNNGUkgOekjjbpXtsRXoFrg8\nKru4rGyENZmqj3tlZS65sFcHvrVy07CGIND+iWMt0hpeVR3GdJtn9Wknxmk0\ngrixDqu/y4NoIrqf7cvDMVEUtpvNgJVRbcJT9qzAk8lhWFERtCGF3ACbkpuS\n+wuDKthTW8unZf3D8mIcdO+RAZ3c7oF52V/oTUCmRfQ5pJ/rq3+KtjDA/MFO\nZSOD\r\n=Pclf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"20f825f21f1e2397fda962290a9557a03767c6e4","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@humany.com"},"_npmVersion":"lerna/3.18.4/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^2.0.1","@humany/widget-ui":"^2.0.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.4","@humany/widget-forms":"^2.0.7","@humany/widget-plugins":"^2.1.5","@humany/widget-routing":"^2.0.4","@humany/widget-adapters":"^2.0.7","@humany/widget-services":"^2.0.1","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.5_1613488854192_0.5643157311188511","host":"s3://npm-registry-packages"}},"1.0.0-beta.32":{"name":"@humany/widget-conversation","version":"1.0.0-beta.32","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.32","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"1fcc88f7725e336a8f7ccb0da25d122d690f5309","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.32.tgz","fileCount":3,"integrity":"sha512-VjDSvjtW6iw4qsjbCqq/KsgASFn7hW3rvpelaTgaq0BwcjEHIRLhIO/2NvDtPAI5nJNCgwDcFcUZ2DU5vzYYJQ==","signatures":[{"sig":"MEUCIBfnqjltA6i0Qc48T30LmpvLNwnkVxACNxU3bkB6WgaOAiEA6kxER0hCYTPkwHVIc8oTaCsS8qlK9/sDrTyTi3Vcc0A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11369,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgK+UHCRA9TVsSAnZWagAAjCUP/3X7ws+6B42E3VYHVObJ\ny2g/TLI5+qczxbOVmfQ/XIhHadldhhkQBCmesIoxQmdQSo3u/i9lL2st6SYD\nvZDkKdjFUqpmGZ1GMbqQtMb3MclXQohWxwbmGf/9tF/PBgil0YfSM94COk1r\n+J5ADjxut7iPAvY6MK9FClLwT583ErLqD0lbMjPT2n/C81LSPXnAHgGUp297\n5puB12d2p9WqjXIdjarqTIv144r8ydS6UP27E5hN32D90Fv53pAIOpmZfTSA\nCR6GiTzaaim46Bkn378srFLgWvIYxIc0Kjy9qc/DHlm1GOP4PkXblbIldhpp\n7dn3e/fgwmOQisIg6cq9/ZGpwYXOwSzxeHyc7aSO14PXpq13R3Bri80g6D8x\nUcdotJPSqCmPGgrM6YD9OwOVt95Sw5UiMi30Jdks/zaGi+L/VpqnkFXFw/7z\nTzZlciwLSxcAdOw1+X3y+vn6I3y1Al8heFlcJ8JIZgQeftl2zZ8AN2jXkcCg\n5Q1oCZY48aYiyUEu5xlMOxMSnK4DJJHjpOPglzx6W0upheoc7J08ffCrh+af\n6VnWP9zLJ+ST8bdRr/GCVVuUk8OEQzkvecXix8viDzi4iIP77c0hlwCVvZRI\nPCSLTA/2YVpz0+JWheGzfPZ+xNzR1SLiEg7KJFi7yOoa5BOas63AoGObPsQe\nL38R\r\n=MirR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"6028f7f3f69989505de1be7a9aeb64b51d8b7228","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@humany.com"},"_npmVersion":"lerna/3.19.0/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^1.1.1","@humany/widget-data":"^1.0.19","@humany/widget-forms":"^1.1.4","@humany/widget-adapters":"^1.2.4","@webprovisions/platform":"^1.0.4"},"publishConfig":{"tag":"previous"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.32_1613489415186_0.4408020372385353","host":"s3://npm-registry-packages"}},"1.0.0-beta.33":{"name":"@humany/widget-conversation","version":"1.0.0-beta.33","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.33","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"62345c201ac71273abe7fd27b62589df4283f779","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.33.tgz","fileCount":75,"integrity":"sha512-oKImTTdBXspUmnrXuSNserXbskEVdx6SA+fzscoj8kUTvljS+bhidUcD2HrH7Br3mmHZLnmLjqJlE71+rKQesQ==","signatures":[{"sig":"MEYCIQDBFG6XdkHC3dvfD2vZfViVcrtCquZrImJQpp8jt9lMOAIhAO1TGGA4oWI7PSC4CzXANKJON+tMEgjTsSJQANcqgsm1","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":134552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgL7iDCRA9TVsSAnZWagAAPGoP/14HSQDRZ7pOi87bL/AK\n5RXin7auMAi9PBN8KgY0NLq/+0sEwpJJBTl6QhxXBJ3aYaiGkHL/UPL32QwO\nK4lel7Q/W16w9NazZ9t93HbGJ8SoQ8WF5JS5NUmmGwPWWVTxX5R5xlActIpH\nqlpenYpcf1JPetZEqgsCQF/QRYG9F/ijmssK5RP6cw49L5PrqXIVDmhxKkjG\ndDhiKVvo/iCyIeeyv7xCCnmxnh6Rl/8nS8gAfoVBy4IHtV/wTabJyLeSy9GD\nAcLXt2jqn/MSUxMg9q0KihsS+XaAC2LiZ3iQphxLIaimAVRXtQ9h5GoYTBSt\n3YiziAh1LpwN08z9oU4esRyMPWcK8apG+jEL7RB7WTmzaK1Hil2hIK0i2rbo\nVQxhQ/fAFeBVDGQfWBUN/99t4EfgYIgQcZGrIa2y5avInTzOqBuITp7gAZpr\nha5JBJlfGX8oFnMmCjUslbwQ+85SB5D5Qw42y7SMm1Tj3vkSZvRwUcS8hGWP\nXC3F5lqqbGy1zdCXPGuz5YmmlYJ0gCbqQ6RzYJzte+B7dZ1JfbagGFGIFfPl\nAVt+kwCv5wkCZOZDhNoKDdgXMG5SZATVTFCuj7CFif5StHdxp6M2D9f72Uqj\nDjnEUYj0LpRDHRq1F97Ul3LqKYkfFM/aKoyZbqpPMtLJmj/NuPj73Dq914B4\no987\r\n=Ns9U\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"3652fdbf7c16e103dc18374d1be4e950a33fe2c0","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@humany.com"},"_npmVersion":"lerna/3.19.0/node@v14.15.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.1","dependencies":{"@humany/utils":"^1.1.2","@humany/widget-data":"^1.0.20","@humany/widget-forms":"^1.1.5","@humany/widget-adapters":"^1.2.5","@webprovisions/platform":"^1.0.4"},"publishConfig":{"tag":"previous"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.33_1613740163049_0.86095950328295","host":"s3://npm-registry-packages"}},"2.1.6":{"name":"@humany/widget-conversation","version":"2.1.6","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.6","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"fcad5f59f5e73a95ff334ccc596d4dc4b4220c96","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.6.tgz","fileCount":165,"integrity":"sha512-cD5yXrZvrZR3IaF1zTrlQCIcfVoefY2ov3+xSAlS5QCeK+DsamoAx4maaggk40DqfhM/GD8KOOFS8QCUbc532A==","signatures":[{"sig":"MEUCIQD7eOcOPgvIjR3CTkbHN1V8CEdaAHhZt7muXuXKAYAqngIgHHd8WBMOsN4Ysg9b0QJf09mJp3csTrCte6llg8Z2t3A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":276768,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgL7/ACRA9TVsSAnZWagAAUJAQAIzbZ7Yr7gVyc1p+/LbR\niJOpTnIhIXsdnFL3Vz0FvQFZ19X/ZH0ku4zHaZY4AvGubVGog0NGvpuGGdgD\nsshj75f70PbxtGfDmqkeVPdTsFK6J1t+5/G71rPrXdXxC85iGlYeZoxF75Jn\no5DGV/x0F4j1kZFWCpg8vR3ngpMWjeu8pbRd487jTctkr/tjmVN+VeY4PcFd\new10LbzQtgMh3fm+IcnoehNunontKqwj/6WFGB8YQc2plRwVFQqBtYWrXBmi\n7xpsex2kASzXuvHdI51fg8W3FAInDOE5khaPlEw6orKdOA80XJiXU6YRLUUx\n92J1K34RtH790ye/9wvkJQJfRLRj2DYM6Mxw9mvRHd5Tokrs/bBZxox0/mMj\n1bnFCwshcjBjMm0bA1RBPB5wVaShUYDmORudDX7jRAX3vRToKQV5ykbHnxLC\nk0GXYg5uGekcrGYytWgPam32J7ugHhTj8wFJCbfTQV1uO9zt2XkSnKTazbFe\naHHNC90OvLjffo6NyM38TiOJ/7LAtLYiPPiSRwk4S00BRqEg73fQt8jgeaxm\nLE0pwno0/q9MLY6mDiKw5Or9L8MNzArbOmL8AQWfCQsky76Z+KiJDj8rmvQf\npZLs5q2ENjaVp6cawIOGwH9ince1zTeLIxCbhPmkNTm30V26rXKuX80V5r5Y\n78vV\r\n=dEC7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"1c2893a6d01ac4b5caa01e4e89b8caac76ff282c","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@humany.com"},"_npmVersion":"lerna/3.18.4/node@v14.15.1+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.1","dependencies":{"@humany/utils":"^2.0.2","@humany/widget-ui":"^2.0.7","styled-components":"^4.3.2","@humany/widget-core":"^2.0.5","@humany/widget-forms":"^2.0.8","@humany/widget-plugins":"^2.1.6","@humany/widget-routing":"^2.0.5","@humany/widget-adapters":"^2.0.8","@humany/widget-services":"^2.0.2","@webprovisions/platform":"^1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.6_1613742016382_0.4729330276945056","host":"s3://npm-registry-packages"}},"2.1.7":{"name":"@humany/widget-conversation","version":"2.1.7","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.7","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"6666ee481ff2d83ac681f539981c19b0079278c5","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.7.tgz","fileCount":165,"integrity":"sha512-i+QcB00a86wxPQ04xEYIbzGSqOzbnUssUk80iAYd5gnxF3n8aivwR9VNBZ7hjf9u2m5QRMntQEzb8oSNPo4zqw==","signatures":[{"sig":"MEYCIQCdOmMiassSDXzLlA4WXGR+lE1IqX5BtM1oaTC2tfE93QIhAJyZlwPp57Dq/Wqqvw5NWWGA3YAKK3mnYtCGcxi1ijcA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":293417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUcF2CRA9TVsSAnZWagAA4EMP/1TevaHSB1hqSNY0KcJi\nRMdSuqEsjwdriv21DNwNpNsO79WJs03ZLiXTrelJvY6PWGlIeNxldr+uNgxi\nXpa1PW+3pxi0g/MaSmLsELG81D7qsRWij1XN18Vge1zEWypsmW83JcAQ0Ff3\nzfQM2OlnD2/xyQ/u8mfe3G/blg6a6tpl5ZmpHWKMsVb727u/OuMP5RmhmkEs\nSqBA8vlQwtuTMZak0cjp24X55g1pzyP27m1oYdsu2mTKwyBf5hmVxLl6d1bu\nbMs1F6jNtcI3X+Iw+rBnEm+LMdUIDWxQo6A66HmgWunbHJ80HfZJs6gdAXLs\nDqUUxw/wVBMCmQ0HR8abSQrQith9pJu3y8pwo7v+M7H57sDExaLXd9S5ZN7H\njFwG0zpYgUJlgFj4a6jQb2cn1rDcaU7jFDdGHX4KQrva9mhKeNhEBPKHoV8O\nyDFAzkELKdmveqLCoxCPfrtR7gV0EpmYoGig86yCSvEFKMx/XQgkgDt97KLf\nsl5RpdSF+Bl+DJRT97OCW4tukJovg6HN9zwZfWswv8UTtMcFnN7TACRtlQfK\ndsfgMLcWGeCFrHMYnNqBo+5iWC/Hrw7KhX73oBU1ziRxufrTDEvb60RsoJcq\nFq3Gk2Wc8ZW9Nw3AjhMKDBf0Mt1eed6hiO1p56TrricrhiofLH4SRljQvB8m\nzZeZ\r\n=5zl6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"95f3a0d4fda53e0b1075d897b58dc7acf96313ad","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^2.1.0","@humany/widget-ui":"^2.1.0","styled-components":"^4.3.2","@humany/widget-core":"^2.0.6","@humany/widget-forms":"^2.0.9","@humany/widget-plugins":"^2.2.0","@humany/widget-routing":"^2.0.6","@humany/widget-adapters":"^2.0.9","@humany/widget-services":"^2.0.3","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.7_1615970678286_0.39713077697004784","host":"s3://npm-registry-packages"}},"2.1.8":{"name":"@humany/widget-conversation","version":"2.1.8","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.8","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"e457f4a97dec342eda8ae764606d13816e94ec7e","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.8.tgz","fileCount":165,"integrity":"sha512-1I28TRZCW8fkQgxwy0Er1/uGSubMAcW9TCIwwSNXgiKx9L63d3Ng8QMLwWB2G62SEopVmW/UT0wLCuP0OX92mw==","signatures":[{"sig":"MEYCIQDyRD/VLNPsTlvjEiGjxwLuOKhPxKnrqw/ZGciY1Az2VwIhAN0fGiiBf5mDCrKoeialP0KFIJJf9npAt3E27RwRWhhI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":294041,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWZb4CRA9TVsSAnZWagAAq1YP/iFB63L5Rgv3M0zCexcK\nVAUeST1sTkXfXZRp1fM2UdJL8wJRhbQAOYMIKEAtxkKD5RO1oRxKXmb0vX1K\nyoAQF9IFOxFuDfIoAi9nkBac7QWJek/nNpi6pw8siq+uh30MJ7NZB7hhbjdt\nEnHciWX0bVb01Zp5sRfAlLtxalExOFAoBJOZJ7KYz/jgeIFTIxeCJWAFfYk/\nutRTFSew+mKXbtI9ZWYxuYgAjdKMkLBq4d4AVb2kTVx20ovad7uKiJiN1JiZ\nV53GYU+prC2iRY8De6gYvoFZG7yJWlL6zLR0yaq29GzyX/2QJON2DEBnSne9\ncz3sP8UVHy887iFHjl7WiOHsC7OetaicpChYyXVHtVqj+Iv53Fk1JDBZpFbP\npYicgJftqE6MAIp1Bpl6xx12FifgHrh2xON/vGpa0VUimms/Xg+xQrQuxgf2\nj+BG8tCqnXkVTRIL2c9yLhUQ+DCcqIBAXVhQQRPa80pL2V19/Wp0sQ7ivAWk\nO0vK3v41v18vXNC5VV5hYXuypXhRX7wh23KYlOhHbajqvjXB8N653Sx6Pzcb\nxACaYlnxPjS6vlvw926dIS/OBAHEaklDzocZnM91ZVOiCA4pJEtecetS7Hpq\nkozEFpQa3q6Sj0+1k0gx4pfw6zhoZ8N8Mj+lVKBZlDo+aOgoE2jGVkGXuyWP\nknVz\r\n=vh3u\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"f63d4de70d677e23d3dcec6145ae327eca40b4df","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^2.1.0","@humany/widget-ui":"^2.1.0","styled-components":"^4.3.2","@humany/widget-core":"^2.0.6","@humany/widget-forms":"^2.0.10","@humany/widget-plugins":"^2.2.1","@humany/widget-routing":"^2.0.6","@humany/widget-adapters":"^2.0.10","@humany/widget-services":"^2.0.3","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.8_1616484088340_0.6280103881406627","host":"s3://npm-registry-packages"}},"2.1.9":{"name":"@humany/widget-conversation","version":"2.1.9","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.9","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"f8bac556df528e69faeedb5704368ee6cba33753","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.9.tgz","fileCount":165,"integrity":"sha512-zYec8Qlno7aAktl1/0kPEpfFh1V7tlX3SfQpRbOYytnSkoUnycqFl+4vtESO7gml82Ur6iqRc610yI/ADNsf5A==","signatures":[{"sig":"MEUCIAzRfcGCdTzSSHfsjcPnIevJmy+BHwkbdTBHxjWRAmgsAiEAzG5/yirSzV7m3ckYOUHCWbYA0L2sFdHc5g1I6xjPYgg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":294041,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWvXWCRA9TVsSAnZWagAAkdQP/A7enNuDg7CoKc+RTCVH\nUoR5i6Mr4vqr8mQUWezvrwoaINS2oivkz1ortr/zRnzhSP4oMNavFbtLAXuT\nXQCAmttHYaV+bpybJmq2tBstrqXXwMtEFcFzucmqk46fwc9afIM+5d6rjs1h\n14AaA2kbib1Dq8pdg3ZPqtppva7FVqYdS60ozZPmVqCr5wjPyz8Apzw0NXPa\nSpahkoKUP3Fk/eXae/n6KDR3ZnN3IHnedTSDcbORp9T5FUSn0xjMu1GG8qY5\nHDTFHitfeXuqzGA8Wc3A35wIN8bj6T7jeScdfTXCsIcPsFIp+bYg3MNxad8a\nT7Ke7an/s5hkHPLR5QMzwjXQffQ7tdmHEIHyqxfnj/JIz+F/u/R23HCzDss8\naxqNvFBokyof4sPab0rt76eXGZRdOtQ5S/cWu8FVVqDUJsXg7nPbHRMPrJUY\nCawztNJmd3MjdSfkxlh0YR5XoTpnGf1n1CXouM9umG8up89sqgLRuTSXVicl\nY3oGjGb2da2fGZIzCT60TSH6rpMFcvDLWek1r4aZn8njUXwVUSFBSidj3qZW\nwTrDbB0u7Yc2i1giqnTjQyMolhNlC5g+C47fGFaNhQ56X4b4x+XGi7w9B4R1\nNRqzrsBvUH0eMnpiA4uk5taOp9uyiuAkJWBFW9xyxgZFNPrb8p9ZIcUg2boU\nqZp8\r\n=+DcT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"593499cdb7f2f74df6a4e532466a53c1f2dfb85a","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^2.1.0","@humany/widget-ui":"^2.1.1","styled-components":"^4.3.2","@humany/widget-core":"^2.0.6","@humany/widget-forms":"^2.0.11","@humany/widget-plugins":"^2.2.2","@humany/widget-routing":"^2.0.6","@humany/widget-adapters":"^2.0.11","@humany/widget-services":"^2.0.3","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.9_1616573910523_0.06589639809888026","host":"s3://npm-registry-packages"}},"2.1.10":{"name":"@humany/widget-conversation","version":"2.1.10","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.10","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"db772090e312edda8b0fea9e291f99138d086fe6","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.10.tgz","fileCount":165,"integrity":"sha512-3m3igubiQ+ZheHzcqmyfHIj+vDyGQYGc0m2ZW9Az3L34SQ+w78YvDM7tswWjVHTMV+Q6Nof24ePWRYOhfbz2HQ==","signatures":[{"sig":"MEUCIE4VF0YwC0kRX7tSff7v5FQmBpBLq+mTl8lG6/y3YTCgAiEAthMZbZvrEnWsDeFCM2BFZMlHUl2/opJcQG6XWQ+zBq8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":294042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgh8aVCRA9TVsSAnZWagAAAzoP/1rqvUDoVXDdVrVaqhKA\n1YtBFQEoVqrdKlrmFWUme+sTg5D+wJO/58egm62GbY7Z7yTIZZIQP3od+wRv\noOsZX1buppt6+51v7x1t+T4Xt6JoOo9isgRsmlZ/MA2YWPGSO1GnRpHDJeDX\nHi9RM+vTozW/e4knTiGlzi5Msgh3wWo8y9wU3IXB3mCuk16U4/GzmDsawP24\nhjBZ+rl3xYSSl840PclzQB8yq5Rj6DIptbIxc4NexUsH6rA4mcUePoyJmGUB\nAzH1LLecJcEEP2hHXkwUPEjKx/G5DygsicKRVpM0ZjZSEirsX6k2JCI4hkQX\ni+qOVwdoTcBur2hgl1IiSNy9AcGv+itY/ANCE8x1DhQV9/pgjCWYtGj+XQx4\ncJFIGP8VDf14l/2pWe+rgeQMvsiiwB4T+/rCSnefu7z/bVcaxOkGjCiofw5+\n2mPfo4U5/tPZBNbPa/xrdSCrOOPnSkvdLVjrJigCMwWnfJ5+2B+ye9FGaIYT\nrP7OlTWR7Z4smThmhGwbuTw78t85FBSC99ft7dQJhe7vwwi6HNZ3ZXhtw/dn\ntQ4ZiifXllNVKn5ksOmP00+xDbgrPVNkWuBcz6p3+XvSSFDwrxIuFmGbYQyJ\n6T3gbynk8j+35CElakABQnBivC3u62fxQYmsGpDQ8b46LxMYwUkFHb19m0iD\nX9wW\r\n=5uLy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"ad0e510be258ecefd3b896268bb1b5b7afcb31b5","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^2.1.0","@humany/widget-ui":"^2.1.1","styled-components":"^4.3.2","@humany/widget-core":"^2.0.6","@humany/widget-forms":"^2.0.11","@humany/widget-plugins":"^2.2.3","@humany/widget-routing":"^2.0.6","@humany/widget-adapters":"^2.0.11","@humany/widget-services":"^2.0.3","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.10_1619510933084_0.3006787664785877","host":"s3://npm-registry-packages"}},"2.1.11":{"name":"@humany/widget-conversation","version":"2.1.11","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.11","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"d5f5b9d021e5bbcef12e7b2ba1ec96d6556006d3","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.11.tgz","fileCount":165,"integrity":"sha512-dk77Tl1vpLt5RX1Y86sN6RlmmJ/8rsnZszb9OfeRR96Qs3Pe3LQ7WVcxO97SiW9ke8tnO1Tvib5keI6xbstCbw==","signatures":[{"sig":"MEQCIFYn8dTpcIDy8FYqouTze+FMh2rhW2zFAAkuwGPZQnNsAiB/KoQ18azMVnia53P0nzsWeV3Hdeyc0nmxaxgXqqSNLg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":294042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglTM1CRA9TVsSAnZWagAAm48QAJy/Aq+hHF41+JEuEycW\ni5qLc7iVqpeEcMgJPMX3KZfcwzevcZdh0tA2q7ev6td/7QG2Qtub1uKoeTL+\n9NErNvNd1Fb4PBofqHalzoZl0yiLG8uEZvECu3b8qttnMhICnlyXZWmFHgrK\nzYh09EU0ENobsLG35FZfFoEQ3sE1lFFEX/30osQ+Hvss0TUqfpy1k99ZUxu2\nCK2L9BojZ7QYwAEnxX9O+HFQpHVnBzDtOE+nr61ed40EMaQTS3NtAIL52tWZ\nAtr2nxl4hyR88v/vwUvAHRE5IPgisojH3B4IlrKR1M6aUyHFWqpAVmy8WuMB\nIJw6Imta8eaAIdKeNlfW0cV0czey8jkT+8KpDUcrq5tp2En4hWkoPQNIpOI5\nOceypJTCabz537J+dp4Kn3ZaYllu5vB142c736yLpJLWrlSnalPVRYVC9aOq\nAmiN0z7qMAns8on/ZEQ9V+wymWjoWMtnh+NmtcC79XZY0cNhfmFlsgFqmKmR\ngzjEr6+S/mf1JV6IcoxBkm/R9mZJmBizKOLG7TbZjFy3BhaAp4JjThLXC0Mt\nSdDyxdauKTL1aqBIRf+W1HyRBZ6X9Hj5fw88Hcm5hVy84+XZbsucb1AzD3IX\nwk2uZpvk8hIiaN5YG05DpTjzveLLcveb8zH5CF9MlNXjrqukkEPvA3Rd8AGg\nNCuT\r\n=e/vc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"9c9146c5039614b8611890b4d1e1744a07003054","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^2.1.0","@humany/widget-ui":"^2.1.1","styled-components":"^4.3.2","@humany/widget-core":"^2.0.6","@humany/widget-forms":"^2.0.11","@humany/widget-plugins":"^2.2.4","@humany/widget-routing":"^2.0.6","@humany/widget-adapters":"^2.0.11","@humany/widget-services":"^2.0.3","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.11_1620390709401_0.0018935096557333164","host":"s3://npm-registry-packages"}},"2.1.12":{"name":"@humany/widget-conversation","version":"2.1.12","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.12","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"235c4121de8440dfbbf1d72689470e40dbfa49c0","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.12.tgz","fileCount":165,"integrity":"sha512-agEWbDfPPBl1rirYW1Jmxc9oZkSvtlCuX3wwosWwSmyFOZu6v7FsH/g/Lx1E7bA0o8fh1tLFqw52quV9IVgAQw==","signatures":[{"sig":"MEYCIQDty2iqfsGvUpnxEpnYKu8CrYALVkUMJMKO/ew6s8zL8AIhANHHmo0yCNW8VInyUrr/NS+iLe+cvRnTgJlsJFsjHH3d","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":294163,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrf6ACRA9TVsSAnZWagAA9YsP+QB5RUZMLRwZswMNgQxa\nfgtiCszdP0mKPHK0RRHdDQgay9LsPGBhjhpkSu/pV+V4FeNeC99AJ1FphIXj\n7s17aO9JzC9l5XNZ9ndYm1K5ZjnMYOMUiniq2F8aN2jJ+Q3fY37Rtzxiu8gY\nM+yOgbs0xov2tBLejuCn/A5ndyl6tKddiS7fcY+xRmfia54AijNhO+OuNU2J\n0ZRiUw6YxhwfcYC6IzWvZmcmi+MiTVrsPqCN7kJKBfvONkCKfV8h7HqqmMND\n7UVxBTcwqpUeOtXLTPN7LAfUtoGXY4zJnwZpLn/43iERKosm0carYqBwT6i/\neIGdUwgsglvSxbvO6xy81zcK7scm3sbRmle9a+1CwMCvbqvKnsPMK35vVcur\nt/J+GXUjG1GygVkyaZ2lClDpPMJ8JxWxxh8qQYPHeLNNBshPOmvQerGP1MyD\nB8XMxfDq9fLGvPmMszo7CmwWbgXVWvCzPVW3GHe+ieN+hdQNjZ7kKIR80ytN\nH3hXUCUIECbV3/r28GLDFfEJ9zQWWiPO8DQPshvRoncMtcKwR8jmKjgkq5Pj\nsHmlPTQsc7KyVa16722PPnurR+x7Ikj4gxFqImQbF+OhUgjggEKjmcf8LaTK\nTA0OrSHqDFK0XSOtrDbecMhFqZJBqNoPbR7ZtHTD3PEA+dH1xFiynnuEuVrh\niyb6\r\n=WCKD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"d54d75c3bd84a06be17f9238f779e6f440f2e1ff","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^2.1.0","@humany/widget-ui":"^2.1.2","styled-components":"^4.3.2","@humany/widget-core":"^2.0.6","@humany/widget-forms":"^2.1.0","@humany/widget-plugins":"^2.2.5","@humany/widget-routing":"^2.0.6","@humany/widget-adapters":"^2.0.12","@humany/widget-services":"^2.0.3","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.12_1622015615980_0.517883895322717","host":"s3://npm-registry-packages"}},"1.0.0-beta.34":{"name":"@humany/widget-conversation","version":"1.0.0-beta.34","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.34","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"ef1e4aab4bfdba9388f42d72424c055fc183f3e4","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.34.tgz","fileCount":75,"integrity":"sha512-UYR8Er9JJ8SB3zYTPGirBX+uhx5+HfITjIJCBnRxZg4OlYx9rrNIWyQ1LuwUqRZ5q1h8717XlTC0xF9+p/ezhw==","signatures":[{"sig":"MEUCIQCUbg4J4NlzJZCMkY//gNbOqOITRjhqMG9HTqPJLxNpXgIgTrB32o6O/lrh6wdr6nqU5K0hD8YfxIIUrLkrOnKsfS0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":134552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrgFoCRA9TVsSAnZWagAAQ6wP/0AYuDft6oCPdilhtnsK\nFgF4iF7bYqs75TrqsW4+2vL3dZCDhtYZMbk/HKt8YVShaAiB47W7QWGOyNrt\ncJURs8gPqN+cQKBxeN5+OAUDr0J/Rv3wHMvoa0X+rm18nDTc36PgSn58BEMO\nh245JQ8mtnrWB5zbLfmOgG0z56RooXkiveusHZqya1lNCXOS2qO10q26G2Qu\nAfvGhzGqU6MPdCcZp8iSOzgJoxR+r1/+zeB+YwMXnjRqgBAO2V4tdIec4eso\n/Q9rOXgHh+fjRo/Pv40xemClFxTilKOsrjB1XduvBlvZB2TUkwnXIGusJsB7\nBcT/sKSlwkgHll+QjLK4SDRHjJzLrkf5GGYoB4h+8reqNEnIzDwbwcuPibFN\nCwNAu9DiWAEJGkKf2WMIGHM4mR9Z+vSbcI/F/AwG8tlPXEYc+Td083TUr1sg\n2QjLgFUUk8L4fTd6Y+br/hvnD9YejuOEhQGj4Nv7ur6U57I4YKUjPyXHI17g\n/yA8nl8LuJk0g9N0TMTRFztFKt+1ytUgjjScXP6FEYwap0Ug5Yzp0QrBWaZw\n6PThJExBbxPwioj7KVxQTS+XQP3exbqdHSNMp06W+0P2JuzgUBcV7/8KAvhV\ntTeJ+AbmIZLqWtSeJV381x5h+KssA5qBTrIbthI9we2vUVQaOSztrrBnbEZO\n+Akn\r\n=uZ6w\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"80d5ef82e177e50549c52f7f235b13a2ff28ddee","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^1.1.3","@humany/widget-data":"^1.0.21","@humany/widget-forms":"^1.1.6","@humany/widget-adapters":"^1.2.6","@webprovisions/platform":"^1.0.4"},"publishConfig":{"tag":"previous"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.34_1622016360075_0.18746177318631507","host":"s3://npm-registry-packages"}},"2.1.13":{"name":"@humany/widget-conversation","version":"2.1.13","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.13","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"4023c415e9e0b414b9a6b50ef02431b34b3b50bb","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.13.tgz","fileCount":165,"integrity":"sha512-3Xumb3ron3Q8PlCOZ+j7teBM3kbf2eNC8GvnpXmV0Z/p+WJL4d2bkVarGknoEK/kPUlBfaWItWtv3tHdJqlNaQ==","signatures":[{"sig":"MEYCIQDAEGff0z/IRoaMo/2M741rtWZrSxLouFwHnYH4kHHHwwIhALELkRii8cRmBr6s9U9vnKBhslMbqQ5UiEJ1NZ8AgokC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":294163,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguM0oCRA9TVsSAnZWagAAirgP/3/9RggCHvZkXH4iqJV7\n3DIT/lIHsMZIVsyj51eLj4DuXJsmm+p2ToPYhgTkxKqlZU84FMRblBRp2yYc\n9NGi80vN1yQ92kO62b8IjXbDPnjxnuVv+tMizS5B8Ya2QIqPFnde7CmMHuDi\nCqYoV0GqQ0sZjgfRXovFTpqO8Ltr+txhmWWFtASea1HqtQxREoRp86ywtAuB\nX7ue5ACREbpPnAEVmZSuD6yqYT1eayPASQyKn6k83khmAmfYa6XDPorpnNGz\n4N/EeWxh11aPbvm+E8p/nQUI5DzSwymiGbyE87bLFRy5CEj8yIlG1eESI4VX\nMgJqTjz3qZiBYlWtPjc+M0af1XK/pu/fy5K0ruVpU+Gwa8tRvrcoxSSItC4Q\nXLkyaH+s3V6EW2Xnp2KKyPxp0y+2xR43P0fgpDaxUckeV4hRqhAsMfrddVNP\nYtHqu9C0gn4BWZ2a2NvNR/ivY0UXseSZNuVRllJj0gGbBH0NygXT49voxOsj\n9sLh9dJF4RJ3wxkvRy+mRUsVIfqQ9xs88lRoDpaByeEjS2PRgSJZlpxITtKC\nDMTK5HY00oyVy15J0enBvz4Y/RWUac+vvpxHpX8ilz7/HXAPgZUIP2OhC2W9\nqrxegf9ygs3VZRPfJBfxbzUtFnqEqS1d6sfubi/796yZt8yVDkCiQOzhl1MO\nZM0E\r\n=fHYv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"b8fb08197e3a3d2c2729f89c3032c4bfb9d05436","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^2.1.0","@humany/widget-ui":"^2.2.0","styled-components":"^4.3.2","@humany/widget-core":"^2.0.6","@humany/widget-forms":"^2.1.1","@humany/widget-plugins":"^2.3.0","@humany/widget-routing":"^2.0.6","@humany/widget-adapters":"^2.0.13","@humany/widget-services":"^2.0.3","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.13_1622723880062_0.6677964308064976","host":"s3://npm-registry-packages"}},"2.1.14":{"name":"@humany/widget-conversation","version":"2.1.14","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.14","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"81040371f48d03c8da14f3f95aade2b163d1c822","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.14.tgz","fileCount":165,"integrity":"sha512-6hTd3cB+OFZ5q5HDAdlSnE+ZY6V4yOVGR8RM97DyhHByhGyl1eUWP2mdvy6Y/ocpag6V+E/WBDgQXFtZen/NJw==","signatures":[{"sig":"MEQCIGO22N1+232fCYS+bcKFzuFWqzpnW7wJS/5XUbIFwGHaAiB5orB2yI7LvYrygF4OfyVf+HpReljX16kjZjZPJLJFmQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":294163,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgx2AXCRA9TVsSAnZWagAAu+wP/i5hwmuVa0jfY5Vv9G4f\nLD3I/u7f4XJEsuK1fYME0Rtj0sHkIlMNPNtHHte8c960wGq/zi1DvRUomQDe\nbxjeNTDHJ7C9nItkfqHBglD+ah2VmxaDvJcHUHUDNEqUvHV4ksV8CKz51tDp\npVb9GxEPKNCUJf+ZA44WPNdPyoIBj6jicGn8I1wnR6ghOX9I95Ui4FrnKh0G\nnpzQ9Lq8t1XsR9c9d3KQECdKT35GN2S7Ue34SlfMOc5RDilUa+dFB8mYx1+W\ne0Rivx30M6qgw5GBriS+Edo3JTnpQfbwX97FTBSrsgnIeU5tMt0/zrBiieZH\nvu/KNUp1ASjyTFmavQb/AhaahICBaJfcCXK87zYBpF6NTemCkjlnMbe1nopk\ngtF25g1vz81Y2sbU94bXfgEPtYyhLf1/mkZ3kN/uzlnbA+vQ494ObmIULWBr\nMwYx6uLoehKZ7Vle5nu37XstSQdETpNCXqIV2gSZSH/AMFbveyHEmtTIbfly\nEo5v9ZvU9R2DgRDHqo0B2GDwMSbVGynbWKRkSbK79VzDtkccDHPFCRdNEDYP\n56XqZEGqhpsxeP6BzovXhx/QySxxG04FB67wyzWyX3Wa4ISzexCz5zT0LSnZ\neg8FEnN7Vz8xaf9G5h0synOszw2wJzKT+4+kihOrKhNDTvom3q7XiwVhxZAx\nLUiF\r\n=jJM7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"3e4e350b306eb7aa6c62c3198bab41f290645014","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^2.1.0","@humany/widget-ui":"^2.2.0","styled-components":"^4.3.2","@humany/widget-core":"^2.0.6","@humany/widget-forms":"^2.1.1","@humany/widget-plugins":"^2.3.1","@humany/widget-routing":"^2.0.6","@humany/widget-adapters":"^2.0.14","@humany/widget-services":"^2.0.3","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.14_1623678999425_0.7698504250192801","host":"s3://npm-registry-packages"}},"1.0.0-beta.35":{"name":"@humany/widget-conversation","version":"1.0.0-beta.35","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.35","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"70a2046fbe54c37242b095c89088c20ba37dd34d","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.35.tgz","fileCount":75,"integrity":"sha512-U7Oxg/oHfwbR1nkDbEJ9sy4L6A4o4bw4TllOBUCyxlp7Dea5iJBfE3JpWjg40HWeeQexWjb4aVfpTUPOdDC9Fg==","signatures":[{"sig":"MEQCIEwAcxlUlSoeQfm28G3FStkQ3hH+PNyKgz4oS5J5kOKDAiB9ukFjiVxTdis9G+D3wpWVyE1AAZYy5dyP84s3EGDtnw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":134552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0X8hCRA9TVsSAnZWagAAEF8P/jXOiCD3Qfwl0Hy0vd7F\nlHfRvUxXZZ8h++zGkPnbx6KIyATsJnZvTLk6h5zlMrvFY69mPPIPj2cHHXM6\n8cA98UNWED6J/DK6RpUtug8sE//yJ3JWgiPRHgic0ifQHUNeF4/igN/1r3lX\nvFkyzdTgIBi2jcYKe1EUuYs+nrkE8JY6TNjtD0EuNhkU97utn8KDSr5GpwWq\nGK1jQCW98PyuPYwUGAwqBGlnHg9NQkn8Icrbvy6VNvQddM8zJPMrhTz4AO3S\nKZOhUQot1FzmZ1fORJQKurIkH13yL5viKdD6uNxNVODQ6WlFiM/dGyVPjYr/\ngoMkFHpz0wfFynnFTCbtHtxkdTR3W1geAdhSXqVXIKedqmlz3Ultr/ANDEcC\nf5eMHXousius35Sqh9ENBuNZMv6vrivtzb5OUbBWk8e8/wK5azPOfROfBSfl\n3ccZdnW7lDTWyXzWMx+GL0Ts76NwMrH9AMiaydS18+gOKacjgvG8rts79RNq\nlkqhRYsIVHSfjqG0W30ebLoizbSxAt4R6joC7vNLafmnhlb1170g9UwVfBBh\nEDYGWRLBlumRoUtdESie+QpB94E9bJzgFW4EgHbke70KDwP+IQaMTEd+ESvB\nq1xZt9UR//tTaoRsyZkqfpj4cx98H2J//MUFqOUfXwMW/MPh/9S225fOINgS\nXz72\r\n=kkk+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"65ba6a8093d1d650642985b8d4be525c470b88d0","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.19.0/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^1.1.4","@humany/widget-data":"^1.0.22","@humany/widget-forms":"^1.1.7","@humany/widget-adapters":"^1.2.7","@webprovisions/platform":"^1.1.1"},"publishConfig":{"tag":"previous"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.35_1624342305288_0.11664551532887701","host":"s3://npm-registry-packages"}},"2.1.15":{"name":"@humany/widget-conversation","version":"2.1.15","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.15","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@humany.com"}],"dist":{"shasum":"460ba706327822d81c7b2d9a79b40baee48ce875","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.15.tgz","fileCount":165,"integrity":"sha512-tmL4/tN0JgrTHTlnV2jleEeD0eYHnz73w65y7FaAnH8+XyQyON5ebR2EqvMLH7pAykSB1UNW6/0p9ASWQO06dA==","signatures":[{"sig":"MEUCIGWHsvpgREyMijLcwAp4ciBINMt12816Y6NM0QE7lPKTAiEA+UUiJ4wrN3b/G1j6gUY/ARURKWojmRj98fO9Gwfw4OA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":294163,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0YCaCRA9TVsSAnZWagAA4YgP/jgO/paXDmtpDwOhihXF\nuwEUS328ysdhpKcPtMmsFWvJiG/KW6Fx2Z4ylP/G2V0vzH4E+n+nrVqqZ8Gy\nQAA3Je3KhMQ8PPqLzylzRh4ASiYePAJZSK9lrbCHWsM4RpKo28ViDSIOn/kw\ncWpI0z4zhldn3GqEL3MvYsqhPhHkGOWQ9ZGirEiK0809s7l7kQySg6vcamQA\nyPjjJ3LCTtVBAWE3FnzTDPUNwwJVYfyLq+OVddjJwNygSVn3ARsD3KmUw57B\nQAnZXPys6HTBpfGwmORVzjgL/ZlHfZ50h00UcFylVEK99+SoEEtpaIOwiiU/\nIPK9JFXts+x4Uqn1FWoCtGJmauPw1TzCM17ZgnuNyVFISOlEFBqQfLeAGj0E\n9l0pFPDBbyyBNw62nNrn2YSKFDSZ2oCCgRR+iw6/8Lk+xSoVv1XYkjvEGaW+\n2q1upxtO5fxhnMj6D0t4z+BBagCwDjsvxm6bfuHTw5Ni966Irq3rNMZq9Wa6\nJe9Dew3+h2HWIApf2cOZlh10YzgVCgUTqkpDgBqnzZuMsyxpiFIxUHoQ1t9R\nB2NtLifztJc4CuaWJMOha2PC5+rpS7j1Su57bsXJWBBaBweQ3ZWWrruKfEW1\nLc3om8qDQKk2ddGpvQxPIqPPVOddpePSFhgPQraHB6ReOGAmEnnCIUq7HTrT\ncTjv\r\n=uusy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"1979cd811928325ee4a347ef1b92719244935db5","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"bratn","email":"andreas@deckhand.se"},"_npmVersion":"lerna/3.18.4/node@v14.15.5+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.15.5","dependencies":{"@humany/utils":"^2.1.0","@humany/widget-ui":"^2.2.0","styled-components":"^4.3.2","@humany/widget-core":"^2.0.6","@humany/widget-forms":"^2.1.2","@humany/widget-plugins":"^2.3.2","@humany/widget-routing":"^2.0.6","@humany/widget-adapters":"^2.0.15","@humany/widget-services":"^2.0.3","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.15_1624342682278_0.29949333627013797","host":"s3://npm-registry-packages"}},"2.1.16":{"name":"@humany/widget-conversation","version":"2.1.16","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.16","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"cristianlibardo","email":"cristian.libardo@gmail.com"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"da2e719dcd456c9da98def80b5f6fef241c6db27","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.16.tgz","fileCount":165,"integrity":"sha512-AAuXp4nL74aCurwDbjH12qKyNi4Sum0q8CggfdLIwsVA02IRg2c2/9alil2//4DM5uWhFZ3841C2TFHpmiH1gg==","signatures":[{"sig":"MEUCIQCJLeOtZhS2WTBkAasc4L+Ype/I219hTsAz002iGIYBmAIgHo9/KLPQOAvjfcFyWjrA0DNKpnEUhIcpiQe9A4VFw1k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":294160},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"dc32f0058f8f628d9a86e5867ead63f48c7791bc","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.18.4/node@v14.16.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"14.16.0","dependencies":{"@humany/utils":"^2.1.1","@humany/widget-ui":"^2.2.1","styled-components":"^4.3.2","@humany/widget-core":"^2.0.7","@humany/widget-forms":"^2.1.3","@humany/widget-plugins":"^2.3.3","@humany/widget-routing":"^2.0.7","@humany/widget-adapters":"^2.0.16","@humany/widget-services":"^2.0.4","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.3.1","tslint":"^5.9.1","ts-jest":"27.0.7","@types/jest":"27.0.2","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.16_1635319498405_0.9508611619798317","host":"s3://npm-registry-packages"}},"2.1.17":{"name":"@humany/widget-conversation","version":"2.1.17","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.17","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"c61a96c05debeb6c5b2267509b15e9d35b3e2c81","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.17.tgz","fileCount":165,"integrity":"sha512-J12gWNj0tw5lf587i83Gza5t0eZMftZ7uycvxos7qTRi9SEuL4kHqPJxzD83elpxMsDjG3KxxqfkA+jkrHaZgQ==","signatures":[{"sig":"MEYCIQDPQwF3mDmt4WojASd+FPPXX4ztvFwm8rsIU+B39ji2GgIhAK34hYVmlG679oPKvZpoLjfSR6Ki7oRXjelqRVOw92GX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":298225,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhpMOZCRA9TVsSAnZWagAACgUP/i4lTxC7hE3GD36wUoi9\n1cSkydL1aJlyuVQvbcJMmly7o1CRBidJBSd/OkjqsnuV0gaUakxldkKkclth\nmvnPfhxrHJN7P+Wedr9uJC9QQZ4buOBWJn8nHDaiScd44wH33OHpcYXMbcte\nGv7Omotfo/HqZPVmheXESziVMz6xeZFvPQ2ExiBCJPFeA4Ft9/WtCD/+BI54\ndeCAvx7r9uZzaBQoI7T87lw6SN0pKLR6/XhPDEzNBsWdwwKgw1Pi5447urxr\nI0pn9LETTsqccXDhjnaZQCTAbgIPGyceiBO7gB4HCoHLZzHdQg1I7Ff60lNv\nd/YsmKaP/accQe+qeZIGDab4a6Pw8qScQfL0TJuJiRxyTg62nt+LtlY5vjBu\nHaXFGgHQD+k9v5VLwCwcW6mTqBAwtXjvIxGN65PacBsWd75L9kKY2vH7Cjis\n1Yl4QYUjSM8kfl0/odCqDtaUM7R3VeVyuYjW99TQtSS9QxYEB96rzn4/RvX3\nmBBFU+cZxGDUnoxFqVKjU6rtNCwXSZAANtHJODqwtUpes8ZfwnMabCtZFuQ0\nQEJo4Ihhcas9VNgFj8k3WPZJciL8EGa/MDe9jCiz+k1aQ2Xpcuez6ZGtK046\nbXQQGZWHrOmYQaaeFV1KNjYd8vHLC6LwZmW7O+Y0VAOfDcvn/F+qNbdytG54\neXj/\r\n=TZHB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"0b51cfa3d9b55445831a8fd49a350df58ed7106b","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^2.1.2","@humany/widget-ui":"^2.2.2","styled-components":"^4.3.2","@humany/widget-core":"^2.0.8","@humany/widget-forms":"^2.1.4","@humany/widget-plugins":"^2.3.4","@humany/widget-routing":"^2.0.8","@humany/widget-adapters":"^2.0.17","@humany/widget-services":"^2.0.5","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.3.1","tslint":"^5.9.1","ts-jest":"27.0.7","@types/jest":"27.0.2","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.17_1638187929395_0.3395323132591037","host":"s3://npm-registry-packages"}},"2.1.18":{"name":"@humany/widget-conversation","version":"2.1.18","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.18","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"75d8ad4851bad72d5e7a3b846520b3df082c4a09","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.18.tgz","fileCount":165,"integrity":"sha512-XqtwOxYxflVpvySVW0ayfKNzzH7ZE4ofQRS1w+DlA+txL7vuQXTAwZGSuDJ7WPPFFbGDtZdSLPPh2SkdZYsOww==","signatures":[{"sig":"MEUCICUXjBUSR4mr3fRu6f7Erc+GN/62KPvArvdd4861vCjAAiEAhCbtrPqmlZpj2CEpxYeiREzMbD+UKUPw+GfRoxC4HQo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":298271,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhwDpaCRA9TVsSAnZWagAAy5oQAJbogoqDjdspAwSGcS6R\ngaqPAswF0k5z9iy34QCz5PU0OqyMM5BBYBqImISz/h8iBjeFM0sywQ1Syifo\n8G+kuydim1Kdcvme2v11gr3X2qqOAZbihJVDaGlh/wuhieb5Hdhcco4h5ry/\nGP3pRkMN+HrfjpfHSH8g4G0wPsUEzQf+4ari2LcMi+mhtBN8r1mRP+4Q65Ey\nBG1AZhTyTs8De6QtfhIyObVQf1e7oKtHqAgKWkYsDpajxpon1D4i+/sQyuny\ntuOJ0OZsAyWUAPRbI179izBMGIl3G7xtVmGAQZQgsjiUMi6eimw4IzD3cVBL\n6P4ki/bAtLbhTBc6j5u6ddGtz8xf0cchfKY5PoKn7Sl09kDPox5PGGYCcl7S\nUipx5/JMIHR0V4ymOv1O7UuS67RpMoetkfkVRG8Tjm/ljtMUmqhFTF5Lcdsb\ngh7UhFinctRnFW8hgQozYWNWyQcMwZqmwWrcrA4CtcHHdedR63QI8hS6kcyS\nJ9OOh6Psi/NZldKb/NkAKgrJpDicdREEiVe/plp4x5MYubeqNg5Cn7obGx7p\n0dPnDz8saaSKvb1AZ1oo24AxGYqRGOrcvhq4qnSF25MsH1AqZvifT1Hdkog6\nPoBwdrkJy+CrHy5/l7F+GYixMK040kTfUdFY5+3Df1KVYhvu2dGF/U83yEL7\no9+7\r\n=cY4P\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation API\nThe Widget Conversation API provides support for reading and writing to a conversational component inside a widget.\n\n## Explore the API\n\nYou can try out and watch the Conversation API in action by clicking the button below.\nKeep in mind that this is for demonstration purposes only and may not be best practice. \nWe do not recommend binding functions to the `Window` object.\n\n[![Edit elegant-jones-rnyrd](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/elegant-jones-rnyrd?fontsize=14&hidenavigation=1&theme=dark)\n\n## Accessing the API\nInside a plugin, access the global instance of `ConversationPlatform` by passing in the current `Container` to the `getInstance()` method. It will return a `Promise` that is resolved to the `ConversationPlatform` instance. On the instance, register a provider and pass in a name and handler by calling the `registerProvider()` function as shown below. \n\nThe handler function will be called once a conversational component for the specified provider is activated in the widget. Use the provider to interact with the conversation.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const platform = await ConversationPlatform.getInstance(container);\n\n  platform.registerProvider('my-chat', (conversation, component) => {\n    // start interacting with the conversation here\n  });\n};\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(content: object)`\n\nReturns a `ConversationEntry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = agent.print('Lorem ipsum');\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Messages\n\n#### Simple text message\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('Lorem ipsum');\n```\n\n#### Message with list of actions\nExample of how to render a list with actions. Is only supported on `Agent` and as system message.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the entry.\n`body`|`string`|Body content for the entry. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the entry.\n\n##### Example\n```ts\nagent.print(\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Message with a form\nExample of how to render a form that can be handled by the `conversation.form` event. Is only supported on `Agent` and as system message.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the entry.\n`body`|`string`|Body content for the entry. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print({\n  title: 'Log in',\n  body: 'Enter your ID to login',\n  key: 'my-login-form',\n  form: (builder) => {\n    builder\n      .createComponent({\n        component: 'Text',\n        type: 'number',\n        name: 'id',\n        title: 'ID',\n        required: true,\n      })\n      .createComponent({\n        title: 'Log in',\n        actionKey: 'submit',\n        name: 'submit',\n        component: 'Submit',\n        type: 'submit',\n        evaluate: true,\n        value: 'Log in',\n      });\n  },\n});\n```\n\n### Specify a sender name and/or avatar\nTo create an agent with a name and avatar use the `createAgent` method on the conversation.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print({\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Writing system messages\nIn order to print a system message to the conversation you invoke the `print` method on the `conversation`. The `print` method accepts the same arguments as on the `Agent`.\n\n#### Example\n```ts\nconversation.print('Lorem ipsum');\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loading()` function on the `ConversationProvider` to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\nIn cases where you want to notify the user that the agent is currently typing, you should use the `typing` function on `Agent`.\n\n\n#### Example\n##### Loading\n```ts\nconst done = conversation.loading();\n// ...\ndone(); // remove loader\n```\n\n##### Typing indicator\n```ts\nconst done = agent.typing()\n// ...\ndone(); // remove loader\n```\n\n## Reading from the conversation\nThe second parameter to your provider handler is a `ComponentNode` instance representing the conversational component. On it you can read the component's properties and react to action emitted by the component.\n\n### Actions\nThe following actions are emitted from the conversational component.\n\n**Important**: For default actions it is important to call `next()` unless you want to completely stop the execution flow for the particular action. Not doing so will stop any succeeding handlers and may unintentionally break functionality.\n\n#### `conversation.user-typing`\nIs emitted when the user´s typing indicator is changed.\n\n|Name|Type|Description|\n|----|----|-----------|\n|`textLength`|`number`|The current text length of the user's message.|\n\n#### `conversation.user-submit`\nIs emitted when the user submits a message.\n\n|Name|Type|Description|\n|----|----|-----------|\n|`text`|`string`|The submitted text.|\n\n#### `conversation.action`\nIs emitted when the user clicks on an action.\n\n|Name|Type|Description|\n|----|----|-----------|\n|`text`|`string`|Key of the submitted action.|\n\n#### `conversation.form`\nIs emitted when the data of a form is changed.\n\n|Name|Type|Description|\n|----|----|-----------|\n|`data`|`FormData`|The form data.|\n|`formKey`|`string`|The unique key for the form.|\n|`actionKey`|`string`|The key of the form component responsible for the change.|\n\nIn order to subscribe to any of these actions you have access to the `ComponentNodeController`. Below is an example how to subscribe to the `conversation.form` action.\n\n```ts\n  component.actions.watch('conversation.form', (input, next) => {\n    return next(input);\n  });\n```\n\n\n### Submitting forms\nIn order to listen for form events you should subscribe to the `conversation.form` event. By passing a `key` to the form, you are able to target the form in this listener.\n\n```ts\n  component.actions.watch('conversation.form', (input, next) => {\n    if (\n      input.formKey === 'my-login-form' &&\n      input.actionKey === 'submit'\n    ) {\n      const username = input.data.username;\n      const password = input.data.password;\n    }\n\n    return next(input);\n  });\n```","gitHead":"60b3a16fd470f30ea6ab399b9fb533e19215f7d3","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^2.1.2","@humany/widget-ui":"^2.2.2","styled-components":"^4.3.2","@humany/widget-core":"^2.0.8","@humany/widget-forms":"^2.1.4","@humany/widget-plugins":"^2.3.4","@humany/widget-routing":"^2.0.8","@humany/widget-adapters":"^2.0.17","@humany/widget-services":"^2.0.5","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.3.1","tslint":"^5.9.1","ts-jest":"27.0.7","@types/jest":"27.0.2","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.18_1639987802242_0.9570302264488526","host":"s3://npm-registry-packages"}},"1.0.0-beta.36":{"name":"@humany/widget-conversation","version":"1.0.0-beta.36","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.36","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"dfcd322a4e5d2dc530c1cea575df7940a9c7588d","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.36.tgz","fileCount":75,"integrity":"sha512-ylJa3aaqmU63kF8qJYRNi3OOk639aG46tLvh7dggHXkdgsGWrBfoGZjPhS9johj57NUcouS2GPF9fiVFz9niTg==","signatures":[{"sig":"MEUCIQD9eg8AKKn5LaLqzUCFTjgJKDqnJd07mK4Sevhq/7apKAIgcM/e0yYyoijcZinemvnqHe1RzOQdfS9evt9zs16hqjY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":134552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5/nDCRA9TVsSAnZWagAA4r8P/AhRzYfsG6ooC2kk8gOx\nI3SolgEZuZSVhblDONG3xCzWs+qULC1oerSJp372wMDHA2vxUUOtL6i83St8\ndW+gNz5oJLX2mpv5tbd0dXCuiw+bgOSmdJvh95q6ncrswfhbPQrj3cHmIp5Z\nLrG2BSszKDsr8dzULkt79Ze29TFr/2BrgvqoQTN5u1L3WFw2S5/OvJtraCby\nCGTcagLiIeCNu9+af79XGjLgbn7wDhMA0bLyMcXsDYHgEANFmW3ugg5WOtxj\n8KaqHzjPcKkKqpX+xSMtvstXNRYP4HZtEeQtR72pDH/1dD+U6sfCprsgsVy3\n3v1H0f1c97nBKEyin/BM7rdIRCnW/SvIjn2rNLrcJ+8o3mwNdwHMEYqoyBVO\nF2RpfeGVIKokMNWVno8mtmvYiF/UAMea5PMLWr8/7zm/jRZ0XrjndCKVoHfn\nFwMNg6hGnHmpE3ZJAqIeigm4lt6djU0O9sUlyI93BP3HN79E3NotW0aAhQiY\nY6NA/0cx/ZNlC6e1LHI9wDBpU8NO2iGCtyF/KjaBbqr0OkXuwBOQd0h668PJ\nwXQGDPqHYfgFWQTSQEL+/zKqKKmGgOM/4DObVEwKvUpXdMA8YGV81BN7K3Cr\nUSgim9hzI20pHxGodc3P9tl8zRaLjWslT5f05+5qVXvaMTkzNgjag4CZl8r6\nV8E3\r\n=2bH7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"1d2b29398879f802541b6f48bb4ab5031053b7f2","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.19.0/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^1.1.4","@humany/widget-data":"^1.0.22","@humany/widget-forms":"^1.1.7","@humany/widget-adapters":"^1.2.8","@webprovisions/platform":"^1.1.1"},"publishConfig":{"tag":"previous"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.36_1642592707305_0.6210676202763026","host":"s3://npm-registry-packages"}},"2.1.19":{"name":"@humany/widget-conversation","version":"2.1.19","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.19","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"43ca1e9723ae88c62142c327dae9f03cb911a447","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.19.tgz","fileCount":165,"integrity":"sha512-zhLgJtZzbPjXd2GeAUP82kKFKHHp6hjVIBbQz1YR0y+T0RWLVoyeDHNJkqQONOdsdRfx/TE527FITQuemo/t4A==","signatures":[{"sig":"MEUCIQC8Bg7od4PwxVOVAYHcNAtt3HhJa3IMxQCC6w8/AMaoTQIgWz0+WrTPEYpN/4sb0Hr0tTS2NTOEux8kZHbrFUgDqB8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":299393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6AESCRA9TVsSAnZWagAAgR8P/RZvqeq3onQftPH90GxL\n0LT2e8Ct8OfAP4y2rUSF2bZtrBRoiN9E3mw1qhYII5mR4TqO2NorZ/Eyhj/9\now/MhcMyVK5hfEULW2rteswjyXZI+CIt2JFRLN0H9lO32dnAMcLVKJRtn25S\nNu5mMbmqUFWkbtpQYz5NFpyYzL0/AZzAgVq0Gl4ik1T9asehUhuK2x/85Ais\nI7jiT8dgxXMU+sLfdfrMlaawb7YB/bujt8WS7c4pROj1pNpukUptB37c5JYF\nwiUOR3MbhrHCOTQGglqW8cQjwrDr6k8HO2IfcpRbwKHWBzuo6v/nyKTcjeud\n4vMQNHxqGhgBmuYSff+QLQ9rvhNVsL+fmysqCN33xJp3v5989tFYzcChC2JY\nddRTd1suHIwu6AbWgyRjgsnaek3q0oVUMqTxma5DbWYRjGd0aonr0DnXWTS3\nM5oVFBhJcwUWpIO0RtxkSLLIZubNc7CpmZrCvtwUEGL5fhQVQ4DCq3ADpmnM\n6yJ4+juIVKFig2wU1JZI48/MvjbN9X4AXe7Y2MQfXkAH1Ehpc9QFJZ9P+CpS\ny2amZd1fb//gN5MZSR9/t1hRYxoFKlHhlytgffW4n0IjgasQlFzvnuUgSI60\nn5+1IcE8b5xtPPoVYSBULSU30sIUsBLKogjmAXb3A61RP6WecJkrZhCWvJa7\ngUvD\r\n=PyQA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"d9b7d6a817b7a5d1898739e802589d9105063a19","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^2.1.2","@humany/widget-ui":"^2.2.3","styled-components":"^4.3.2","@humany/widget-core":"^2.0.9","@humany/widget-forms":"^2.1.5","@humany/widget-plugins":"^2.3.5","@humany/widget-routing":"^2.0.9","@humany/widget-adapters":"^2.0.18","@humany/widget-services":"^2.0.5","@webprovisions/platform":"^1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.3.1","tslint":"^5.9.1","ts-jest":"27.0.7","@types/jest":"27.0.2","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.19_1642594578635_0.7347092228804613","host":"s3://npm-registry-packages"}},"1.0.0-beta.37":{"name":"@humany/widget-conversation","version":"1.0.0-beta.37","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.37","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"de7f075cec3d5cf301f592879a2db3a9701e4f07","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.37.tgz","fileCount":75,"integrity":"sha512-+wtI0g+9xoRCOFb8aDd1VNl9ABeE+0VuNK5GkJ25bsSOUP5INTCaJ1GU3zmwqV+mNKxbdLjCaRZxpzJ/lTeU+w==","signatures":[{"sig":"MEUCIFpDFEuAAs1gXfcTIbNO6jnf7pl5ow8XlraQhTFVhFV9AiEAnSduJuxZOLGLTskA6QdsmRNe47sz7WflNlsmvb3IZAc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":134552,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh8AFFCRA9TVsSAnZWagAA1p0P/3Ayo05BKIqVjaXUt8G3\nruMty9RWS17dhlAs8Vm1UD16IApROnL0F9eBIJkI2z3mkpW5DK9S/bKaWbwX\nd0vGe4oOog0I6fyY5p2Z82ZuOhK2eCV85Qv7xFQk8BvxkDuAX2gatJsUanIv\nUyLBgZtLwZn6UA+Plok0CZ+dp8LNSE6uDqGLpFIiFSdc+zI9cVxzcbjB4I68\nDb/6fW/5u6mrRksBzhpzNYFZyXhsZ0yD8h1/jxBHMND3cIYRNgZZKs9mm6QM\n2jR+J7vYpcKfCUj/9vJ/Getf1FPOKKxIUwYBjCuV085uOGxWwuImd8rHArdl\nNk7i7AhVq93YmLIpd57jEQpQQ5/t8YLpFeZT8RzTcsHOBVaVEEkJSam/czp7\nWxMmW24mYG3czSSEIdhwPNk9z0V8kWswi2HVaxFBF2/f3KozvAzgmBo6n3gJ\nFHK4Mb+6V3AOzgbQUaahyw2f0u1FoTEqrdY8Cr5DXWm6jVCzYNKSoI3hbFED\nB4vieRPixzcyGbzAOM3l3E+YycKT9TP07xKR4ymQrr7nUqS/99AQtLAfvKhF\nCioMQfdQgYzFNX/vh8GJlZ6+2qZXqjEduZN9af5FKI/5OlrloXF+Yk1BJdES\n4ZUFHRUd4abqJCo9ONWlzrfDs3/oHwM4yb0GbPSsmZq8gu5X6Rel7BSKW6It\nnrWH\r\n=ecaF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"2b148e9827ee2b660962cc12c62dc57e84dedb6a","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.19.0/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^1.1.4","@humany/widget-data":"^1.0.22","@humany/widget-forms":"^1.1.8","@humany/widget-adapters":"^1.2.9","@webprovisions/platform":"^1.1.1"},"publishConfig":{"tag":"previous"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.37_1643118916711_0.23322352311777994","host":"s3://npm-registry-packages"}},"1.0.0-beta.38":{"name":"@humany/widget-conversation","version":"1.0.0-beta.38","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.38","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"b3ac8c7205146da45718edabb4768c1e86a1e3c0","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.38.tgz","fileCount":75,"integrity":"sha512-TEsL0r/Kgf622kHseQsEbRUj5zJrvuUIbkgTuOo8mDAMaMFIEYW8TTKSASCwzMxVBe3AmCepUYsunKrGoXR2ig==","signatures":[{"sig":"MEYCIQCw+7JWfH9M3GJJP/o3WlTSd6G7krJwnxJ9lighKsOBdwIhAKn0Bo7wszlw7tadSuftqIW2lO+/tcG7lqhZEqZHjId9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":137896,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiF3GDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmriTA/9HRHoi1sePKbo8JOI7jdR07FXbDXQPAqvh5qT32z5R7aDi2Cn\r\nYznPwixufugr5JGZtLiqkwyvJfOEJtEJeX8kGCURWLIfjn/Ad+NLBRjyqJu1\r\nBTQIp2EvMRR43UI8SuwyFRXpJZ4Ld335FMqfPyRogI92vRw523SejkpsC5K0\r\n4IjIot+XS1BUCCTvPC4+0B4+eAgt4cD/LOg76RMz8itMaSR7CTnNt6H0V90R\r\nEauWl0jUCrqOXUyrVHFqr/UrQx5j+zh6lpkcIx2I/29eqpm3T6pxXkRMGYnB\r\nOG0st1WNItoeyI76wgK1xhuXtLJFbZRrjZF+yFW47bCQ/DP+6dvxiX+8GSrN\r\nYtqONVDXDgwMubDtGMtMhbxGlfKGh0VcuD8OHrYspwQHkUeJPbtQWHGz2BsG\r\naI9Eo8w9+ncebWhC8sq4tWNyzjOyvF36/4q7KRweRukc8XFAsdxFHSf8XBlb\r\n7Qw51MJmeR21ewDxTjseLIrEXOsndcyHilgBu6Z+sMT9krW0ebF23n7N8K7c\r\ng+F0jTrOcUMooqv4x2Q1bnGitfCESK72YEXPZmQWAV7xhZovxKS1nTKkyDwh\r\nIcAAGdlsopqZFmLkCi90FHR13GHBFo9HJVcQPisPSnTHrayn7D4JM7rjCJwA\r\nPmew0FlTWW9TQ6EPnrQf2d8f66A4pTsn3EQ=\r\n=ktjY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"ab638af533747ab3ef319d5cdda3e52f9d78d512","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.19.0/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^1.1.5","@humany/widget-data":"^1.0.23","@humany/widget-forms":"^1.1.9","@humany/widget-adapters":"^1.2.10","@webprovisions/platform":"^1.1.2"},"publishConfig":{"tag":"previous"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.38_1645703555285_0.6111722894700828","host":"s3://npm-registry-packages"}},"1.0.0-beta.39":{"name":"@humany/widget-conversation","version":"1.0.0-beta.39","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.39","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"d2896281918f8db19bf9bf593acd6e5e62e48f26","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.39.tgz","fileCount":75,"integrity":"sha512-YuzAjwbYbJx+JXgb/BQ+fLHGGIAIQGA7nVqfZY1CWEq0ahUn3RW36ipyB1yIfHa8UtDUm18uuqZK+XeRX+u2MA==","signatures":[{"sig":"MEUCIG50We0rtduyEkKo6Q7wK/Yv7mBMVAcGc4TBjNXTPOciAiEA4NI8CikNLeH6+5smcjSbyU8ZzLWJXIfdpqRyp3kwQU0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":137897,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiF3tsACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqzexAAgFHCXkgW8wqkcV7VKqOLEQEDzYgLs+Vtzx9FMNlslXMiVdCA\r\n+curecE0BmCohZeT4IYiKqy4EuUvJZb9CZYfU1OsqqP2D/FWAzT5nMbE9Zbr\r\nqdcsAn43lE09mSH9EhWoZ/TRP9/Ctp3pGUhzfSnB6+uBEMBAnJCk1luMGtQt\r\n7wHUPC7wRCIRoUac8+Nr8vB7b1Xfi366AnAmtLG2hT8+uv2OYe2f7MSCeVGW\r\nUiDTeOE1Dtfas7i5t34Mj0Mm0sm4kOA7pQ9p8DKZgeqdL/+VTOUQqYDdI3LQ\r\n+eh3gp5wSx02V5wJSm7/P3omAw9Kcn+NsvRPWRD2Cl3dMIhvkiaKOjqgn+X5\r\n7lxjTb0tP+EFPGLB4RxdZIK1ByJEi8U+RL/I3BTsTwU/hXfEwExnrVLmigvQ\r\nfzRHd6tpUkeD2LOaD+IBrgmFh5TN+D1cXTqee4OzZ4bBYxSuiDCrCIoT9YRT\r\nK9nM9bfnSsgl2JKliEJ488hCVWg8WNxlzFc2K1WGMs3zc3BO3j/Sb6QRlc98\r\nQByFtc6MMa1nBtEPvU4nshR5pcIF7tpH9S9x0TZ6H0TLlNkeGX5H7LXa0MyP\r\nTFFTzc73gHSmUxIRaygWNg+IjyBVn/4R9DACSOGswk0Cw+jcZFr3vBTV0oaf\r\n8LJ/jVxyQ1yjWMIwf6d4qphmlJ57yFpHVuE=\r\n=8PVP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"a07a0496effe25e5b4565abb27cddf880f5728a6","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.19.0/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^1.1.5","@humany/widget-data":"^1.0.23","@humany/widget-forms":"^1.1.10","@humany/widget-adapters":"^1.2.11","@webprovisions/platform":"^1.1.2"},"publishConfig":{"tag":"previous"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.39_1645706092772_0.8377944067258525","host":"s3://npm-registry-packages"}},"2.1.20":{"name":"@humany/widget-conversation","version":"2.1.20","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.20","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"b3adbaa129a776d6d661b3b382b2679b6818963d","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.20.tgz","fileCount":165,"integrity":"sha512-XNpWnxawIVDx8/RJHYUbecFZATawTimBphIwNQRXYkwwWUaCWZY1MeOsA+9JpTwl/plZLpuTri3lRzVWFb+Ouw==","signatures":[{"sig":"MEQCIEs09x4SrwrCG122GVBsZVe5SteSpgu2b8mL/SMRf4f7AiB0tbhxxIOltnO03SAylOe/khcp4fYcgSwfMH2nu0obtA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":300456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiF4qwACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrexg//YEXg6VsZB8nontGgmK/OZ9N8WKq4XhktmFbvrKP/yeF/Ia5w\r\n84gnvCcQK9KgheeGjD2X/ftpFV/RxlsGOr9Terhjl9Cld1HKC37B6XQPQQ9Y\r\nEUiKhBtLdSNZyJi8gUiLiNfj6fairubDGUOdnshqySJIssLaeBQtegLIaznV\r\n4TV9m7pU95l7rnZoX1KB32TmYgfv0Cmb3j+aa4l/UPWifHZDIFURyTKYI2T+\r\nq98bnHL8fJnzBNlRg4qQLxGVg5kzKFf8ZyToCY2nkUm9p0fUkUkyeI2qgVnP\r\n+HLXmyASJjP3ZhTWSNajq3DXWD6aYphpv56jmO1dhVhgYqE6qJbsZp2b/Vl9\r\nxCAKhpgxUH3Qxo1iqOKAPdyks5GT85/PLhtvrENdS6qAOQTUqbSeLoaN3/cg\r\nWHaThxrVgUlc1a/QRUX3aFwUALMCfuQwPBSXbIoAH8A2R1EoX/ggsBti89ml\r\nI+wCd33oXSgNWCtOYrzXu48WIfZxcU10Oz3xSp5zFFVWkDybKAU9XFKaBuHD\r\npOVS3LTPwEEffUX5T9g7sIfmDymlnFlJiVuTTLqCWdyEJri5LG69TYLUSaUV\r\nTXiQ53/8SmJjTdro8lYl2Tdz2MxPg9cqK14NVzmVMuTIZhpyeuVMbV7457y4\r\nEyu/Z19kN5rSW1cErx0l6WP5pGoW6BsRorI=\r\n=0Nig\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"b94df4284b670263060cc7cdf9cac5f9d5ccd0ed","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^2.1.3","@humany/widget-ui":"^2.2.4","styled-components":"^4.3.2","@humany/widget-core":"^2.0.10","@humany/widget-forms":"^2.1.6","@humany/widget-plugins":"^2.3.6","@humany/widget-routing":"^2.0.10","@humany/widget-adapters":"^2.0.19","@humany/widget-services":"^2.0.6","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.3.1","tslint":"^5.9.1","ts-jest":"27.0.7","@types/jest":"27.0.2","tslint-config-airbnb":"^5.5.0"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.20_1645710000589_0.4206481837093552","host":"s3://npm-registry-packages"}},"2.1.21":{"name":"@humany/widget-conversation","version":"2.1.21","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.21","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"aa8f993be4cd2101e9e764d5257f8e61316bc732","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.21.tgz","fileCount":183,"integrity":"sha512-K1SeCX7b+geUewcLX5rp8NKred+kD4r/H6X70sGYztG3yEFvZ0y3hhAIlCnwmb8/Xk3aVrp1ef/wL3fml4OhsQ==","signatures":[{"sig":"MEUCICAzvso+4Lf/Pj9/2YfhgH6GsUHep6EbqTSeW55Hdt4tAiEA0MnW8TG0aSGikjd11iFQasdywSxl4I+zvyHve+X5gLQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":338006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiINJRACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrBXg//WaDrVDqaTM4J7etfpB/8jCdal6WyYkjWs/nEHoXA/6m+vXqs\r\nRV53TSYyFWEuDJJQCwqu/fG6lVPAErIe2F+6+wT0ONKXeJnkogn07QhjNuTq\r\n4XIqjLMxlZsjz+fQTmvGpaX07Bi2d5xUAQb6Rn4waCLuLR7tUzSsOjklFz6n\r\nCDZUjAnrBSFiYw2rZrTOw+uGPVEArJA2CRiUNybD/4n9XaQP7AUDIR6nYyYM\r\nC+MfnWZAuX4IKkG8sKoJEfzQiWFyN8UZNULfCQtSNGS1cIVkE5TnXJr9f4hn\r\nf8S7W7srT1nzPJabWqMiij/BcDQFYAL4Qd+CzecX3DF3DBubeOK9TQIRIdS4\r\ncifMvYcCysWQwJjJvnYBO60IbVEL64J5nbmI+FnUA2bA5t1ycLriHO+wSwOG\r\nF4eISt3SfcLi51y9zHH/xbjGVaHwW+cc9nVIQqV4Ii2xZf1JLYHDGJJskNkX\r\nCF8UcbvkKtfTfQtHV3kUgobbQPO2VWa3dK/GTd7D2H1NVexgeaFn40WlU0Ut\r\n7kbydeiJFjUrKwwGe6pgeoC/BKQc8nP4IJMuaYgsnCKrukLcbRawMUB6JbsJ\r\n9Lru4LT4dfu2Cv9VLRaeAAPFkUVniGA7CZG/kxCklhVw/UGsJf8NOdrpYCWb\r\n+J5HjAdeMyLFtambyB/okrAkY8E5pGEo0TY=\r\n=zWKS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"6a05b6eab88ee16ec14a52c3843ebe7bd8a07d59","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.5","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.7","@humany/widget-plugins":"^2.3.7","@humany/widget-routing":"^2.0.11","@humany/widget-adapters":"^2.0.20","@humany/widget-services":"^2.0.7","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.21_1646318161382_0.7744804925605706","host":"s3://npm-registry-packages"}},"2.1.22":{"name":"@humany/widget-conversation","version":"2.1.22","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.22","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"5565ef45e57213e79c84d51e44b35582f7440e5a","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.22.tgz","fileCount":183,"integrity":"sha512-wQBgDA9X8XMLymrCMAyVbmQPjmx4wQHcnkzEUdMyXYpeQVHUaF/X+BbKcbvVMtpMKuwos3ZLEAJ67vpUN/Q+WA==","signatures":[{"sig":"MEYCIQCkArzthm1qQGuYTcUMniizFSgfIWGKBBlt6SCfEmvlNAIhAOWeDx4BlRjFxAHpIEL58bL/ASG9EgC7dH9LLjrIjOYX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":338006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTuRdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqZ2A//S4Udb4s3y+46Dz9tOKof4/g+SnF0XC7RRHd3CR8rTE6+NOLt\r\nGsfbUhKV8/y+9rc7YqzXETeES5T8C1z7pjetklg6rMSHPqoiqyeFhDqLpmEH\r\nwUC7kzfx5PN6S/vD3bpSYSOLfYwb2X+hvhhPqcGXAUAdK19hpclF27szj5o7\r\nlxU1d54eAgKY5N90/+RfaWKphYzVwUmrsi204DUfJLCFXFrduc/2h/6OWf7W\r\ni1bKzur7517mRnKoy4/6gKy3WECKadJ0GDk1rqVIpad+xm42tCJzG6XMi/cL\r\ng5vYjasIRzKagC9gJXZg1u8G9T5HuoYLZ037Oqe0py9e4HJq6vkFn1HWtka1\r\nDdygLDPIguYrGo8dcYLQ85omwbus6xRpC0vZrXWQki8jV7lerFKR7Z8ihvwt\r\nWNZfv/yaW/tZC9sMnvSAtoSNgQnWbbMB1yoWivAhF4/iRuNN5xB8i72Sfsxs\r\nSRP1/Y8uaPEgOUEYIHIk/VGz0Lqm+Aau5ygm2DrvorTW9AJuZrVZF9RBpHee\r\nUmBDACaSTvfpvy+tBKiZXwRwK0eoKqX+zXwqM3sN0/ek8jKRMKsz4qKWvsKJ\r\npMdNa4jBfsqPOga36Jv0ShegUXLszHm0KmJjNgfEL2mgsdLI8gS40A9GXbrH\r\naGQQ6/VtX1mlhpR0eMDHyYyLu3/TYlTrvAE=\r\n=Uw7y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"4d18c0cdda60b92468cde8c5484728e43cfffa9b","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.8","@humany/widget-plugins":"^2.3.8","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.21","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.22_1649337437757_0.04148547575666561","host":"s3://npm-registry-packages"}},"2.1.23":{"name":"@humany/widget-conversation","version":"2.1.23","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.23","maintainers":[{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"41c4aa78549e95d3872c9b14993be02444899916","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.23.tgz","fileCount":183,"integrity":"sha512-dd8/OPMY4Y8L7k+6pZ7h4xnHfvlXMt55eQSvgcG3ytH8IPPATctnOmCgMXntDNOPxSNO/9IAadcq3wMY+Iy85Q==","signatures":[{"sig":"MEQCIC6OFpWoKeWP9fVB6oqJBc2mp8Xk1OQY8TPQaPQrOws2AiB/R9vASOFFqbLhqmCxzemPZZOLyYxW8IS0/x4Z9pb4nw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":338006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiTvavACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpXkQ//Tt3ub0Kb5wr15bmfNLvc2HK1DFF22EiLXffyVvSGDMUX5Gwh\r\n8XIZgqH+BNI8c2a0V9FyxDosT6jTf2N12TxoXWJz43uNgjyBeIgg3eGm1omJ\r\njYj8f8S7ERQy0ytUdZq2aBGIu32MAXoV10bFwTIn4jgJauo7yc7YGahIY3SG\r\noIJ3g5QDpaUCbi6QpxseqC2bbdjs5aghq3dPH1kwg5qGxUt5SEwGYEfAlmwV\r\n+nfZoSaUXOUxbcn8YAbRGH+7T78MxnO/cjwI5uSaz71HNnqyfInE0sonivjR\r\nIUo25vAs+XmGdSOKLeFXGWpdEg0Bzksb5/+rz9It1lDTenft1OI685oZCLPk\r\ngHBNZE13PEVyWdUl1Z0Fva6IJYiNZ3oumi70Zn3mpJTT3LMWzMnVThcrVkDI\r\nY2ZvwAcPSLBj6qC+C1AQ0AkdGhsYQX1UThwLaWkaDmbfLteTDBCwHz8lrajZ\r\nFJtst4E/1W7I082grwaPWlNBL5ESP/5Yo+FTDpM80M11XnYLHb5qaC1z/yDf\r\n7tGtkY8hZwjMmkz7xke5+FyDTGQyxoAj4SrFy0x4DA7+4n1bEEoLA+z1b62d\r\nuQz+nuWVXlzGAsDC1RG33dU3+bXR3jU27Qgqq23p6bZMqryZtpxafQhFbpD6\r\nDMYE6U/JjiM+8hcH+4XfmyZgnUZIA1mb2qs=\r\n=wX8D\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"02dfa383d7ff3674b24071a04a0281d9d7ecda0f","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.8","@humany/widget-plugins":"^2.3.9","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.22","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.23_1649342127597_0.013907488869790319","host":"s3://npm-registry-packages"}},"2.1.24":{"name":"@humany/widget-conversation","version":"2.1.24","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.24","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"f309040d8f5a979f313fb6617bc8df5e7281d3fc","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.24.tgz","fileCount":183,"integrity":"sha512-S3wYCmbEhuLBszi2krvEzA2qPfHPxBInHkb673/5LShSXZYW7qRggU8E0nI+DlEkxetfdMfF+Z6eBwAlGRWbuA==","signatures":[{"sig":"MEQCIC6yn+6ie+KScKpEcPnyR9pRUN3R2V6mtsVLvveIFMuJAiBDbGMnGm/qHKLJ5edtUYYcZ2d1EG56DKbp1X/miOoepw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":333161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicQQfACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrQ8BAAnjKHTEtMG8nz+gmlibqHwECopKG00NI0guC05WebNlTrTTVg\r\n0+2jVFI4NZJCRPEFx66PY+DVP0F0IWlYfMEYTPXDdfhDp5AbxPADB/nW7L/O\r\nBv0jHoHWoLWs0bkaR2dh/9dkpj76YF4Y55OYdtsrTSAYi7faxpe6mLh89ZCa\r\nFqJZ8gw+1XD+LomKdovUDu1LBmjMoH+nd7tl5s4sysYL1LWuEoceTYlEWEFn\r\nlaVIX4ljchJrvpPLau5yAbi+PjemQpGCTM71iV3sG43RsB/QL6SvqibSO862\r\nfz4vG7s8W8S/T8XlQVMdCpkFtr6h0FqvbxeTU81WXmMWezYqdRq2kYuXa9r2\r\nwUyhkw1GYiRSGOR0yheMM65u0EdnwVxDKdIAJtuIDehxvvSLnblWVdMO+qBr\r\nvvjCnRCNmWiGFDseoakRXOWCbWETj4nTEdxbBe6QSI7gcdjkZsLpRmbuus87\r\np8aGRNoJl6Wb58Ntp66FPEof3k3mP7rk+Ctcw/yCc4rTsH/aiW5+itADU6SQ\r\nCalMqV8kXBKobGCW8AcCmJemz7KI6rMjpW738XO7SbPprc7jXuNj0O2RRCen\r\nWfRPmzDkpqyySJEe8WEhxRIM/eyXni5M8aSVtYCNs8IHc0qTEZQvFc+bRzA3\r\nJz7EWrLz15xqy1HcZYqasHMDF7hlcxqzz1I=\r\n=T7DI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"4dc92a767c476a5f13eb427d6778850d809e0e81","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.2+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.2","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.8","@humany/widget-plugins":"^2.3.10","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.23","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.24_1651573791759_0.5202894685864214","host":"s3://npm-registry-packages"}},"2.1.25":{"name":"@humany/widget-conversation","version":"2.1.25","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.25","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"c7d492ccb9949941052a56f791021b420134970c","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.25.tgz","fileCount":219,"integrity":"sha512-XqCOkczdDgJKQgDihtM60+aYf8DpfkM+dqiKWWwrEX9ujlphmFni0PHeTwJ0mbQiOraeOY+2oOUYTNVKxYViRA==","signatures":[{"sig":"MEUCIATYttRJPR2pS0Had5w/4sFnCNAAGpL3IFm6SO4rMOu0AiEAyMMDZrzMkVJs5tE2SCX+byJymF/f264twX5Z8Bi1ChA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":406799,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJihfSrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrOAw//cl6zefmlg/j5brBZfIhl0wgH/ltPsWDowfbCrxYSHNyTCs5h\r\nO/G6f5PJ/hDlXx+1ks8hQAOI2YvJ/Je0gGdGtqFS6eSNIOKWJaqUb5qqsEjO\r\njCp5qXP3FRzWiSvZOkgR0G8riODFXJZRpJc39fYFBv0yTRzthhK9UkeZKI1V\r\ntZ1xnsUza7AYY9RIZ1MDk/fmdqb/yC29j57WDRVDnQTZA0IPgUMYDmtCi9lu\r\nd3WIiHJjO3sS167G8Gy4xg5kCr8j9SqHcMfjMdUOJiT9Bw7/ycsogIZFdT/j\r\nX74A8gyGHwmLavYUzD9gA+loDSo3cJ8dH6L0zb3pI7JXwexCUF3jX/2fEFBL\r\nv9ibcVjxRJGNqZ65V1bwBl+WbuI8KFyd4FvbPXAawQz4ad64aCDtHbLN6/63\r\n+FV+FZ5+PQvKcJxKr8BJBoQ+jqEM9eig0NJUBc2QYPwx/Omqcht6ekmEEXvD\r\nb1gcZH+mj+SVMgKbD2vjb7fJZR2IERXRNyQzEbL2YSwddSACummKszKd9aYO\r\n+EP+W0ctfQOTPpNpjC33VNbFxiKJyaweGw4fwwAUIbdfsQjnlNTUxkl6utSa\r\ne37N1BynOksqlf0+6yX4beUaEF4m5q8Qfg+KEzTx3EUXh7PJm78J3Gl6T2nS\r\n39LiJdAPw3FVufsJCbFeAK1i6H2RdUaGhDM=\r\n=OucK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","gitHead":"f6e9911ae8d450e574dd79d8205bcc620404b414","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.2+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.2","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.8","@humany/widget-plugins":"^2.3.11","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.23","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.25_1652946090896_0.37995197916355816","host":"s3://npm-registry-packages"}},"2.1.26-alpha.0":{"name":"@humany/widget-conversation","version":"2.1.26-alpha.0","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.26-alpha.0","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"7c2313486101fcd3aa38080cacf24d783b1f8724","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.26-alpha.0.tgz","fileCount":219,"integrity":"sha512-SrZUw0+NfQhC0UyIZ9+bok25PF6+HXYqAJ0kVRDSprvZ97yv7E/f3wBkt8F97vyCoQjo83lFdyN04J4YMKNOVA==","signatures":[{"sig":"MEQCIConP0nMPlW/qAR9ZXCushcyEdscwwodZECqR61qYSMJAiA5XMsJCO9foXZ7X6IvPVDX9woky/Acf4VWGx5mD7Lp+w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":451443,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJii5i/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpsTxAAj1gjU6fudKzNWzwSRPsIgx1kjST/R9GywgmZlAnFZz+fTTz3\r\nAU+ou1rPNFOh12Lzn3SRLvjcrljPPEKLR4LVr73yVfAAKkyrc5lIp/wF5BIf\r\nEzTu3SmbrtA1eZYufBo5kZdGrKbQIOrmV+ry3w5xj7Q28LTajLZO5WleNVSG\r\nhZMXpo4f48apEUDegGUZ43mLp5X5sfpVmIPuHemLQlGt8ZZzI6HbedsggqLX\r\nk/DTutVXSvKZYENMOoYCtsOCwOVrsykE0qn/AlSx3PCWdE6hoK8/XvA6gkDY\r\nvol9HjQkhICxWDXEe8RfPBB7yiHRh9qj34V38ehLgqEiOrxCn2tqcRudZSUy\r\nsrF17i+izzMLz6hfTBkw+dovzH/wvtpY9DX8OoVZlfnyiL6+C8FuDpzbdlkO\r\nLtNehbQgD/AdootDgiT4ZT+7oYR1wFuBUiEHJlaMcqpu6PXgH35ZlC5WfkzO\r\n22busPaZjGyX+2s8mAfrJlvQVUJ+Y2Ud3ywk4+Kbk6y82jEkAt9XDTqVvlk2\r\nRTtY6vywzdUs1Lx0kynvBibNaOkGuHVnrPRJBZGdYD3mAE6a+qnFyez8ZBrw\r\na9tUEoVl8frHsekBH37KWeLO1BYO2DpCkIqgMqY34UKyLzKHER1xbThF0O6i\r\nAtsi/i9amP8MM4Guj5TuqwDmdgnZs8jlXIg=\r\n=GwWM\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation API\n\nThe Widget Conversation API provides support for reading and writing to a conversational component inside a widget.\n\n## Explore the API\n\nYou can try out and watch the Conversation API in action by clicking the button below.\nKeep in mind that this is for demonstration purposes only and may not be best practice.\nWe do not recommend binding functions to the `Window` object.\n\n[![Edit elegant-jones-rnyrd](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/elegant-jones-rnyrd?fontsize=14&hidenavigation=1&theme=dark)\n\n## Accessing the API\n\nInside a plugin, access the global instance of `ConversationPlatform` by passing in the current `Container` to the `getInstance()` method. It will return a `Promise` that is resolved to the `ConversationPlatform` instance. On the instance, register a provider and pass in a name and handler by calling the `registerProvider()` function as shown below.\n\nThe handler function will be called once a conversational component for the specified provider is activated in the widget. Use the provider to interact with the conversation.\n\n##### Example\n\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n    const platform = await ConversationPlatform.getInstance(container);\n\n    platform.registerProvider('my-chat', (conversation, component) => {\n        // start interacting with the conversation here\n    });\n};\n```\n\n## Writing to the conversation\n\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(content: object)`\n\nReturns a `ConversationEntry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent();\nconst entry = agent.print('Lorem ipsum');\n\nentry.update({\n    // ...\n});\n\nentry.remove();\n```\n\n### Messages\n\n#### Simple text message\n\nUsed to render plain text without HTML-formatting.\n\n##### Example\n\n```ts\n// print user message\nconversation.user.print('Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('Lorem ipsum');\n```\n\n#### Message with list of actions\n\nExample of how to render a list with actions. Is only supported on `Agent` and as system message.\n\n| Name      | Type     | Description                                                   |\n| --------- | -------- | ------------------------------------------------------------- |\n| `title`   | `string` | Title for the entry.                                          |\n| `body`    | `string` | Body content for the entry. Supports HTML.                    |\n| `actions` | `object` | Key-value-pairs representing available actions for the entry. |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n        invoice_190201: 'Invoice 190201',\n        invoice_190301: 'Invoice 190301',\n        invoice_190401: 'Invoice 190401',\n    },\n});\n```\n\n#### Message with a form\n\nExample of how to render a form that can be handled by the `conversation.form` event. Is only supported on `Agent` and as system message.\n\n| Name    | Type                    | Description                                                                                                                                                                            |\n| ------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `title` | `string`                | Title for the entry.                                                                                                                                                                   |\n| `body`  | `string`                | Body content for the entry. Supports HTML.                                                                                                                                             |\n| `form`  | `(FormBuilder) => void` | A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`. |\n| `key`   | `string`                | The key used to refer to the form when validating and submitting the form.                                                                                                             |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n        builder\n            .createComponent({\n                component: 'Text',\n                type: 'number',\n                name: 'id',\n                title: 'ID',\n                required: true,\n            })\n            .createComponent({\n                title: 'Log in',\n                actionKey: 'submit',\n                name: 'submit',\n                component: 'Submit',\n                type: 'submit',\n                evaluate: true,\n                value: 'Log in',\n            });\n    },\n});\n```\n\n### Specify a sender name and/or avatar\n\nTo create an agent with a name and avatar use the `createAgent` method on the conversation.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent({\n    name: 'Mr. Agent',\n    avatar: 'https://www.site.com/avatar.jpg',\n});\n\nagent.print({\n    title: 'I found the following invoices associated to your account:',\n    actions: {\n        action1: 'Action 1',\n        action2: 'Action 2',\n        action3: 'Action 3',\n    },\n});\n```\n\n### Writing system messages\n\nIn order to print a system message to the conversation you invoke the `print` method on the `conversation`. The `print` method accepts the same arguments as on the `Agent`.\n\n#### Example\n\n```ts\nconversation.print('Lorem ipsum');\n```\n\n### Loading/typing indicator\n\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loading()` function on the `ConversationProvider` to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\nIn cases where you want to notify the user that the agent is currently typing, you should use the `typing` function on `Agent`.\n\n#### Example\n\n##### Loading\n\n```ts\nconst done = conversation.loading();\n// ...\ndone(); // remove loader\n```\n\n##### Typing indicator\n\n```ts\nconst done = agent.typing();\n// ...\ndone(); // remove loader\n```\n\n## Reading from the conversation\n\nThe second parameter to your provider handler is a `ComponentNode` instance representing the conversational component. On it you can read the component's properties and react to action emitted by the component.\n\n### Actions\n\nThe following actions are emitted from the conversational component.\n\n**Important**: For default actions it is important to call `next()` unless you want to completely stop the execution flow for the particular action. Not doing so will stop any succeeding handlers and may unintentionally break functionality.\n\n#### `conversation.user-typing`\n\nIs emitted when the user´s typing indicator is changed.\n\n| Name         | Type     | Description                                    |\n| ------------ | -------- | ---------------------------------------------- |\n| `textLength` | `number` | The current text length of the user's message. |\n\n#### `conversation.user-submit`\n\nIs emitted when the user submits a message.\n\n| Name   | Type     | Description         |\n| ------ | -------- | ------------------- |\n| `text` | `string` | The submitted text. |\n\n#### `conversation.action`\n\nIs emitted when the user clicks on an action.\n\n| Name   | Type     | Description                  |\n| ------ | -------- | ---------------------------- |\n| `text` | `string` | Key of the submitted action. |\n\n#### `conversation.form`\n\nIs emitted when the data of a form is changed.\n\n| Name        | Type       | Description                                               |\n| ----------- | ---------- | --------------------------------------------------------- |\n| `data`      | `FormData` | The form data.                                            |\n| `formKey`   | `string`   | The unique key for the form.                              |\n| `actionKey` | `string`   | The key of the form component responsible for the change. |\n\nIn order to subscribe to any of these actions you have access to the `ComponentNodeController`. Below is an example how to subscribe to the `conversation.form` action.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    return next(input);\n});\n```\n\n### Submitting forms\n\nIn order to listen for form events you should subscribe to the `conversation.form` event. By passing a `key` to the form, you are able to target the form in this listener.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    if (input.formKey === 'my-login-form' && input.actionKey === 'submit') {\n        const username = input.data.username;\n        const password = input.data.password;\n    }\n\n    return next(input);\n});\n```\n","gitHead":"5e609428122f9762bdc71e3cf75e1b480aa3506a","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.2+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.2","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.8","@humany/widget-plugins":"^2.3.12-alpha.0","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.24-alpha.0","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.26-alpha.0_1653315774953_0.0028370942643272112","host":"s3://npm-registry-packages"}},"2.1.28-alpha.0":{"name":"@humany/widget-conversation","version":"2.1.28-alpha.0","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.28-alpha.0","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"ec80ed79d756c4bd1ce4a9c46327ad45953d767f","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.28-alpha.0.tgz","fileCount":219,"integrity":"sha512-E1o//HzdfaDUz0oa1ylcfsZLJYGka31ctqxwB20c0Ou1ISPH74ZpzU3/9kWauv9vMtXbYx8+ZLaxLzyPpjJFYA==","signatures":[{"sig":"MEQCIDnBtmtYBN+5eeQkimMnuXZRfb/O9FO6JobJpAO60oF5AiBKgOY0hSykG1vlcZ+KW3lvWOqJHXP8m9zvYj2MwQ9XKA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":451739,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijJ3zACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrdlQ/+Nw+nbQcCEPihPNV0J659/Ry0VuCNLRxG8NQfTuTUr5c57pf7\r\naQ+I4ValkOSrZuUsktIl9vKhXGLEuS0GcdsVjYzDHFIfgr1sZutO6ilWngkX\r\nx7yXInaOD8fDwj/rn96aPfqOo1gXlHvAU83A7rLjPUAchLl9oUvewqdLlw2D\r\nOVPtvS0Qwtbv0uC9mZZDyaio37K5Y4M0VCQFrRmRhTL36YU8Kpp6VgRhWk6z\r\nRwvSdB4BDp1/qTQX3GiskGZIthVUtihi1Whq3obBttbp3WJSAROEWFZ4Ja/y\r\n3HUybLshTdA2FixdZ2XSKRgNObK4n6QDdi5Y162LT7mheo463LWSfanBiI5o\r\nDgdHa+8i3Y6XuTwGweKpk1mwgmrSH2oR3OENTZdAMVCuQBR2hvq5AmIqmmxm\r\nAhAFxr6RBwcGhhO9uVvMwim1PnwNoQu5ZFNHsoGdApGSp8ACOzhKRQ+/CB+t\r\nzWysTpLYiuiaXTVBCE3jIqrRCIorgp3f0qw5lGhWDScy2CI9h+n//kMMhdCq\r\nzErc4H48WxTOWFvnhoiPaGcEoCwXJqVwgKGbLlkuCLDK/Ktcj94P1wquSifD\r\nPBnr5xBVR/bHeEl/PWfPK4TNiYJXHJMjVGwyo13qj7EVVcIeqHWFFq16QjGZ\r\n65LBW6fjOzWn3UY7R/g/SYmKmmhnEmIYZ9U=\r\n=2zm4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation API\n\nThe Widget Conversation API provides support for reading and writing to a conversational component inside a widget.\n\n## Explore the API\n\nYou can try out and watch the Conversation API in action by clicking the button below.\nKeep in mind that this is for demonstration purposes only and may not be best practice.\nWe do not recommend binding functions to the `Window` object.\n\n[![Edit elegant-jones-rnyrd](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/elegant-jones-rnyrd?fontsize=14&hidenavigation=1&theme=dark)\n\n## Accessing the API\n\nInside a plugin, access the global instance of `ConversationPlatform` by passing in the current `Container` to the `getInstance()` method. It will return a `Promise` that is resolved to the `ConversationPlatform` instance. On the instance, register a provider and pass in a name and handler by calling the `registerProvider()` function as shown below.\n\nThe handler function will be called once a conversational component for the specified provider is activated in the widget. Use the provider to interact with the conversation.\n\n##### Example\n\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n    const platform = await ConversationPlatform.getInstance(container);\n\n    platform.registerProvider('my-chat', (conversation, component) => {\n        // start interacting with the conversation here\n    });\n};\n```\n\n## Writing to the conversation\n\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(content: object)`\n\nReturns a `ConversationEntry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent();\nconst entry = agent.print('Lorem ipsum');\n\nentry.update({\n    // ...\n});\n\nentry.remove();\n```\n\n### Messages\n\n#### Simple text message\n\nUsed to render plain text without HTML-formatting.\n\n##### Example\n\n```ts\n// print user message\nconversation.user.print('Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('Lorem ipsum');\n```\n\n#### Message with list of actions\n\nExample of how to render a list with actions. Is only supported on `Agent` and as system message.\n\n| Name      | Type     | Description                                                   |\n| --------- | -------- | ------------------------------------------------------------- |\n| `title`   | `string` | Title for the entry.                                          |\n| `body`    | `string` | Body content for the entry. Supports HTML.                    |\n| `actions` | `object` | Key-value-pairs representing available actions for the entry. |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n        invoice_190201: 'Invoice 190201',\n        invoice_190301: 'Invoice 190301',\n        invoice_190401: 'Invoice 190401',\n    },\n});\n```\n\n#### Message with a form\n\nExample of how to render a form that can be handled by the `conversation.form` event. Is only supported on `Agent` and as system message.\n\n| Name    | Type                    | Description                                                                                                                                                                            |\n| ------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `title` | `string`                | Title for the entry.                                                                                                                                                                   |\n| `body`  | `string`                | Body content for the entry. Supports HTML.                                                                                                                                             |\n| `form`  | `(FormBuilder) => void` | A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`. |\n| `key`   | `string`                | The key used to refer to the form when validating and submitting the form.                                                                                                             |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n        builder\n            .createComponent({\n                component: 'Text',\n                type: 'number',\n                name: 'id',\n                title: 'ID',\n                required: true,\n            })\n            .createComponent({\n                title: 'Log in',\n                actionKey: 'submit',\n                name: 'submit',\n                component: 'Submit',\n                type: 'submit',\n                evaluate: true,\n                value: 'Log in',\n            });\n    },\n});\n```\n\n### Specify a sender name and/or avatar\n\nTo create an agent with a name and avatar use the `createAgent` method on the conversation.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent({\n    name: 'Mr. Agent',\n    avatar: 'https://www.site.com/avatar.jpg',\n});\n\nagent.print({\n    title: 'I found the following invoices associated to your account:',\n    actions: {\n        action1: 'Action 1',\n        action2: 'Action 2',\n        action3: 'Action 3',\n    },\n});\n```\n\n### Writing system messages\n\nIn order to print a system message to the conversation you invoke the `print` method on the `conversation`. The `print` method accepts the same arguments as on the `Agent`.\n\n#### Example\n\n```ts\nconversation.print('Lorem ipsum');\n```\n\n### Loading/typing indicator\n\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loading()` function on the `ConversationProvider` to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\nIn cases where you want to notify the user that the agent is currently typing, you should use the `typing` function on `Agent`.\n\n#### Example\n\n##### Loading\n\n```ts\nconst done = conversation.loading();\n// ...\ndone(); // remove loader\n```\n\n##### Typing indicator\n\n```ts\nconst done = agent.typing();\n// ...\ndone(); // remove loader\n```\n\n## Reading from the conversation\n\nThe second parameter to your provider handler is a `ComponentNode` instance representing the conversational component. On it you can read the component's properties and react to action emitted by the component.\n\n### Actions\n\nThe following actions are emitted from the conversational component.\n\n**Important**: For default actions it is important to call `next()` unless you want to completely stop the execution flow for the particular action. Not doing so will stop any succeeding handlers and may unintentionally break functionality.\n\n#### `conversation.user-typing`\n\nIs emitted when the user´s typing indicator is changed.\n\n| Name         | Type     | Description                                    |\n| ------------ | -------- | ---------------------------------------------- |\n| `textLength` | `number` | The current text length of the user's message. |\n\n#### `conversation.user-submit`\n\nIs emitted when the user submits a message.\n\n| Name   | Type     | Description         |\n| ------ | -------- | ------------------- |\n| `text` | `string` | The submitted text. |\n\n#### `conversation.action`\n\nIs emitted when the user clicks on an action.\n\n| Name   | Type     | Description                  |\n| ------ | -------- | ---------------------------- |\n| `text` | `string` | Key of the submitted action. |\n\n#### `conversation.form`\n\nIs emitted when the data of a form is changed.\n\n| Name        | Type       | Description                                               |\n| ----------- | ---------- | --------------------------------------------------------- |\n| `data`      | `FormData` | The form data.                                            |\n| `formKey`   | `string`   | The unique key for the form.                              |\n| `actionKey` | `string`   | The key of the form component responsible for the change. |\n\nIn order to subscribe to any of these actions you have access to the `ComponentNodeController`. Below is an example how to subscribe to the `conversation.form` action.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    return next(input);\n});\n```\n\n### Submitting forms\n\nIn order to listen for form events you should subscribe to the `conversation.form` event. By passing a `key` to the form, you are able to target the form in this listener.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    if (input.formKey === 'my-login-form' && input.actionKey === 'submit') {\n        const username = input.data.username;\n        const password = input.data.password;\n    }\n\n    return next(input);\n});\n```\n","gitHead":"dcfc9d93829ea008867ff09d417082201a287b16","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.2+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.2","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.8","@humany/widget-plugins":"^2.3.12-alpha.0","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.24-alpha.0","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.28-alpha.0_1653382642143_0.47189651354902074","host":"s3://npm-registry-packages"}},"2.1.28-alpha.1":{"name":"@humany/widget-conversation","version":"2.1.28-alpha.1","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.28-alpha.1","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"65395c3eda610e77873e8a40c30b1de7a9e5da5c","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.28-alpha.1.tgz","fileCount":219,"integrity":"sha512-Ts7H6PaRlPYTmqlVeWVukMGUGSGKykDJX/8+3JuP1rj+tIWiew6ab0Hb4yXVYzTlEbImHBiCmXNVqLKIwCJbEg==","signatures":[{"sig":"MEUCIQDU8C2wC9zYe3FXSmzE/4cLYOtTG9ZWwTKqeAnm9gV1vAIgMEe2R5G3uAnk34b64C/zkP50DKV9UEJO5cWvSxP8NxA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":451739,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijJ8tACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmriLw//XfDfBDEsyKUoq8TOcLfT9TzV/2mLENMShHjK2pfMgx7cEfya\r\nUeRBmMacM+2BBpp4HzzyDFA8educflKawDacpkTDRiRykBM4Q2FOzFT+KOFE\r\ni5DGMEqnKA1wAKmOgWxwlhu7bNZv3r+N5KRY+Bg2oTufn68VguzavXxc1PoG\r\nGMhZvBlMEu0kdxbaqmwVgl94BxGbkpFNZsATQiaxCsnn42EH3dAy6VFMa5Ip\r\nIlHN2Xm6cfcjuvThGDm/xcOb99SoW4SU+sVvIcQtqy7/29gow9DoXWm7kjMr\r\nADmjXQY15BPut4IWsjIgya1jfMsWmRzunTPJRauxVO61l18o5/LFpEOToM5r\r\nPHU8UJ5YX/L69Fsxlwao8QXvIGFcaUqj7ts3MCqiy+/8+OC208EZ2X2hFS8H\r\nryYIVjdO3KHbsqibDUHBEfRVuBbMPUUTt2zjw4qFpHCfFiXC7Hi3fQJcEQ7B\r\nm+IQjrlocxgQMLy/cBz1dkVyKmG7WSUeenxehTK4BvKUayQVPSXsCRCyzgOT\r\nW6TIb6Pl3GAFM3EMxU8Es0poC8lHdxnMyFbQ/BCjVv6drtnVR8Os5NINgxgP\r\nC4u9wSF71ZscjP9qCx0DTR7DoocJhRjph0JFbHZvMznkK2eBEhdYyyOPi66Q\r\nYRygSDfTMdbDEMk6zhoYe2jmx/RIVfcAk/Q=\r\n=oYZy\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation API\n\nThe Widget Conversation API provides support for reading and writing to a conversational component inside a widget.\n\n## Explore the API\n\nYou can try out and watch the Conversation API in action by clicking the button below.\nKeep in mind that this is for demonstration purposes only and may not be best practice.\nWe do not recommend binding functions to the `Window` object.\n\n[![Edit elegant-jones-rnyrd](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/elegant-jones-rnyrd?fontsize=14&hidenavigation=1&theme=dark)\n\n## Accessing the API\n\nInside a plugin, access the global instance of `ConversationPlatform` by passing in the current `Container` to the `getInstance()` method. It will return a `Promise` that is resolved to the `ConversationPlatform` instance. On the instance, register a provider and pass in a name and handler by calling the `registerProvider()` function as shown below.\n\nThe handler function will be called once a conversational component for the specified provider is activated in the widget. Use the provider to interact with the conversation.\n\n##### Example\n\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n    const platform = await ConversationPlatform.getInstance(container);\n\n    platform.registerProvider('my-chat', (conversation, component) => {\n        // start interacting with the conversation here\n    });\n};\n```\n\n## Writing to the conversation\n\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(content: object)`\n\nReturns a `ConversationEntry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent();\nconst entry = agent.print('Lorem ipsum');\n\nentry.update({\n    // ...\n});\n\nentry.remove();\n```\n\n### Messages\n\n#### Simple text message\n\nUsed to render plain text without HTML-formatting.\n\n##### Example\n\n```ts\n// print user message\nconversation.user.print('Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('Lorem ipsum');\n```\n\n#### Message with list of actions\n\nExample of how to render a list with actions. Is only supported on `Agent` and as system message.\n\n| Name      | Type     | Description                                                   |\n| --------- | -------- | ------------------------------------------------------------- |\n| `title`   | `string` | Title for the entry.                                          |\n| `body`    | `string` | Body content for the entry. Supports HTML.                    |\n| `actions` | `object` | Key-value-pairs representing available actions for the entry. |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n        invoice_190201: 'Invoice 190201',\n        invoice_190301: 'Invoice 190301',\n        invoice_190401: 'Invoice 190401',\n    },\n});\n```\n\n#### Message with a form\n\nExample of how to render a form that can be handled by the `conversation.form` event. Is only supported on `Agent` and as system message.\n\n| Name    | Type                    | Description                                                                                                                                                                            |\n| ------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `title` | `string`                | Title for the entry.                                                                                                                                                                   |\n| `body`  | `string`                | Body content for the entry. Supports HTML.                                                                                                                                             |\n| `form`  | `(FormBuilder) => void` | A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`. |\n| `key`   | `string`                | The key used to refer to the form when validating and submitting the form.                                                                                                             |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n        builder\n            .createComponent({\n                component: 'Text',\n                type: 'number',\n                name: 'id',\n                title: 'ID',\n                required: true,\n            })\n            .createComponent({\n                title: 'Log in',\n                actionKey: 'submit',\n                name: 'submit',\n                component: 'Submit',\n                type: 'submit',\n                evaluate: true,\n                value: 'Log in',\n            });\n    },\n});\n```\n\n### Specify a sender name and/or avatar\n\nTo create an agent with a name and avatar use the `createAgent` method on the conversation.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent({\n    name: 'Mr. Agent',\n    avatar: 'https://www.site.com/avatar.jpg',\n});\n\nagent.print({\n    title: 'I found the following invoices associated to your account:',\n    actions: {\n        action1: 'Action 1',\n        action2: 'Action 2',\n        action3: 'Action 3',\n    },\n});\n```\n\n### Writing system messages\n\nIn order to print a system message to the conversation you invoke the `print` method on the `conversation`. The `print` method accepts the same arguments as on the `Agent`.\n\n#### Example\n\n```ts\nconversation.print('Lorem ipsum');\n```\n\n### Loading/typing indicator\n\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loading()` function on the `ConversationProvider` to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\nIn cases where you want to notify the user that the agent is currently typing, you should use the `typing` function on `Agent`.\n\n#### Example\n\n##### Loading\n\n```ts\nconst done = conversation.loading();\n// ...\ndone(); // remove loader\n```\n\n##### Typing indicator\n\n```ts\nconst done = agent.typing();\n// ...\ndone(); // remove loader\n```\n\n## Reading from the conversation\n\nThe second parameter to your provider handler is a `ComponentNode` instance representing the conversational component. On it you can read the component's properties and react to action emitted by the component.\n\n### Actions\n\nThe following actions are emitted from the conversational component.\n\n**Important**: For default actions it is important to call `next()` unless you want to completely stop the execution flow for the particular action. Not doing so will stop any succeeding handlers and may unintentionally break functionality.\n\n#### `conversation.user-typing`\n\nIs emitted when the user´s typing indicator is changed.\n\n| Name         | Type     | Description                                    |\n| ------------ | -------- | ---------------------------------------------- |\n| `textLength` | `number` | The current text length of the user's message. |\n\n#### `conversation.user-submit`\n\nIs emitted when the user submits a message.\n\n| Name   | Type     | Description         |\n| ------ | -------- | ------------------- |\n| `text` | `string` | The submitted text. |\n\n#### `conversation.action`\n\nIs emitted when the user clicks on an action.\n\n| Name   | Type     | Description                  |\n| ------ | -------- | ---------------------------- |\n| `text` | `string` | Key of the submitted action. |\n\n#### `conversation.form`\n\nIs emitted when the data of a form is changed.\n\n| Name        | Type       | Description                                               |\n| ----------- | ---------- | --------------------------------------------------------- |\n| `data`      | `FormData` | The form data.                                            |\n| `formKey`   | `string`   | The unique key for the form.                              |\n| `actionKey` | `string`   | The key of the form component responsible for the change. |\n\nIn order to subscribe to any of these actions you have access to the `ComponentNodeController`. Below is an example how to subscribe to the `conversation.form` action.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    return next(input);\n});\n```\n\n### Submitting forms\n\nIn order to listen for form events you should subscribe to the `conversation.form` event. By passing a `key` to the form, you are able to target the form in this listener.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    if (input.formKey === 'my-login-form' && input.actionKey === 'submit') {\n        const username = input.data.username;\n        const password = input.data.password;\n    }\n\n    return next(input);\n});\n```\n","gitHead":"022668bf8751e938ccaebbfd3d260f07ab33ed1b","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.2+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.2","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.8","@humany/widget-plugins":"^2.3.12-alpha.0","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.24-alpha.0","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.28-alpha.1_1653382956765_0.8887224303918584","host":"s3://npm-registry-packages"}},"2.1.28-alpha.2":{"name":"@humany/widget-conversation","version":"2.1.28-alpha.2","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.28-alpha.2","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"5a413c276d4f032707f4a1af702dda381eb109d9","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.28-alpha.2.tgz","fileCount":219,"integrity":"sha512-sQf7NA0PVw4vcYL4bnRZkiACmxQheL3fuaZHlkxFxvXoeEZJ9zl+nXc25t6sy0n8pLI0NfkkfDaX5Y/gbhi1nA==","signatures":[{"sig":"MEUCIQDIGZ+egomn118eBottDYvM5MTKn31wR50dqUAlI10fCQIgIpL3u7YzcNKNq1R1GzxbtmGmn+QB/mH3tthqKb1PYGg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":451959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijKAgACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpLaw/+KsGlh/vwLWzbePEKGJ8teH6kZZhQ89bKjbzNLExrUTTMxs1n\r\n770rZT1OYfuKhqPoICPuBvGTbWmVQM+dcumWeBuCmybzqIoj4BUo3uM7lkLZ\r\nwNrKTY7fGaxtFGk4b2Q6qAGexvNQ1RdpmDCWBFIP3qGrOVLlEK2s9m+NTa94\r\nOidX0Bc0Byq0UgDQ+cR/O5Wzyr0XwI5hBqJSHIWtzk+HNx72uDFysQ/BDF7C\r\n6rz458DAfRg7wdk6fu+SoKAzpvjPYaST/f5QabwMrZ1yq275dKgVbJ5MQKXG\r\n7Fi3OeD5gu0azS3EAkm4BspC8TwQhv0IgClrV/e+FtOyhYdhd3RjZFqqK7L8\r\nX/uJq8nkWfIhwqZfvUUNldcFzHatOXvy4Ay8sgJKo+Cpr3Jj9Fl5sMCor3YZ\r\nFzkqVD0ufd5x+dl5Qqn74ITT10bnTlEkYHxQVhdlZ3sw+bvTD0pxFJV5pbO4\r\nBoqDuMfu2vyHqyYAKbmu+3KcLAtXzA1xaForhxwvFuKQx7nTrYaLGenQHOYj\r\n+h+a0v6jbKlR9CDsFlNA2zUJ1Z0CJKqE/2N2MsC1OJZjvgYmj9qFpf3XQ+2x\r\nRpAfYsRCsfbzMV2y3lldmj9kbRp06CegSHYZQCM0mTTxx6++0axQy7ltezpJ\r\nKVf1JIIw2mj3X8O+0LWqXVNSt0R1ENKAPJ4=\r\n=HL+Z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation API\n\nThe Widget Conversation API provides support for reading and writing to a conversational component inside a widget.\n\n## Explore the API\n\nYou can try out and watch the Conversation API in action by clicking the button below.\nKeep in mind that this is for demonstration purposes only and may not be best practice.\nWe do not recommend binding functions to the `Window` object.\n\n[![Edit elegant-jones-rnyrd](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/elegant-jones-rnyrd?fontsize=14&hidenavigation=1&theme=dark)\n\n## Accessing the API\n\nInside a plugin, access the global instance of `ConversationPlatform` by passing in the current `Container` to the `getInstance()` method. It will return a `Promise` that is resolved to the `ConversationPlatform` instance. On the instance, register a provider and pass in a name and handler by calling the `registerProvider()` function as shown below.\n\nThe handler function will be called once a conversational component for the specified provider is activated in the widget. Use the provider to interact with the conversation.\n\n##### Example\n\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n    const platform = await ConversationPlatform.getInstance(container);\n\n    platform.registerProvider('my-chat', (conversation, component) => {\n        // start interacting with the conversation here\n    });\n};\n```\n\n## Writing to the conversation\n\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(content: object)`\n\nReturns a `ConversationEntry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent();\nconst entry = agent.print('Lorem ipsum');\n\nentry.update({\n    // ...\n});\n\nentry.remove();\n```\n\n### Messages\n\n#### Simple text message\n\nUsed to render plain text without HTML-formatting.\n\n##### Example\n\n```ts\n// print user message\nconversation.user.print('Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('Lorem ipsum');\n```\n\n#### Message with list of actions\n\nExample of how to render a list with actions. Is only supported on `Agent` and as system message.\n\n| Name      | Type     | Description                                                   |\n| --------- | -------- | ------------------------------------------------------------- |\n| `title`   | `string` | Title for the entry.                                          |\n| `body`    | `string` | Body content for the entry. Supports HTML.                    |\n| `actions` | `object` | Key-value-pairs representing available actions for the entry. |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n        invoice_190201: 'Invoice 190201',\n        invoice_190301: 'Invoice 190301',\n        invoice_190401: 'Invoice 190401',\n    },\n});\n```\n\n#### Message with a form\n\nExample of how to render a form that can be handled by the `conversation.form` event. Is only supported on `Agent` and as system message.\n\n| Name    | Type                    | Description                                                                                                                                                                            |\n| ------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `title` | `string`                | Title for the entry.                                                                                                                                                                   |\n| `body`  | `string`                | Body content for the entry. Supports HTML.                                                                                                                                             |\n| `form`  | `(FormBuilder) => void` | A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`. |\n| `key`   | `string`                | The key used to refer to the form when validating and submitting the form.                                                                                                             |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n        builder\n            .createComponent({\n                component: 'Text',\n                type: 'number',\n                name: 'id',\n                title: 'ID',\n                required: true,\n            })\n            .createComponent({\n                title: 'Log in',\n                actionKey: 'submit',\n                name: 'submit',\n                component: 'Submit',\n                type: 'submit',\n                evaluate: true,\n                value: 'Log in',\n            });\n    },\n});\n```\n\n### Specify a sender name and/or avatar\n\nTo create an agent with a name and avatar use the `createAgent` method on the conversation.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent({\n    name: 'Mr. Agent',\n    avatar: 'https://www.site.com/avatar.jpg',\n});\n\nagent.print({\n    title: 'I found the following invoices associated to your account:',\n    actions: {\n        action1: 'Action 1',\n        action2: 'Action 2',\n        action3: 'Action 3',\n    },\n});\n```\n\n### Writing system messages\n\nIn order to print a system message to the conversation you invoke the `print` method on the `conversation`. The `print` method accepts the same arguments as on the `Agent`.\n\n#### Example\n\n```ts\nconversation.print('Lorem ipsum');\n```\n\n### Loading/typing indicator\n\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loading()` function on the `ConversationProvider` to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\nIn cases where you want to notify the user that the agent is currently typing, you should use the `typing` function on `Agent`.\n\n#### Example\n\n##### Loading\n\n```ts\nconst done = conversation.loading();\n// ...\ndone(); // remove loader\n```\n\n##### Typing indicator\n\n```ts\nconst done = agent.typing();\n// ...\ndone(); // remove loader\n```\n\n## Reading from the conversation\n\nThe second parameter to your provider handler is a `ComponentNode` instance representing the conversational component. On it you can read the component's properties and react to action emitted by the component.\n\n### Actions\n\nThe following actions are emitted from the conversational component.\n\n**Important**: For default actions it is important to call `next()` unless you want to completely stop the execution flow for the particular action. Not doing so will stop any succeeding handlers and may unintentionally break functionality.\n\n#### `conversation.user-typing`\n\nIs emitted when the user´s typing indicator is changed.\n\n| Name         | Type     | Description                                    |\n| ------------ | -------- | ---------------------------------------------- |\n| `textLength` | `number` | The current text length of the user's message. |\n\n#### `conversation.user-submit`\n\nIs emitted when the user submits a message.\n\n| Name   | Type     | Description         |\n| ------ | -------- | ------------------- |\n| `text` | `string` | The submitted text. |\n\n#### `conversation.action`\n\nIs emitted when the user clicks on an action.\n\n| Name   | Type     | Description                  |\n| ------ | -------- | ---------------------------- |\n| `text` | `string` | Key of the submitted action. |\n\n#### `conversation.form`\n\nIs emitted when the data of a form is changed.\n\n| Name        | Type       | Description                                               |\n| ----------- | ---------- | --------------------------------------------------------- |\n| `data`      | `FormData` | The form data.                                            |\n| `formKey`   | `string`   | The unique key for the form.                              |\n| `actionKey` | `string`   | The key of the form component responsible for the change. |\n\nIn order to subscribe to any of these actions you have access to the `ComponentNodeController`. Below is an example how to subscribe to the `conversation.form` action.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    return next(input);\n});\n```\n\n### Submitting forms\n\nIn order to listen for form events you should subscribe to the `conversation.form` event. By passing a `key` to the form, you are able to target the form in this listener.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    if (input.formKey === 'my-login-form' && input.actionKey === 'submit') {\n        const username = input.data.username;\n        const password = input.data.password;\n    }\n\n    return next(input);\n});\n```\n","gitHead":"df6d75c9482c54591f895143fa60e225a4abe36f","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.2+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.2","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.8","@humany/widget-plugins":"^2.3.12-alpha.0","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.24-alpha.0","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.28-alpha.2_1653383199863_0.11246970118243516","host":"s3://npm-registry-packages"}},"2.1.28-alpha.3":{"name":"@humany/widget-conversation","version":"2.1.28-alpha.3","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.28-alpha.3","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"afec1e4e49b0f79c44c00255d8814f511f64c9c4","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.28-alpha.3.tgz","fileCount":219,"integrity":"sha512-a6+B5J5bsxtxoi8Z8KOFAqZ2VvNcMIasAVWBJ/fYLt/Uh4OVHYfQ3bQkT7YQE5mEkdY0SHPrkH5gRcn4R4trrg==","signatures":[{"sig":"MEYCIQD19s3OFeEjJrNQ4UtNX7CBghSHg9o7Tt8MpjLwSsdhJwIhAPRnMqtwTlMU4kGz+LzI13BxbrzoCxzbAMLmPbu0G/Ql","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":454697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijKLOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqn9g/5AbwKLVagNITWTXVte89LT7VcHWLKtyR2JCIjYFrRaQf488VL\r\n4oSMNJ+m8BLDViDyfL4skr16wREODkyXW/ImkCjHSwYnSA1slODwl+xsx5M6\r\nFpCuqroaDChXcd9Yymu0F8rweZETzAYdoZh8pqvK+lDvKakoj9TbXpchLnr+\r\n7zPlUeLrb+U0RgX1zkjKNVw6vDwjk9R7mUclQirkmexv7CWcU/H+Wzl8XsgR\r\n8f5LjFRCQ56+BJ9GCI20OW0tJn2uwcnOyq4C+7U0PYm6zf/boOoyHAjVpLBB\r\nnpFNf0PZiGD8hpuDuR12Pa+OngpwDyNf8Rh2XfM2jDJA1hYZP08Momb5yTkF\r\nbRejOLTJn2u0fgCHSk2uD+CDHWw7tbL77lCJ1qhiYX68veEe5ph4ngeNTCC8\r\nOCYvkTrCCZzXaWFiTiItN73CWf+ks2/s/ItKpNLbddeo7K3q0ISApwCwEJb7\r\nVyKchStxRLcPE3ZlLAyFY6mAeyQFBD9ONWhJ6rlORPkntXGLWbWddqR/XVmd\r\nY+YXIrCPeYYcsWKn7KuSjq4YU3AzIwZXNR6CcUCB5Tort/An0Upv0QTV49b0\r\nZTLP4VYtxe446vqg6fYcMbYeOuMScH0katKo3VbTasZ/ZZbmVDSTKJCDvd8S\r\naojZWNRc+CwO4fgfgGORMOtCQ+Gxin6tt2w=\r\n=J8V/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation API\n\nThe Widget Conversation API provides support for reading and writing to a conversational component inside a widget.\n\n## Explore the API\n\nYou can try out and watch the Conversation API in action by clicking the button below.\nKeep in mind that this is for demonstration purposes only and may not be best practice.\nWe do not recommend binding functions to the `Window` object.\n\n[![Edit elegant-jones-rnyrd](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/elegant-jones-rnyrd?fontsize=14&hidenavigation=1&theme=dark)\n\n## Accessing the API\n\nInside a plugin, access the global instance of `ConversationPlatform` by passing in the current `Container` to the `getInstance()` method. It will return a `Promise` that is resolved to the `ConversationPlatform` instance. On the instance, register a provider and pass in a name and handler by calling the `registerProvider()` function as shown below.\n\nThe handler function will be called once a conversational component for the specified provider is activated in the widget. Use the provider to interact with the conversation.\n\n##### Example\n\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n    const platform = await ConversationPlatform.getInstance(container);\n\n    platform.registerProvider('my-chat', (conversation, component) => {\n        // start interacting with the conversation here\n    });\n};\n```\n\n## Writing to the conversation\n\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(content: object)`\n\nReturns a `ConversationEntry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent();\nconst entry = agent.print('Lorem ipsum');\n\nentry.update({\n    // ...\n});\n\nentry.remove();\n```\n\n### Messages\n\n#### Simple text message\n\nUsed to render plain text without HTML-formatting.\n\n##### Example\n\n```ts\n// print user message\nconversation.user.print('Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('Lorem ipsum');\n```\n\n#### Message with list of actions\n\nExample of how to render a list with actions. Is only supported on `Agent` and as system message.\n\n| Name      | Type     | Description                                                   |\n| --------- | -------- | ------------------------------------------------------------- |\n| `title`   | `string` | Title for the entry.                                          |\n| `body`    | `string` | Body content for the entry. Supports HTML.                    |\n| `actions` | `object` | Key-value-pairs representing available actions for the entry. |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n        invoice_190201: 'Invoice 190201',\n        invoice_190301: 'Invoice 190301',\n        invoice_190401: 'Invoice 190401',\n    },\n});\n```\n\n#### Message with a form\n\nExample of how to render a form that can be handled by the `conversation.form` event. Is only supported on `Agent` and as system message.\n\n| Name    | Type                    | Description                                                                                                                                                                            |\n| ------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `title` | `string`                | Title for the entry.                                                                                                                                                                   |\n| `body`  | `string`                | Body content for the entry. Supports HTML.                                                                                                                                             |\n| `form`  | `(FormBuilder) => void` | A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`. |\n| `key`   | `string`                | The key used to refer to the form when validating and submitting the form.                                                                                                             |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n        builder\n            .createComponent({\n                component: 'Text',\n                type: 'number',\n                name: 'id',\n                title: 'ID',\n                required: true,\n            })\n            .createComponent({\n                title: 'Log in',\n                actionKey: 'submit',\n                name: 'submit',\n                component: 'Submit',\n                type: 'submit',\n                evaluate: true,\n                value: 'Log in',\n            });\n    },\n});\n```\n\n### Specify a sender name and/or avatar\n\nTo create an agent with a name and avatar use the `createAgent` method on the conversation.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent({\n    name: 'Mr. Agent',\n    avatar: 'https://www.site.com/avatar.jpg',\n});\n\nagent.print({\n    title: 'I found the following invoices associated to your account:',\n    actions: {\n        action1: 'Action 1',\n        action2: 'Action 2',\n        action3: 'Action 3',\n    },\n});\n```\n\n### Writing system messages\n\nIn order to print a system message to the conversation you invoke the `print` method on the `conversation`. The `print` method accepts the same arguments as on the `Agent`.\n\n#### Example\n\n```ts\nconversation.print('Lorem ipsum');\n```\n\n### Loading/typing indicator\n\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loading()` function on the `ConversationProvider` to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\nIn cases where you want to notify the user that the agent is currently typing, you should use the `typing` function on `Agent`.\n\n#### Example\n\n##### Loading\n\n```ts\nconst done = conversation.loading();\n// ...\ndone(); // remove loader\n```\n\n##### Typing indicator\n\n```ts\nconst done = agent.typing();\n// ...\ndone(); // remove loader\n```\n\n## Reading from the conversation\n\nThe second parameter to your provider handler is a `ComponentNode` instance representing the conversational component. On it you can read the component's properties and react to action emitted by the component.\n\n### Actions\n\nThe following actions are emitted from the conversational component.\n\n**Important**: For default actions it is important to call `next()` unless you want to completely stop the execution flow for the particular action. Not doing so will stop any succeeding handlers and may unintentionally break functionality.\n\n#### `conversation.user-typing`\n\nIs emitted when the user´s typing indicator is changed.\n\n| Name         | Type     | Description                                    |\n| ------------ | -------- | ---------------------------------------------- |\n| `textLength` | `number` | The current text length of the user's message. |\n\n#### `conversation.user-submit`\n\nIs emitted when the user submits a message.\n\n| Name   | Type     | Description         |\n| ------ | -------- | ------------------- |\n| `text` | `string` | The submitted text. |\n\n#### `conversation.action`\n\nIs emitted when the user clicks on an action.\n\n| Name   | Type     | Description                  |\n| ------ | -------- | ---------------------------- |\n| `text` | `string` | Key of the submitted action. |\n\n#### `conversation.form`\n\nIs emitted when the data of a form is changed.\n\n| Name        | Type       | Description                                               |\n| ----------- | ---------- | --------------------------------------------------------- |\n| `data`      | `FormData` | The form data.                                            |\n| `formKey`   | `string`   | The unique key for the form.                              |\n| `actionKey` | `string`   | The key of the form component responsible for the change. |\n\nIn order to subscribe to any of these actions you have access to the `ComponentNodeController`. Below is an example how to subscribe to the `conversation.form` action.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    return next(input);\n});\n```\n\n### Submitting forms\n\nIn order to listen for form events you should subscribe to the `conversation.form` event. By passing a `key` to the form, you are able to target the form in this listener.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    if (input.formKey === 'my-login-form' && input.actionKey === 'submit') {\n        const username = input.data.username;\n        const password = input.data.password;\n    }\n\n    return next(input);\n});\n```\n","gitHead":"374348ac9ecf859c89fbcc64d6b8cd19b9d6fec4","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.2+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.2","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.8","@humany/widget-plugins":"^2.3.12-alpha.0","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.24-alpha.0","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.28-alpha.3_1653383886532_0.5400206823395302","host":"s3://npm-registry-packages"}},"2.1.28-alpha.4":{"name":"@humany/widget-conversation","version":"2.1.28-alpha.4","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.28-alpha.4","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"1b6c6f8b25b8339fef7ecb78fde666b47d001b62","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.28-alpha.4.tgz","fileCount":219,"integrity":"sha512-2B8aEHiGOZR6H4r3FUwrCBIJiq18KOfgesoDYFlD6M42Nzqjh1oZAqOBMLc7cIgkqd8F7FRDP/zC/0GGBMsMEg==","signatures":[{"sig":"MEYCIQDZ21HmM57aMjtMhQTz3RqmlHhKWHDcTwZd71JmY4a/nQIhANpUzTkfrX1S6fMBnQby8XNtSsCXoxEtl55uCyM82HPC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":453756,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijL6kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqHIg//UbOqSVH+0yG9DgSwiRXWwaT2n/EP3HjIOSUvfdQ3kiIEaEoQ\r\nVP3IEQAsVtVcx8oGCoDPqkZbohxj0RM8OlWyqPsjOXdvhsN4WEh9BCzzOeZ/\r\nmnkDTFw4iSM4xA+mHrN6Ru+6se5WicxjCnSX8LSXuvV2f55WppzKvhxqWpKS\r\nU2XXOPoD6XvN9Tz5HgeEoIC/CqcQwtTuqlo7yuYo30+dMrXs7UUm/vuyTzS0\r\nhUTdGlaaYHSJZZ62wO++LTBYGSgor6JTpPyC/YoCS+2lUB4Weoe9g+RkPi1G\r\nYwEbkBaB82LU55MJmEohILYkrLyWTpds68NFHzZYXXAoGu8K8UhoJM9vqE9P\r\nAIfmoiUlHLpLDHg3kE2DASkCT4Zi+eQeRlCxKDd//W7R5HrWWZeBzzXeZYs4\r\nOUBICJcFAE/nQxTkAYDFinugcAlcMWazf3Tg3pkEUu8b4wBEauy8Aj6t8vVY\r\njFhd7cY77emTgCa7GR3tDtptfVFi7vowR8IAXJQYrns7Xdxi//cKriGfiw4J\r\nkHuJO7QSzIR/su9qLKKcHjEYmQCsVf6X1UQoHWw9b+/3keIBP4NaUxxP7W4h\r\nNNa7+UZ9NiRZv4rwOyQwKxMMLPzk2VUuvzX4s052ega3OERqwfACEluIlyFF\r\ny6VZj+8m7mBtUtv9m/qvW5CjaMLNRMUXu/w=\r\n=a+m4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation API\n\nThe Widget Conversation API provides support for reading and writing to a conversational component inside a widget.\n\n## Explore the API\n\nYou can try out and watch the Conversation API in action by clicking the button below.\nKeep in mind that this is for demonstration purposes only and may not be best practice.\nWe do not recommend binding functions to the `Window` object.\n\n[![Edit elegant-jones-rnyrd](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/elegant-jones-rnyrd?fontsize=14&hidenavigation=1&theme=dark)\n\n## Accessing the API\n\nInside a plugin, access the global instance of `ConversationPlatform` by passing in the current `Container` to the `getInstance()` method. It will return a `Promise` that is resolved to the `ConversationPlatform` instance. On the instance, register a provider and pass in a name and handler by calling the `registerProvider()` function as shown below.\n\nThe handler function will be called once a conversational component for the specified provider is activated in the widget. Use the provider to interact with the conversation.\n\n##### Example\n\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n    const platform = await ConversationPlatform.getInstance(container);\n\n    platform.registerProvider('my-chat', (conversation, component) => {\n        // start interacting with the conversation here\n    });\n};\n```\n\n## Writing to the conversation\n\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(content: object)`\n\nReturns a `ConversationEntry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent();\nconst entry = agent.print('Lorem ipsum');\n\nentry.update({\n    // ...\n});\n\nentry.remove();\n```\n\n### Messages\n\n#### Simple text message\n\nUsed to render plain text without HTML-formatting.\n\n##### Example\n\n```ts\n// print user message\nconversation.user.print('Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('Lorem ipsum');\n```\n\n#### Message with list of actions\n\nExample of how to render a list with actions. Is only supported on `Agent` and as system message.\n\n| Name      | Type     | Description                                                   |\n| --------- | -------- | ------------------------------------------------------------- |\n| `title`   | `string` | Title for the entry.                                          |\n| `body`    | `string` | Body content for the entry. Supports HTML.                    |\n| `actions` | `object` | Key-value-pairs representing available actions for the entry. |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n        invoice_190201: 'Invoice 190201',\n        invoice_190301: 'Invoice 190301',\n        invoice_190401: 'Invoice 190401',\n    },\n});\n```\n\n#### Message with a form\n\nExample of how to render a form that can be handled by the `conversation.form` event. Is only supported on `Agent` and as system message.\n\n| Name    | Type                    | Description                                                                                                                                                                            |\n| ------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `title` | `string`                | Title for the entry.                                                                                                                                                                   |\n| `body`  | `string`                | Body content for the entry. Supports HTML.                                                                                                                                             |\n| `form`  | `(FormBuilder) => void` | A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`. |\n| `key`   | `string`                | The key used to refer to the form when validating and submitting the form.                                                                                                             |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n        builder\n            .createComponent({\n                component: 'Text',\n                type: 'number',\n                name: 'id',\n                title: 'ID',\n                required: true,\n            })\n            .createComponent({\n                title: 'Log in',\n                actionKey: 'submit',\n                name: 'submit',\n                component: 'Submit',\n                type: 'submit',\n                evaluate: true,\n                value: 'Log in',\n            });\n    },\n});\n```\n\n### Specify a sender name and/or avatar\n\nTo create an agent with a name and avatar use the `createAgent` method on the conversation.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent({\n    name: 'Mr. Agent',\n    avatar: 'https://www.site.com/avatar.jpg',\n});\n\nagent.print({\n    title: 'I found the following invoices associated to your account:',\n    actions: {\n        action1: 'Action 1',\n        action2: 'Action 2',\n        action3: 'Action 3',\n    },\n});\n```\n\n### Writing system messages\n\nIn order to print a system message to the conversation you invoke the `print` method on the `conversation`. The `print` method accepts the same arguments as on the `Agent`.\n\n#### Example\n\n```ts\nconversation.print('Lorem ipsum');\n```\n\n### Loading/typing indicator\n\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loading()` function on the `ConversationProvider` to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\nIn cases where you want to notify the user that the agent is currently typing, you should use the `typing` function on `Agent`.\n\n#### Example\n\n##### Loading\n\n```ts\nconst done = conversation.loading();\n// ...\ndone(); // remove loader\n```\n\n##### Typing indicator\n\n```ts\nconst done = agent.typing();\n// ...\ndone(); // remove loader\n```\n\n## Reading from the conversation\n\nThe second parameter to your provider handler is a `ComponentNode` instance representing the conversational component. On it you can read the component's properties and react to action emitted by the component.\n\n### Actions\n\nThe following actions are emitted from the conversational component.\n\n**Important**: For default actions it is important to call `next()` unless you want to completely stop the execution flow for the particular action. Not doing so will stop any succeeding handlers and may unintentionally break functionality.\n\n#### `conversation.user-typing`\n\nIs emitted when the user´s typing indicator is changed.\n\n| Name         | Type     | Description                                    |\n| ------------ | -------- | ---------------------------------------------- |\n| `textLength` | `number` | The current text length of the user's message. |\n\n#### `conversation.user-submit`\n\nIs emitted when the user submits a message.\n\n| Name   | Type     | Description         |\n| ------ | -------- | ------------------- |\n| `text` | `string` | The submitted text. |\n\n#### `conversation.action`\n\nIs emitted when the user clicks on an action.\n\n| Name   | Type     | Description                  |\n| ------ | -------- | ---------------------------- |\n| `text` | `string` | Key of the submitted action. |\n\n#### `conversation.form`\n\nIs emitted when the data of a form is changed.\n\n| Name        | Type       | Description                                               |\n| ----------- | ---------- | --------------------------------------------------------- |\n| `data`      | `FormData` | The form data.                                            |\n| `formKey`   | `string`   | The unique key for the form.                              |\n| `actionKey` | `string`   | The key of the form component responsible for the change. |\n\nIn order to subscribe to any of these actions you have access to the `ComponentNodeController`. Below is an example how to subscribe to the `conversation.form` action.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    return next(input);\n});\n```\n\n### Submitting forms\n\nIn order to listen for form events you should subscribe to the `conversation.form` event. By passing a `key` to the form, you are able to target the form in this listener.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    if (input.formKey === 'my-login-form' && input.actionKey === 'submit') {\n        const username = input.data.username;\n        const password = input.data.password;\n    }\n\n    return next(input);\n});\n```\n","gitHead":"200721b0b4889e173c8f8fb40cb52cb438964802","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.2+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.2","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.6","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.8","@humany/widget-plugins":"^2.3.12-alpha.0","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.24-alpha.0","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.28-alpha.4_1653391012687_0.6928544475535505","host":"s3://npm-registry-packages"}},"2.1.28-alpha.5":{"name":"@humany/widget-conversation","version":"2.1.28-alpha.5","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.28-alpha.5","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"cf4d26ab034448d1146d5f57ca1b6637c75088ac","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.28-alpha.5.tgz","fileCount":219,"integrity":"sha512-dwLB7BshKsFo5aE6hFrhKq9qchkwibH1UAFfZ0LnauDedX7EKhmWHaKJ8xl8dNkgpbOjv0Vl2ky5/VMnMfHc8g==","signatures":[{"sig":"MEUCIBjWqF/LDbdL9WQPQaHgTRZkUdmwJxw+nVxArK8oIAGYAiEAy8UotI4S3eTZi/3nYL//VTwhT9gFjwW7Gb0WQ9JSwdA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":453772,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijNcIACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqIyBAAjMRHnd6ZhNWWecw3PpxYG33nRFI1QToOfJqnbdavOwS1eWj2\r\nva29lbxo/b1uys5Pl8igbfGs3T222kG3/4W3S4oAjGoQ5u+0VHn0ps9osdEd\r\nUDpqKr9J+KYvgaaMDQvc/lKgLRe1BJxt9Gztu8wGBFRgVAZ5anL/04ASU25+\r\nt3FhzMOSElzQLl3oM0gIzgy+1s62Ntpmqr8aDD9Bme6i1UZB6PSJlqO98RO3\r\n4QoJjCOWAv1KOBy9C3pn+5hDVb42CK+z4FKoFyMCCoa2i7du/yMQGw6Tvdbs\r\nVqfAZMtONPH3iCauMqCZdF9LEkJqvBncbWxUw95Wb+8mjUrXkLUZLo0s8e5g\r\n3PM+47h+sJUq1EhllRfAyKUSXfMrqoQh0nnygKbqdz+zF1icbPe4vRXK7Rn3\r\nbIls2wiyiKN9W8Gy+QBLMaSHqUUGvNSb6bqP/62mNHDLtDynFT3NyjnTZqp3\r\na5gjU+5bHiGxXPlie15M33qRZEyCLQN1li0yA5lIHkdT6TZRazN9eNVDCd0E\r\npycgbNWv3rsbBxqS7b717jRzjglZqiXZJk3DUwvL9PfviUnmP/XfqVDz1FNQ\r\nXDWueHDQg77x8uAiRIVeb4Bl6NfGnB96y3wWqFi7mqrXzwQmbtbAAMN1gDQ2\r\ntzvy4Bu74/K5hgHPr3H2S24jAh9KHMTFBO0=\r\n=Kp6Y\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation API\n\nThe Widget Conversation API provides support for reading and writing to a conversational component inside a widget.\n\n## Explore the API\n\nYou can try out and watch the Conversation API in action by clicking the button below.\nKeep in mind that this is for demonstration purposes only and may not be best practice.\nWe do not recommend binding functions to the `Window` object.\n\n[![Edit elegant-jones-rnyrd](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/elegant-jones-rnyrd?fontsize=14&hidenavigation=1&theme=dark)\n\n## Accessing the API\n\nInside a plugin, access the global instance of `ConversationPlatform` by passing in the current `Container` to the `getInstance()` method. It will return a `Promise` that is resolved to the `ConversationPlatform` instance. On the instance, register a provider and pass in a name and handler by calling the `registerProvider()` function as shown below.\n\nThe handler function will be called once a conversational component for the specified provider is activated in the widget. Use the provider to interact with the conversation.\n\n##### Example\n\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n    const platform = await ConversationPlatform.getInstance(container);\n\n    platform.registerProvider('my-chat', (conversation, component) => {\n        // start interacting with the conversation here\n    });\n};\n```\n\n## Writing to the conversation\n\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(content: object)`\n\nReturns a `ConversationEntry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent();\nconst entry = agent.print('Lorem ipsum');\n\nentry.update({\n    // ...\n});\n\nentry.remove();\n```\n\n### Messages\n\n#### Simple text message\n\nUsed to render plain text without HTML-formatting.\n\n##### Example\n\n```ts\n// print user message\nconversation.user.print('Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('Lorem ipsum');\n```\n\n#### Message with list of actions\n\nExample of how to render a list with actions. Is only supported on `Agent` and as system message.\n\n| Name      | Type     | Description                                                   |\n| --------- | -------- | ------------------------------------------------------------- |\n| `title`   | `string` | Title for the entry.                                          |\n| `body`    | `string` | Body content for the entry. Supports HTML.                    |\n| `actions` | `object` | Key-value-pairs representing available actions for the entry. |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n        invoice_190201: 'Invoice 190201',\n        invoice_190301: 'Invoice 190301',\n        invoice_190401: 'Invoice 190401',\n    },\n});\n```\n\n#### Message with a form\n\nExample of how to render a form that can be handled by the `conversation.form` event. Is only supported on `Agent` and as system message.\n\n| Name    | Type                    | Description                                                                                                                                                                            |\n| ------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `title` | `string`                | Title for the entry.                                                                                                                                                                   |\n| `body`  | `string`                | Body content for the entry. Supports HTML.                                                                                                                                             |\n| `form`  | `(FormBuilder) => void` | A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`. |\n| `key`   | `string`                | The key used to refer to the form when validating and submitting the form.                                                                                                             |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n        builder\n            .createComponent({\n                component: 'Text',\n                type: 'number',\n                name: 'id',\n                title: 'ID',\n                required: true,\n            })\n            .createComponent({\n                title: 'Log in',\n                actionKey: 'submit',\n                name: 'submit',\n                component: 'Submit',\n                type: 'submit',\n                evaluate: true,\n                value: 'Log in',\n            });\n    },\n});\n```\n\n### Specify a sender name and/or avatar\n\nTo create an agent with a name and avatar use the `createAgent` method on the conversation.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent({\n    name: 'Mr. Agent',\n    avatar: 'https://www.site.com/avatar.jpg',\n});\n\nagent.print({\n    title: 'I found the following invoices associated to your account:',\n    actions: {\n        action1: 'Action 1',\n        action2: 'Action 2',\n        action3: 'Action 3',\n    },\n});\n```\n\n### Writing system messages\n\nIn order to print a system message to the conversation you invoke the `print` method on the `conversation`. The `print` method accepts the same arguments as on the `Agent`.\n\n#### Example\n\n```ts\nconversation.print('Lorem ipsum');\n```\n\n### Loading/typing indicator\n\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loading()` function on the `ConversationProvider` to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\nIn cases where you want to notify the user that the agent is currently typing, you should use the `typing` function on `Agent`.\n\n#### Example\n\n##### Loading\n\n```ts\nconst done = conversation.loading();\n// ...\ndone(); // remove loader\n```\n\n##### Typing indicator\n\n```ts\nconst done = agent.typing();\n// ...\ndone(); // remove loader\n```\n\n## Reading from the conversation\n\nThe second parameter to your provider handler is a `ComponentNode` instance representing the conversational component. On it you can read the component's properties and react to action emitted by the component.\n\n### Actions\n\nThe following actions are emitted from the conversational component.\n\n**Important**: For default actions it is important to call `next()` unless you want to completely stop the execution flow for the particular action. Not doing so will stop any succeeding handlers and may unintentionally break functionality.\n\n#### `conversation.user-typing`\n\nIs emitted when the user´s typing indicator is changed.\n\n| Name         | Type     | Description                                    |\n| ------------ | -------- | ---------------------------------------------- |\n| `textLength` | `number` | The current text length of the user's message. |\n\n#### `conversation.user-submit`\n\nIs emitted when the user submits a message.\n\n| Name   | Type     | Description         |\n| ------ | -------- | ------------------- |\n| `text` | `string` | The submitted text. |\n\n#### `conversation.action`\n\nIs emitted when the user clicks on an action.\n\n| Name   | Type     | Description                  |\n| ------ | -------- | ---------------------------- |\n| `text` | `string` | Key of the submitted action. |\n\n#### `conversation.form`\n\nIs emitted when the data of a form is changed.\n\n| Name        | Type       | Description                                               |\n| ----------- | ---------- | --------------------------------------------------------- |\n| `data`      | `FormData` | The form data.                                            |\n| `formKey`   | `string`   | The unique key for the form.                              |\n| `actionKey` | `string`   | The key of the form component responsible for the change. |\n\nIn order to subscribe to any of these actions you have access to the `ComponentNodeController`. Below is an example how to subscribe to the `conversation.form` action.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    return next(input);\n});\n```\n\n### Submitting forms\n\nIn order to listen for form events you should subscribe to the `conversation.form` event. By passing a `key` to the form, you are able to target the form in this listener.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    if (input.formKey === 'my-login-form' && input.actionKey === 'submit') {\n        const username = input.data.username;\n        const password = input.data.password;\n    }\n\n    return next(input);\n});\n```\n","gitHead":"96975e118259606ed87126fd12ef80832478d01a","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.2+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.2","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.7-alpha.0","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.9-alpha.0","@humany/widget-plugins":"^2.3.12-alpha.1","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.24-alpha.1","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.28-alpha.5_1653397256214_0.5527714324224295","host":"s3://npm-registry-packages"}},"2.1.28-alpha.6":{"name":"@humany/widget-conversation","version":"2.1.28-alpha.6","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.28-alpha.6","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"1732ec4174afb8ff6daedb1210738e03b85e0360","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.28-alpha.6.tgz","fileCount":219,"integrity":"sha512-N3LJliCp/ttIGT1HVIZHooXzPSRl571lkfMShmfAnY2880ih2DPwm05eWuAesLL6yCYzQn8H93gPt2DiYMpV2g==","signatures":[{"sig":"MEQCIDyjH3ldSV+HahP+EaUjRtM3ifLScXFwp+1jJSTS+n4cAiAoO7PcSKJzry685hNgmIcApwLrLKuJ4+1loSRBp5qnPA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":453772,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijNsnACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrURQ//VPJn+zwP9poIsV22sSRUGlsE+AOMY18LKiSaqLFSGo6A1Y/S\r\n7/0o1yO/dsS/h4VrlL0P1FdvnNe0+fEvvhlKw7QLL8SWAu+a2cVhhgo6PvuF\r\nXipyKh1kRTG1op6qSzXF7vLIgfhr3/9cDJFnqCPdVVzx/bnF66q0v1/D3KXK\r\namlgdjzdyry8I9bIdRYU9o5ydL59HB3RmYsPzJnDY5V3hslUqYsJjKwMkm5h\r\nutDKyzye/OIHtiaX91rhHQ/KQGmEWxE4yuRcdMwKNSFsjPP9+vALAIfIc6kr\r\nZ0e1PrasWbGIdXTtmvCUgIujiLjvno+W1G1fEVhnnlRi/jW59CU+batHz+0j\r\nb7n7XCINw8FcPFFaLiMWhfZEaAAZfKII0bWoG73JRxSswCtes3YEv2FvYuxR\r\nyZgi2GIBWVMwfaEm6sKce7WXMXvoMPlvOVR0F46tvAk+mqGnxKpXlXDiWGKT\r\np83jzI+vwQPoHOH5A5dFas7wdpVDbcj8OxXzl6vnzHezO7h1nx7iG+qOWvcG\r\ni83FxCFHj0rC5IMvHD+zK1u02tJi527EfA2gxKo5uUNZoxt1MJ99N53pd5Sl\r\nhtaq2gN9BvFN6kN4xSrAC+MStKO02YVnSJSG15/YH/0WwsrDxP+bzULTWlLH\r\nedrVEo9EcOGrV5vk3WlRltOb2TeplW+SDeo=\r\n=2Z7I\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation API\n\nThe Widget Conversation API provides support for reading and writing to a conversational component inside a widget.\n\n## Explore the API\n\nYou can try out and watch the Conversation API in action by clicking the button below.\nKeep in mind that this is for demonstration purposes only and may not be best practice.\nWe do not recommend binding functions to the `Window` object.\n\n[![Edit elegant-jones-rnyrd](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/elegant-jones-rnyrd?fontsize=14&hidenavigation=1&theme=dark)\n\n## Accessing the API\n\nInside a plugin, access the global instance of `ConversationPlatform` by passing in the current `Container` to the `getInstance()` method. It will return a `Promise` that is resolved to the `ConversationPlatform` instance. On the instance, register a provider and pass in a name and handler by calling the `registerProvider()` function as shown below.\n\nThe handler function will be called once a conversational component for the specified provider is activated in the widget. Use the provider to interact with the conversation.\n\n##### Example\n\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n    const platform = await ConversationPlatform.getInstance(container);\n\n    platform.registerProvider('my-chat', (conversation, component) => {\n        // start interacting with the conversation here\n    });\n};\n```\n\n## Writing to the conversation\n\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(content: object)`\n\nReturns a `ConversationEntry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent();\nconst entry = agent.print('Lorem ipsum');\n\nentry.update({\n    // ...\n});\n\nentry.remove();\n```\n\n### Messages\n\n#### Simple text message\n\nUsed to render plain text without HTML-formatting.\n\n##### Example\n\n```ts\n// print user message\nconversation.user.print('Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('Lorem ipsum');\n```\n\n#### Message with list of actions\n\nExample of how to render a list with actions. Is only supported on `Agent` and as system message.\n\n| Name      | Type     | Description                                                   |\n| --------- | -------- | ------------------------------------------------------------- |\n| `title`   | `string` | Title for the entry.                                          |\n| `body`    | `string` | Body content for the entry. Supports HTML.                    |\n| `actions` | `object` | Key-value-pairs representing available actions for the entry. |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n        invoice_190201: 'Invoice 190201',\n        invoice_190301: 'Invoice 190301',\n        invoice_190401: 'Invoice 190401',\n    },\n});\n```\n\n#### Message with a form\n\nExample of how to render a form that can be handled by the `conversation.form` event. Is only supported on `Agent` and as system message.\n\n| Name    | Type                    | Description                                                                                                                                                                            |\n| ------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `title` | `string`                | Title for the entry.                                                                                                                                                                   |\n| `body`  | `string`                | Body content for the entry. Supports HTML.                                                                                                                                             |\n| `form`  | `(FormBuilder) => void` | A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`. |\n| `key`   | `string`                | The key used to refer to the form when validating and submitting the form.                                                                                                             |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n        builder\n            .createComponent({\n                component: 'Text',\n                type: 'number',\n                name: 'id',\n                title: 'ID',\n                required: true,\n            })\n            .createComponent({\n                title: 'Log in',\n                actionKey: 'submit',\n                name: 'submit',\n                component: 'Submit',\n                type: 'submit',\n                evaluate: true,\n                value: 'Log in',\n            });\n    },\n});\n```\n\n### Specify a sender name and/or avatar\n\nTo create an agent with a name and avatar use the `createAgent` method on the conversation.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent({\n    name: 'Mr. Agent',\n    avatar: 'https://www.site.com/avatar.jpg',\n});\n\nagent.print({\n    title: 'I found the following invoices associated to your account:',\n    actions: {\n        action1: 'Action 1',\n        action2: 'Action 2',\n        action3: 'Action 3',\n    },\n});\n```\n\n### Writing system messages\n\nIn order to print a system message to the conversation you invoke the `print` method on the `conversation`. The `print` method accepts the same arguments as on the `Agent`.\n\n#### Example\n\n```ts\nconversation.print('Lorem ipsum');\n```\n\n### Loading/typing indicator\n\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loading()` function on the `ConversationProvider` to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\nIn cases where you want to notify the user that the agent is currently typing, you should use the `typing` function on `Agent`.\n\n#### Example\n\n##### Loading\n\n```ts\nconst done = conversation.loading();\n// ...\ndone(); // remove loader\n```\n\n##### Typing indicator\n\n```ts\nconst done = agent.typing();\n// ...\ndone(); // remove loader\n```\n\n## Reading from the conversation\n\nThe second parameter to your provider handler is a `ComponentNode` instance representing the conversational component. On it you can read the component's properties and react to action emitted by the component.\n\n### Actions\n\nThe following actions are emitted from the conversational component.\n\n**Important**: For default actions it is important to call `next()` unless you want to completely stop the execution flow for the particular action. Not doing so will stop any succeeding handlers and may unintentionally break functionality.\n\n#### `conversation.user-typing`\n\nIs emitted when the user´s typing indicator is changed.\n\n| Name         | Type     | Description                                    |\n| ------------ | -------- | ---------------------------------------------- |\n| `textLength` | `number` | The current text length of the user's message. |\n\n#### `conversation.user-submit`\n\nIs emitted when the user submits a message.\n\n| Name   | Type     | Description         |\n| ------ | -------- | ------------------- |\n| `text` | `string` | The submitted text. |\n\n#### `conversation.action`\n\nIs emitted when the user clicks on an action.\n\n| Name   | Type     | Description                  |\n| ------ | -------- | ---------------------------- |\n| `text` | `string` | Key of the submitted action. |\n\n#### `conversation.form`\n\nIs emitted when the data of a form is changed.\n\n| Name        | Type       | Description                                               |\n| ----------- | ---------- | --------------------------------------------------------- |\n| `data`      | `FormData` | The form data.                                            |\n| `formKey`   | `string`   | The unique key for the form.                              |\n| `actionKey` | `string`   | The key of the form component responsible for the change. |\n\nIn order to subscribe to any of these actions you have access to the `ComponentNodeController`. Below is an example how to subscribe to the `conversation.form` action.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    return next(input);\n});\n```\n\n### Submitting forms\n\nIn order to listen for form events you should subscribe to the `conversation.form` event. By passing a `key` to the form, you are able to target the form in this listener.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    if (input.formKey === 'my-login-form' && input.actionKey === 'submit') {\n        const username = input.data.username;\n        const password = input.data.password;\n    }\n\n    return next(input);\n});\n```\n","gitHead":"36b6cd76c9652520a2e636e4b1966a5405e0047e","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.2+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.2","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.7-alpha.1","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.9-alpha.1","@humany/widget-plugins":"^2.3.12-alpha.2","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.24-alpha.2","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.28-alpha.6_1653398310751_0.2164808272538521","host":"s3://npm-registry-packages"}},"2.1.28-alpha.7":{"name":"@humany/widget-conversation","version":"2.1.28-alpha.7","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.28-alpha.7","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"1a3281ab9655ed319ad79432a25bedd6f1655c25","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.28-alpha.7.tgz","fileCount":219,"integrity":"sha512-Ld1Vh9st8EOBj9ZdKKXTiSgUw/JufYllUKK0yVO7psjaHAHfXEg8vJN0XJ7105/TmKnqepiX46Vot2fN6K+t7A==","signatures":[{"sig":"MEUCID8tnqw84HOLRfBclyItAfd83ASSXIn6ALUpd/ri7R24AiEAgsz6EoTh8fEhyrk46G0HYvTAIC/tPlY32T0QrZnsB3k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":453772,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijNyJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqf9hAAncwejOZfXArSSaleYo2aNgnIf0oMjcppfKWqbd/imPtNa5sY\r\nwMeeIWf56pvhtDGb0gZG9ob+9EnWmv5PF/RIU5HJqAUD4HzsZYIR/Zj+zaHt\r\nqlebzx91CD+Wt5kraTnc9jW7UVDmkRLSCnqk5/tsq6dDn9tEu1gCDoyCl7mE\r\nUK++/e1RM3JOu+qevEkL9qWzp4I0DzhV2KNgUsAPSZgMhJnGFDAIuxpRFU+v\r\nAkeVdle5u8Q+l7DZHJAKA8BqinWCd3KdWPUj4jy5jNF621jh4Iqio03QoObm\r\nwNUBYi0yQwjDeHqKnLw0OIJB17te+vhfQSQEhSgYv45zwGaSfcabJeTUp6pA\r\nQ+Uc3FwbLZIgVbw2i0oxX4BROIcYos7WoY4yjaTr8Zy1cyyajvbNRzlfWRMM\r\n2uRedATtlU/UjTiU0axlYEK+6u6l8BoPT7+Js10delfDv9qIWkLgrspr2GEU\r\ntBIahcKgFgraGlS8UDakg2dtuxV4JIsahMjQD02nGL0I/TCiSseZt1ZtJ4dG\r\ndpNDOWGcnFMcTyXTf1CGB0u6nqpW08i2GKth728+Tt86n5AsKx45n3Lds7ws\r\nLsweOJ3KlVgBZVH6PRoNlGP57Wf3tffoBpOOdHF9akS6IErbTM2M8B6Y2QiI\r\nSiyBBR/zKLZ4vUj7FItPqw6FVSZIrTZFRrA=\r\n=E613\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation API\n\nThe Widget Conversation API provides support for reading and writing to a conversational component inside a widget.\n\n## Explore the API\n\nYou can try out and watch the Conversation API in action by clicking the button below.\nKeep in mind that this is for demonstration purposes only and may not be best practice.\nWe do not recommend binding functions to the `Window` object.\n\n[![Edit elegant-jones-rnyrd](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/elegant-jones-rnyrd?fontsize=14&hidenavigation=1&theme=dark)\n\n## Accessing the API\n\nInside a plugin, access the global instance of `ConversationPlatform` by passing in the current `Container` to the `getInstance()` method. It will return a `Promise` that is resolved to the `ConversationPlatform` instance. On the instance, register a provider and pass in a name and handler by calling the `registerProvider()` function as shown below.\n\nThe handler function will be called once a conversational component for the specified provider is activated in the widget. Use the provider to interact with the conversation.\n\n##### Example\n\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n    const platform = await ConversationPlatform.getInstance(container);\n\n    platform.registerProvider('my-chat', (conversation, component) => {\n        // start interacting with the conversation here\n    });\n};\n```\n\n## Writing to the conversation\n\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(content: object)`\n\nReturns a `ConversationEntry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent();\nconst entry = agent.print('Lorem ipsum');\n\nentry.update({\n    // ...\n});\n\nentry.remove();\n```\n\n### Messages\n\n#### Simple text message\n\nUsed to render plain text without HTML-formatting.\n\n##### Example\n\n```ts\n// print user message\nconversation.user.print('Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('Lorem ipsum');\n```\n\n#### Message with list of actions\n\nExample of how to render a list with actions. Is only supported on `Agent` and as system message.\n\n| Name      | Type     | Description                                                   |\n| --------- | -------- | ------------------------------------------------------------- |\n| `title`   | `string` | Title for the entry.                                          |\n| `body`    | `string` | Body content for the entry. Supports HTML.                    |\n| `actions` | `object` | Key-value-pairs representing available actions for the entry. |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n        invoice_190201: 'Invoice 190201',\n        invoice_190301: 'Invoice 190301',\n        invoice_190401: 'Invoice 190401',\n    },\n});\n```\n\n#### Message with a form\n\nExample of how to render a form that can be handled by the `conversation.form` event. Is only supported on `Agent` and as system message.\n\n| Name    | Type                    | Description                                                                                                                                                                            |\n| ------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `title` | `string`                | Title for the entry.                                                                                                                                                                   |\n| `body`  | `string`                | Body content for the entry. Supports HTML.                                                                                                                                             |\n| `form`  | `(FormBuilder) => void` | A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`. |\n| `key`   | `string`                | The key used to refer to the form when validating and submitting the form.                                                                                                             |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n        builder\n            .createComponent({\n                component: 'Text',\n                type: 'number',\n                name: 'id',\n                title: 'ID',\n                required: true,\n            })\n            .createComponent({\n                title: 'Log in',\n                actionKey: 'submit',\n                name: 'submit',\n                component: 'Submit',\n                type: 'submit',\n                evaluate: true,\n                value: 'Log in',\n            });\n    },\n});\n```\n\n### Specify a sender name and/or avatar\n\nTo create an agent with a name and avatar use the `createAgent` method on the conversation.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent({\n    name: 'Mr. Agent',\n    avatar: 'https://www.site.com/avatar.jpg',\n});\n\nagent.print({\n    title: 'I found the following invoices associated to your account:',\n    actions: {\n        action1: 'Action 1',\n        action2: 'Action 2',\n        action3: 'Action 3',\n    },\n});\n```\n\n### Writing system messages\n\nIn order to print a system message to the conversation you invoke the `print` method on the `conversation`. The `print` method accepts the same arguments as on the `Agent`.\n\n#### Example\n\n```ts\nconversation.print('Lorem ipsum');\n```\n\n### Loading/typing indicator\n\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loading()` function on the `ConversationProvider` to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\nIn cases where you want to notify the user that the agent is currently typing, you should use the `typing` function on `Agent`.\n\n#### Example\n\n##### Loading\n\n```ts\nconst done = conversation.loading();\n// ...\ndone(); // remove loader\n```\n\n##### Typing indicator\n\n```ts\nconst done = agent.typing();\n// ...\ndone(); // remove loader\n```\n\n## Reading from the conversation\n\nThe second parameter to your provider handler is a `ComponentNode` instance representing the conversational component. On it you can read the component's properties and react to action emitted by the component.\n\n### Actions\n\nThe following actions are emitted from the conversational component.\n\n**Important**: For default actions it is important to call `next()` unless you want to completely stop the execution flow for the particular action. Not doing so will stop any succeeding handlers and may unintentionally break functionality.\n\n#### `conversation.user-typing`\n\nIs emitted when the user´s typing indicator is changed.\n\n| Name         | Type     | Description                                    |\n| ------------ | -------- | ---------------------------------------------- |\n| `textLength` | `number` | The current text length of the user's message. |\n\n#### `conversation.user-submit`\n\nIs emitted when the user submits a message.\n\n| Name   | Type     | Description         |\n| ------ | -------- | ------------------- |\n| `text` | `string` | The submitted text. |\n\n#### `conversation.action`\n\nIs emitted when the user clicks on an action.\n\n| Name   | Type     | Description                  |\n| ------ | -------- | ---------------------------- |\n| `text` | `string` | Key of the submitted action. |\n\n#### `conversation.form`\n\nIs emitted when the data of a form is changed.\n\n| Name        | Type       | Description                                               |\n| ----------- | ---------- | --------------------------------------------------------- |\n| `data`      | `FormData` | The form data.                                            |\n| `formKey`   | `string`   | The unique key for the form.                              |\n| `actionKey` | `string`   | The key of the form component responsible for the change. |\n\nIn order to subscribe to any of these actions you have access to the `ComponentNodeController`. Below is an example how to subscribe to the `conversation.form` action.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    return next(input);\n});\n```\n\n### Submitting forms\n\nIn order to listen for form events you should subscribe to the `conversation.form` event. By passing a `key` to the form, you are able to target the form in this listener.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    if (input.formKey === 'my-login-form' && input.actionKey === 'submit') {\n        const username = input.data.username;\n        const password = input.data.password;\n    }\n\n    return next(input);\n});\n```\n","gitHead":"7ff366d9124828b3b14adcebe55c540c7ac3d672","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.2+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.2","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.7-alpha.2","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.9-alpha.2","@humany/widget-plugins":"^2.3.12-alpha.3","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.24-alpha.3","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.28-alpha.7_1653398665580_0.9642277825576011","host":"s3://npm-registry-packages"}},"2.1.28-alpha.8":{"name":"@humany/widget-conversation","version":"2.1.28-alpha.8","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.28-alpha.8","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"49340c32846c4b4332ddd1321317dddc443a5e3f","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.28-alpha.8.tgz","fileCount":219,"integrity":"sha512-mgs2M0icnYAcOMWd5hO2BP2OJ46hkKTw5K/3m870P3bGKq/YnqnAwfIgRbfYN21uucE31Ayrtanl5ko7PCOyyQ==","signatures":[{"sig":"MEUCIQCT0GeduCPy2mWF6rcPTwlgoHzn8xI2wQA+YfyQKDGxAAIgSCltpZRTXz/oacdVXyT72G8N5rriq1aqwntB3xhx4JA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":453772,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijTZ/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr0aw/+IB+g953bJqj76Avix6mHvvhloaSjg+MYoE9FOEWfFtlBfdWh\r\nPBfzPYwEq1E1ig/xiorIRip6hW2IPPBYpLhhfU+PSxGtDmbXFUVkpAr3mgdz\r\nymT48qnjZ4bGRdIIP0phycQWV0IxDzpwxVjoR+klP+M7GtdZDHNjz9fomCM1\r\nKx/Gr2Y7aQHIRDPOC5IzBWoRFoIC3RUn2W89DthbutJl28f8uD5dfsHrh8KK\r\n8GDZux8bgvX54GwOlyvWbgniBB2Wp0DqsRSno1Hf3NEW2WSXoPzyNDm+B2k+\r\nb6SPPOt2Iwfw6FMv++RSYdHJshVgqfrICC9rp6iXPxxVG/i3zqTJqhCMVZnX\r\n28ItTGSYKaNG+45/7nzCqlBy0ZLj7pKyPIjj2ZWaa+6W+ugDi+2Sx42rDnFF\r\nU09sF1/UTDdy06flslZ9pfBVs/sJDEekndULUPfTGYixDRSyxClBb2o7Au89\r\nbWKU/OImaEdIfs8heWADacQ6m70iE0hotEScmbaCnenJDlU49rkzm8Em6LAJ\r\nG6ISs+Odgt+x3u/veF+WIsJu7t95YtkmNrGg8huBlitdVDtZdS4nAHtG5NAJ\r\nX6H9okujJoXONt+vWBTpzCYFYSM8sNVK5KZ+ruG7VrYBk8QtY8iNZaZ+FlLC\r\nGCAtSXpPZqr5rNNDZG5NMl+aKoEwDwNioG0=\r\n=3Eg/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation API\n\nThe Widget Conversation API provides support for reading and writing to a conversational component inside a widget.\n\n## Explore the API\n\nYou can try out and watch the Conversation API in action by clicking the button below.\nKeep in mind that this is for demonstration purposes only and may not be best practice.\nWe do not recommend binding functions to the `Window` object.\n\n[![Edit elegant-jones-rnyrd](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/elegant-jones-rnyrd?fontsize=14&hidenavigation=1&theme=dark)\n\n## Accessing the API\n\nInside a plugin, access the global instance of `ConversationPlatform` by passing in the current `Container` to the `getInstance()` method. It will return a `Promise` that is resolved to the `ConversationPlatform` instance. On the instance, register a provider and pass in a name and handler by calling the `registerProvider()` function as shown below.\n\nThe handler function will be called once a conversational component for the specified provider is activated in the widget. Use the provider to interact with the conversation.\n\n##### Example\n\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n    const platform = await ConversationPlatform.getInstance(container);\n\n    platform.registerProvider('my-chat', (conversation, component) => {\n        // start interacting with the conversation here\n    });\n};\n```\n\n## Writing to the conversation\n\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(content: object)`\n\nReturns a `ConversationEntry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent();\nconst entry = agent.print('Lorem ipsum');\n\nentry.update({\n    // ...\n});\n\nentry.remove();\n```\n\n### Messages\n\n#### Simple text message\n\nUsed to render plain text without HTML-formatting.\n\n##### Example\n\n```ts\n// print user message\nconversation.user.print('Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('Lorem ipsum');\n```\n\n#### Message with list of actions\n\nExample of how to render a list with actions. Is only supported on `Agent` and as system message.\n\n| Name      | Type     | Description                                                   |\n| --------- | -------- | ------------------------------------------------------------- |\n| `title`   | `string` | Title for the entry.                                          |\n| `body`    | `string` | Body content for the entry. Supports HTML.                    |\n| `actions` | `object` | Key-value-pairs representing available actions for the entry. |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n        invoice_190201: 'Invoice 190201',\n        invoice_190301: 'Invoice 190301',\n        invoice_190401: 'Invoice 190401',\n    },\n});\n```\n\n#### Message with a form\n\nExample of how to render a form that can be handled by the `conversation.form` event. Is only supported on `Agent` and as system message.\n\n| Name    | Type                    | Description                                                                                                                                                                            |\n| ------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `title` | `string`                | Title for the entry.                                                                                                                                                                   |\n| `body`  | `string`                | Body content for the entry. Supports HTML.                                                                                                                                             |\n| `form`  | `(FormBuilder) => void` | A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`. |\n| `key`   | `string`                | The key used to refer to the form when validating and submitting the form.                                                                                                             |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n        builder\n            .createComponent({\n                component: 'Text',\n                type: 'number',\n                name: 'id',\n                title: 'ID',\n                required: true,\n            })\n            .createComponent({\n                title: 'Log in',\n                actionKey: 'submit',\n                name: 'submit',\n                component: 'Submit',\n                type: 'submit',\n                evaluate: true,\n                value: 'Log in',\n            });\n    },\n});\n```\n\n### Specify a sender name and/or avatar\n\nTo create an agent with a name and avatar use the `createAgent` method on the conversation.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent({\n    name: 'Mr. Agent',\n    avatar: 'https://www.site.com/avatar.jpg',\n});\n\nagent.print({\n    title: 'I found the following invoices associated to your account:',\n    actions: {\n        action1: 'Action 1',\n        action2: 'Action 2',\n        action3: 'Action 3',\n    },\n});\n```\n\n### Writing system messages\n\nIn order to print a system message to the conversation you invoke the `print` method on the `conversation`. The `print` method accepts the same arguments as on the `Agent`.\n\n#### Example\n\n```ts\nconversation.print('Lorem ipsum');\n```\n\n### Loading/typing indicator\n\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loading()` function on the `ConversationProvider` to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\nIn cases where you want to notify the user that the agent is currently typing, you should use the `typing` function on `Agent`.\n\n#### Example\n\n##### Loading\n\n```ts\nconst done = conversation.loading();\n// ...\ndone(); // remove loader\n```\n\n##### Typing indicator\n\n```ts\nconst done = agent.typing();\n// ...\ndone(); // remove loader\n```\n\n## Reading from the conversation\n\nThe second parameter to your provider handler is a `ComponentNode` instance representing the conversational component. On it you can read the component's properties and react to action emitted by the component.\n\n### Actions\n\nThe following actions are emitted from the conversational component.\n\n**Important**: For default actions it is important to call `next()` unless you want to completely stop the execution flow for the particular action. Not doing so will stop any succeeding handlers and may unintentionally break functionality.\n\n#### `conversation.user-typing`\n\nIs emitted when the user´s typing indicator is changed.\n\n| Name         | Type     | Description                                    |\n| ------------ | -------- | ---------------------------------------------- |\n| `textLength` | `number` | The current text length of the user's message. |\n\n#### `conversation.user-submit`\n\nIs emitted when the user submits a message.\n\n| Name   | Type     | Description         |\n| ------ | -------- | ------------------- |\n| `text` | `string` | The submitted text. |\n\n#### `conversation.action`\n\nIs emitted when the user clicks on an action.\n\n| Name   | Type     | Description                  |\n| ------ | -------- | ---------------------------- |\n| `text` | `string` | Key of the submitted action. |\n\n#### `conversation.form`\n\nIs emitted when the data of a form is changed.\n\n| Name        | Type       | Description                                               |\n| ----------- | ---------- | --------------------------------------------------------- |\n| `data`      | `FormData` | The form data.                                            |\n| `formKey`   | `string`   | The unique key for the form.                              |\n| `actionKey` | `string`   | The key of the form component responsible for the change. |\n\nIn order to subscribe to any of these actions you have access to the `ComponentNodeController`. Below is an example how to subscribe to the `conversation.form` action.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    return next(input);\n});\n```\n\n### Submitting forms\n\nIn order to listen for form events you should subscribe to the `conversation.form` event. By passing a `key` to the form, you are able to target the form in this listener.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    if (input.formKey === 'my-login-form' && input.actionKey === 'submit') {\n        const username = input.data.username;\n        const password = input.data.password;\n    }\n\n    return next(input);\n});\n```\n","gitHead":"73771a662ef8903f967faedbb0cffda18476452c","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"},"typings":"lib/index.d.ts","_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.13.2+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.2","dependencies":{"@humany/utils":"^2.1.4","@humany/widget-ui":"^2.2.7-alpha.3","styled-components":"^4.3.2","@humany/widget-core":"^2.0.11","@humany/widget-forms":"^2.1.9-alpha.3","@humany/widget-plugins":"^2.3.12-alpha.4","@humany/widget-routing":"^2.0.12","@humany/widget-adapters":"^2.0.24-alpha.4","@humany/widget-services":"^2.0.8","@webprovisions/platform":"^1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"27.3.1","ts-jest":"27.0.7","@types/jest":"27.0.2"},"peerDependencies":{"react":"^16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.28-alpha.8_1653421695434_0.6565342828299066","host":"s3://npm-registry-packages"}},"1.0.0-beta.40":{"name":"@humany/widget-conversation","version":"1.0.0-beta.40","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.40","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"85485388dcaca769ed194a4ca68f037ec8258f73","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.40.tgz","fileCount":75,"integrity":"sha512-zUktueHi/FPZDAK7IuM/8WMmaGKrFfjHnG+TGRMOAJQ4UmHwJUjrV1mvwZMRMUZwgHBlP/y+7xyCGYTa0RTedg==","signatures":[{"sig":"MEUCIG6xkf1ze6ai0eJ/dfyD3jQkPrNH526433fyQrwJ6lJKAiEAlK10XbIYKCfBT6LY4fMq6YkBcXLOKFHv6XmWeZgiEzg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":137926,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiq0EdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpu1RAAm2Q/tHfLO2vtR4WmilYaZ5yqXWB2ukxt7WF1xQfv252gyhNH\r\njLuWFUM6JSs7hzjs1HOLaSqv6rc2qXOsyXON5NAEtppNeyYnSq+F9omm3d2y\r\nJLIx5h9DuvUtu8jvsAFAGlqbyBq5DVBagcON/PL1vISTou8mAio+SUNeTYN9\r\nTDkW354GTAQ1Qo5vIrYJGXsxEh705D0nbap4jn2zxEcjgoaxj0FYyDRhPLhA\r\n6WHO31uHE1t5zg7FDprn76ihrgVOe0+VdTg3027+mR6thBGbgfRPI/G+aDXk\r\nE/xICZG+JSnRAvKd7K/RWJKLT74D9UnWbrdPMugsrUXzmv9nQlB4z/bn0+b3\r\ndXUYcIth3kfGdzLmm4rHAFuu+K5zrkkYG0RxeXHNxHxknJigPhzXCMdihxL5\r\n1z1oiVhCpCmOB75GOx4SxyCX8pV3fgwpzslh+O0ZDdmeVhYEL+2fExQ2Zosv\r\nwx6ki20pqUI1+pegUzn5dZTGSyYkOewNH6Gv7nHoovwDSx0K+8ijxQCT4IzD\r\npJytxyfXaWTyED58uiUROqwDBOliWCT1qdJ74jVgsw/iTo728UBDK6I7BxmI\r\nr8t3hJt68SbwAfio+YXhN3ckj8bHY7gECaLfOVZlMTNPS1dY0LdNTPBveQU4\r\nVzAMzE7+s8fGOr6rfqWGPm0gXyK0EfXqNcA=\r\n=ihHi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"7c5cbc01fd60772fdf086f69d56b88f51186d363","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.19.0/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^1.1.6","@humany/widget-data":"^1.0.24","@humany/widget-forms":"^1.1.11","@humany/widget-adapters":"^1.2.12","@webprovisions/platform":"^1.1.2"},"publishConfig":{"tag":"previous","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.40_1655390492834_0.9000839626268122","host":"s3://npm-registry-packages"}},"1.0.0-beta.41":{"name":"@humany/widget-conversation","version":"1.0.0-beta.41","keywords":["humany"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@1.0.0-beta.41","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"dff155960d2cc9448ba3cd99e53468ccc248f630","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-1.0.0-beta.41.tgz","fileCount":75,"integrity":"sha512-J6zcjojDwo9rHEnoZZYetaoyetkUOYyOSTUF8YCA4a8KpUqg6Nii1+a1pJj983Zuwsafezezq0p3VThwl7AyjQ==","signatures":[{"sig":"MEQCIEilnmLsX1Rt2t5FoVn4A9xNM2idvDzu3YktKVNaQzL8AiB9pVPk4tA0l0zrMOJcrALaUFQvGZva+YvoYyftzFDNZQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":137926,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJitDc8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqd+A//aDSc+/y5vILS05zmgwUMu/vA2RZCgsDb79wmujvLykL32Z0K\r\nnLNcTZyf/8k4lIcl0JBW+VqocWZbeXbameVjqgUC3c18JI8jnxX53qLPyOKX\r\nSTThxurtFOHQteiwg4tWUIRBpD6EGFr2jEwuM09t48QDfX6jAeUrAcevwhrc\r\nuqHfUFoxqCZt4CNLa9COyvF5WoojJadvXY5K7oeRXEG4PGVj3R8ZGtuseIue\r\n2RGPnK6+HIICCi4i9WOGj+OzoaftOvOg1tv8rA56wPb2LO33jY2A0ICSey38\r\n4CdyPMgEJoPbObtHRBRYIJfTBHLKM0PHYW8djdIdqrHQTRoIJqVUSK0SUT7z\r\nBRiPdJba5eENX9VfX0wI7nYkGqHvMeJGeavQJ0wMEC6fZ/FyK+egjAQMWn0d\r\nQjRdEy3w/danqhi1cuv0KkXNqntAPl3LAr1twSOkaz0dM9pVrmp/99p5G60S\r\nQXpCyYDvcy6Df9C464CPQhMtKg/M+yNtSbPfOywMbyRGl7srtoHgxL4jwp97\r\nAaxqUqQyBaojTzV1d1BQoF2FdBhw3hmojRQcXGvEwuBMuiz7B+HR2clvSe6g\r\ntleYroJPIPNO/bUs3t8w0+eCeUe8QxR/hBH9+PFDaT8gREEuELzZO394DZUP\r\nSnnCckmpYJeitM0EqbPy52MrViLQowYMMBA=\r\n=ClRE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"lib/index.js","module":"lib-esm/index.js","readme":"# Widget Conversation Platform (beta)\nThis API provides methods for reading and writing to a conversation in a conversational widget (Bot) on implementations on version 4 or higher. Set up the [Skeleton Conversation plugin](https://github.com/Humany/humany-skeleton-conversation-plugin) to see the API in action.\n\n## Table of contents\n* [Accessing the API](#accessing-the-api)\n* [Listen to messages submitted by the user](#listen-to-messages-submitted-by-the-user)\n* [Writing to the conversation](#writing-to-the-conversation)\n* [Reacting to commands](#reacting-to-commands)\n* [Reacting to actions](#reacting-to-actions)\n* [Resolvable entities](#resolvable-entities)\n* [Handling forms](#handling-forms)\n\n## Accessing the API\nInside a plugin, create an instance of the Conversation Platform API by passing in the current `Container` to the `create()` factory. It will return a `Promise` that is resolved to a `ConversationPlatform` instance that is ready to be used in your plugin.\n\n##### Example\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n  const conversation = await ConversationPlatform.create(container);\n  // start using the api here\n};\n```\n\n### Registering the plugin\nTo use the plugin, add it to the Humany configuration as shown below.\n\n##### Example\n```ts\nhumany.configure((config) => {\n  config.plugin(MyPlugin);\n});\n```\n> Learn more about [Plugin authoring in Humany](https://github.com/Humany/humany-docs/blob/master/widgets/webprovisions/plugin-authoring.md).\n\n## Listen to messages submitted by the user\nListen to messages submitted by the user by adding a handler to the `listen()` function. The function accepts a delegate function with one argument containing a `InputEvent` object.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  const { text } = input;\n  console.log(`user submitted the following text: ${text}.`)\n});\n```\n\n### `InputEvent`\nThe `InputEvent` contains the submitted text and additional data, as well as a function to prevent the default backend service from being executed.\n\n#### `responseText`\nBy default, when a user submits a text the widget will render a \"blue box\" containing the submitted message with the user as sender. To disable this behaviour, set the `responseText` property to `null`.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.responseText = null;\n});\n```\n\n#### `preventDefault()`\nTo disable the default logic for a message you should call `preventDefault()`. This will prevent the default backend from reacting to the message. Use this when you would like to completely override the widget's response for a particular message.\n\n##### Example\n```ts\nconversation.listen((input: InputEvent) => {\n  input.preventDefault();\n  // insert custom logic\n});\n```\n\n## Writing to the conversation\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(type: string, content: object)`\n\nReturns a promise of a `Entry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n```ts\nconst agent = conversation.createAgent();\nconst entry = await agent.print('guide', {\n  // ...\n});\n\nentry.update({\n  // ...\n});\n\nentry.remove();\n```\n\n### Message types\nMessage types `text`, `guide`, `list` and `form` are supported for `Agent`s. For the `User` object, only `text` is supported.\n\n#### Text\nUsed to render plain text without HTML-formatting.  \n\n##### Example\n```ts\n// print user message\nconversation.user.print('text', 'Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('text', 'Lorem ipsum');\n```\n\n#### Guide\nUsed to render a guide message with support for HTML and actions. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'guide',\n  {\n    title: 'Customer type',\n    body: 'Do you represent a person or company?',\n    actions: {\n      person: 'Person',\n      company: 'Company',\n    },\n  }\n);\n```\n\n#### List\nUsed to render a list with actions. It has the same signature as `Guide`, but will have a different presentation. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`actions`|`object`|Key-value-pairs representing available actions for the guide.\n\n##### Example\n```ts\nagent.print(\n  'list',\n  {\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n      invoice_190201: 'Invoice 190201',\n      invoice_190301: 'Invoice 190301',\n      invoice_190401: 'Invoice 190401',\n    },\n  }\n);\n```\n\n#### Form\nUsed to render a form that can be handled by `conversation.validateForm()` and `conversation.submitForm`. Is only supported on `Agent`s.\n\nName | Type | Description\n-----|------|------------\n`title`|`string`|Title for the guide.\n`body`|`string`|Body content for the guide. Supports HTML.\n`form`|`(FormBuilder) => void`|A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`.\n`key`|`string`|The key used to refer to the form when validating and submitting the form.\n\n##### Example\n```ts\nagent.print(\n  'form',\n  {\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n      builder\n        .createComponent({\n          component: 'Text',\n          type: 'number',\n          name: 'id',\n          title: 'ID',\n          required: true,\n        })\n        .createComponent({\n          title: 'Log in',\n          name: 'submit',\n          component: 'Submit',\n          type: 'submit',\n          evaluate: true,\n          value: 'Log in',\n        });\n    },\n  }\n);\n```\n\n### Specify a sender name and/or avatar\nThe sender name and avatar of an agent message will default to the name and avatar of the bot. To override this, specify a custom name and/or avatar when creating the `Agent` object.\n\n##### Example\n```ts\nconst agent = conversation.createAgent({ name: 'Mr. Agent', avatar: 'https://www.site.com/avatar.jpg' });\n\nagent.print('list', {\n  title: 'I found the following invoices associated to your account:',\n  actions: {\n    action1: 'Action 1',\n    action2: 'Action 2',\n    action3: 'Action 3',\n  },\n});\n```\n\n### Loading/typing indicator\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loader()` function to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\n##### Sequential example\n```ts\nconst loader = conversation.loader();\n// ...\nloader(); // remove loader\n```\n\n##### Promise example\n```ts\nconversation.loader(() => {\n  return Promise.resolve(); // remove loader when promise is resolved\n});\n```\n\n## Reacting to commands\nCommands are used by the widget itself or by external code to instruct the widget to perform a particular task. It's possible to override these commands and replace them with custom behaviour.\n\n##### Example\n```ts\nconversation.watchCommand('help', (value, next) => {\n  // user has asked for general help instructions.\n  // add custom logic or delegate to next.\n  next();\n});\n```\n\n## Reacting to actions\nActions are similar to commands but originate from a specific entry, e.g. when the user clicks an option in a particular guide.\n\n##### Example\n```ts\nconversation.watchAction('myActionKey', () => {\n  console.log('action executed');\n});\n```\n\n## Resolvable entities\nEntities (or parameters) are objects defined in Humany that carry values. For an entity to be resolvable on the client it must have \"Activate web site integrations\" checked in the Humany portal. The code below will be executed when the entity `logged-in` is used in a guide. Call the `resolve()` function to set the value on the entity.\n\n##### Example\n```ts\nconversation.resolveEntityValue('logged-in', (resolve) => {\n  MyLib.checkIsOnline().then((loggedIn) => {\n    resolve(loggedIn);\n  });\n});\n```\n\n## Handling forms\nForms are handled by the `formValidate` and the `formSubmit` hooks. Each hook take a form `key`, which are specified on each form message, and a handler for said hook. \n\n### Validating forms\nForm validation is handled by the `validateForm` hook. Will be called before the `submitForm` hook. If `valid` is returned with a `true` value, the `submitForm` hook with the same `key` is called. If `valid` is returned with a `false` value, the submission is canceled and optionally passed `errors` are displayed.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n`valid`|`boolean`|Whether or not the form is valid.\n`errors`|`object`|Key value pair with form validation errors. \n\n##### Example\n```ts\nconversation.validateForm('my-login-form', (formData) => {\n  return MyLib.checkIfFormValid(formData).then((formIsValid) => {\n    if (formIsValid) {\n      return { valid: true };\n    }\n    return { \n      valid: false, \n      errors: {\n        name: 'Name is required!',\n      },\n    };\n  });\n});\n```\n\n### Submitting forms\nForm submission is handled by the `submitForm` hook by passing the `key` for the form to be handled and a handler.\n\nName | Type | Description\n-----|------|------------\n`formData`|`object`|Key value pair with each form value.\n\n##### Example\n```ts\nconversation.submitForm('my-login-form', (formData) => {\n  MyLib.submitForm(formData);\n});\n```\n","gitHead":"ef183f865171eade9fcb0b64c4f8610ccc59ef65","scripts":{"test":"jest","clean":"cleandir lib && cleandir lib-esm","compile":"tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json && copyfiles \"src/**/*.scss\" lib-esm/ -u 1 && copyfiles \"src/**/*.scss\" lib/ -u 1"},"typings":"lib/index.d.ts","_npmUser":{"name":"totte","email":"theo.muller@teliacompany.com"},"_npmVersion":"lerna/3.19.0/node@v16.13.0+x64 (win32)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.13.0","dependencies":{"@humany/utils":"^1.1.6","@humany/widget-data":"^1.0.24","@humany/widget-forms":"^1.1.11","@humany/widget-adapters":"^1.2.13","@webprovisions/platform":"^1.1.2"},"publishConfig":{"tag":"previous","access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jest":"^24.8.0","tslint":"^5.9.1","ts-jest":"^24.0.2","@types/jest":"^23.3.4","tslint-config-airbnb":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_1.0.0-beta.41_1655977788328_0.35848890157569957","host":"s3://npm-registry-packages"}},"2.1.28-alpha.9":{"name":"@humany/widget-conversation","version":"2.1.28-alpha.9","keywords":["humany","telia"],"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@humany/widget-conversation@2.1.28-alpha.9","maintainers":[{"name":"donami","email":"d0namiz@gmail.com"},{"name":"bratn","email":"andreas@deckhand.se"},{"name":"anderslindvall","email":"anders.lindvall@humany.com"},{"name":"totte","email":"theo.muller@teliacompany.com"}],"dist":{"shasum":"d6c7649cf965d556a400962b8d307a5d72524345","tarball":"https://registry.npmjs.org/@humany/widget-conversation/-/widget-conversation-2.1.28-alpha.9.tgz","fileCount":4,"integrity":"sha512-Nj474I4Wfn/5FeGBwlkt5snTyaGS0f8BhmAoirFTnbiTTAZdv0wJB5hL3PxN5Zmix+KmsmjYl68tqfSfwjXJWg==","signatures":[{"sig":"MEYCIQD12HxSbdAlxlsau8mnD4gNw9xp/H7iirEDLdmd+rjuYAIhAO5oWTkGxz7TPVoGRBdLw7fZeZx7mk3QLL4aB6AmW5Pj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":10470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjBy3lACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoRdQ/+MO8J+ny6QxWQGCt0Fc5c4emUF9Tau54Vh4xUs2e7grBw2mmR\r\nPVVPQr1ETBnNjysG+d8c5Wex61prqQi0kvDpi/YkqRA1zS0aDHf3NqFXmcl+\r\ns0bgsB37Hf0Imo7UDdzigN1QuelNSR/IYHo02oSUrgvBn0kPz9oA4NRNfm2o\r\nP1AChdvy4DrZc8Nr+n02pMWcByk2dnbE2HdRS84RhU2pgMcCR2yaSFqSh8cw\r\njebUElp0BH6kMEeKwo3TMztxBqFJlBSRpwvL6a54hTzqIbbm0id9/pdJ/sK3\r\n0MmaCvxgmrQQzg336VXU0SLLv+o0qr8ag3Dri947vOJ4Pwp3eFW9L9lO9aNU\r\ns0Tp5eJSuEogXeguVag2AIPEGnhI+UOGh39PNQGg50iW8bipJz+AkMG1/tS0\r\nXSdKfWOYeyuN333CtlbWWKBZS7x+DXBAZyxR5jrn9wWf+moy70IETNq5jol1\r\nmK/lCiDQeW9egcfaf971oZxlgd4aw1RPc86k98myA4UvBu6qQkDlhCIl+6Xc\r\nBR3EqjzKmsrw3FJ6wKog47WtRl6Yvrc50bGEVcjVSVcxqK1gj/fTYTPmfcBw\r\nBaKtEEwKPtFglTNryH759cRW8D+QdNreKwKwyxcC25Dlivx3mfUEDFuuvl4P\r\nSHe049X5cDv6iZbcwlvtSYMyyhuUADh/qCo=\r\n=5H6C\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","gitHead":"f7f4ebe1fcd1de8882487fa8ba5efb1729ddb4f6","scripts":{},"_npmUser":{"name":"donami","email":"d0namiz@gmail.com"},"_npmVersion":"lerna/3.18.4/node@v16.15.1+x64 (linux)","description":"Humany Widget Conversation Platform","directories":{},"sideEffects":false,"_nodeVersion":"16.15.1","dependencies":{"@telia-ace/widget-conversation":"^1.0.26","@telia-ace/knowledge-widget-bot-provider":"^0.0.1-alpha.61"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/widget-conversation_2.1.28-alpha.9_1661414885611_0.6768300914356733","host":"s3://npm-registry-packages"}}},"time":{"created":"2019-06-10T13:18:30.691Z","modified":"2026-01-20T15:55:22.574Z","1.0.0-alpha.0":"2019-06-10T13:18:30.973Z","1.0.0-beta.1":"2019-06-10T13:47:27.014Z","1.0.0-beta.2":"2019-06-12T06:39:22.329Z","1.0.0-beta.3":"2019-06-12T10:04:01.485Z","1.0.0-beta.4":"2019-06-18T09:38:29.902Z","1.0.0-beta.5":"2019-08-13T13:21:53.188Z","1.0.0-beta.6":"2019-08-21T10:25:53.947Z","1.0.0-beta.7":"2019-08-23T09:15:42.763Z","1.0.0-beta.8":"2019-09-12T12:05:08.498Z","1.0.0-beta.9":"2019-10-22T08:04:00.849Z","1.0.0-beta.10":"2019-11-15T10:24:46.214Z","1.0.0-beta.11":"2019-11-19T13:55:49.316Z","1.0.0-beta.12":"2019-12-17T06:45:18.168Z","1.0.0-beta.13":"2020-01-20T07:07:13.035Z","1.0.0-beta.14":"2020-02-24T13:50:25.950Z","1.0.0-beta.15":"2020-03-26T14:17:17.582Z","1.0.0-beta.16":"2020-03-30T13:06:12.068Z","2.0.0-beta.2":"2020-04-02T17:09:12.981Z","1.0.0-beta.17":"2020-04-02T18:23:42.137Z","2.0.0-beta.3":"2020-04-03T08:35:45.919Z","1.0.0-beta.18":"2020-04-03T08:47:37.246Z","2.0.0-beta.4":"2020-04-06T10:31:05.721Z","2.0.0-beta.5":"2020-04-07T08:34:52.177Z","2.0.0-beta.6":"2020-04-14T08:02:24.274Z","2.0.0-beta.7":"2020-04-15T07:44:29.383Z","2.0.0-beta.8":"2020-04-16T11:36:40.415Z","2.0.0-beta.9":"2020-04-17T10:58:27.014Z","2.0.0-beta.10":"2020-04-20T14:08:08.498Z","2.0.0-beta.11":"2020-04-21T13:41:52.395Z","2.0.0-beta.12":"2020-04-22T13:23:21.398Z","1.0.0-beta.19":"2020-04-23T06:48:32.855Z","2.0.0-beta.13":"2020-04-23T11:31:26.157Z","2.0.0-beta.14":"2020-04-23T14:28:21.114Z","2.0.0-beta.15":"2020-04-24T07:39:16.563Z","1.0.0-beta.20":"2020-04-24T08:50:54.509Z","2.0.0-beta.16":"2020-04-24T13:13:31.930Z","2.0.0-beta.17":"2020-04-27T07:32:47.346Z","2.0.0-beta.18":"2020-04-29T13:24:24.933Z","2.0.0-beta.19":"2020-04-30T10:29:58.971Z","2.0.0-beta.20":"2020-05-06T12:32:07.314Z","2.0.0-beta.21":"2020-05-07T08:05:58.159Z","2.0.0-beta.22":"2020-05-08T11:17:31.236Z","2.0.0-beta.23":"2020-05-11T10:58:18.765Z","2.0.0-beta.24":"2020-05-12T13:47:51.975Z","2.0.0-beta.25":"2020-05-15T10:08:06.324Z","2.0.0-beta.26":"2020-05-25T08:05:45.798Z","2.0.0-beta.27":"2020-05-26T11:11:12.823Z","2.0.0-beta.28":"2020-05-29T13:18:42.859Z","2.0.0-beta.29":"2020-06-04T06:51:11.148Z","2.0.0-beta.30":"2020-06-09T05:57:36.876Z","2.0.0-beta.31":"2020-06-12T08:32:46.665Z","1.0.0-beta.21":"2020-06-12T08:43:44.949Z","2.0.0-beta.32":"2020-06-17T11:59:13.406Z","2.0.0":"2020-06-24T11:26:01.254Z","2.0.1":"2020-09-02T07:31:48.582Z","1.0.0-beta.22":"2020-09-07T13:18:21.415Z","1.0.0-beta.23":"2020-09-15T08:56:13.453Z","1.0.0-beta.24":"2020-09-16T13:16:32.077Z","1.0.0-beta.25":"2020-09-17T10:08:18.317Z","1.0.0-beta.26":"2020-09-18T08:46:40.072Z","1.0.0-beta.27":"2020-10-08T11:37:22.745Z","2.0.2-alpha.0":"2020-10-08T11:48:03.707Z","2.0.2-alpha.1":"2020-10-08T13:43:42.015Z","1.0.0-beta.28":"2020-10-08T13:49:51.688Z","2.0.2-alpha.2":"2020-10-09T11:27:57.516Z","2.0.2-alpha.3":"2020-10-12T12:16:19.670Z","2.0.2-alpha.4":"2020-10-13T09:05:27.412Z","2.0.2-alpha.5":"2020-10-14T12:27:33.221Z","2.0.2-alpha.6":"2020-10-15T12:27:02.044Z","2.0.2-alpha.7":"2020-10-16T11:15:16.269Z","2.0.2-alpha.8":"2020-10-19T09:14:33.344Z","2.0.2-alpha.9":"2020-10-20T09:50:29.827Z","2.0.2-alpha.10":"2020-10-20T14:01:19.771Z","2.1.0":"2020-10-21T07:39:09.365Z","1.0.0-beta.29":"2020-10-21T08:11:02.738Z","2.1.1":"2020-10-30T07:46:03.246Z","2.1.2":"2020-11-25T12:49:58.736Z","1.0.0-beta.30":"2020-11-25T13:58:07.826Z","2.1.3":"2020-12-03T07:16:35.761Z","1.0.0-beta.31":"2020-12-14T12:52:53.493Z","2.1.4":"2020-12-14T13:15:25.950Z","2.1.5":"2021-02-16T15:20:54.355Z","1.0.0-beta.32":"2021-02-16T15:30:15.324Z","1.0.0-beta.33":"2021-02-19T13:09:23.180Z","2.1.6":"2021-02-19T13:40:16.590Z","2.1.7":"2021-03-17T08:44:38.543Z","2.1.8":"2021-03-23T07:21:28.522Z","2.1.9":"2021-03-24T08:18:30.678Z","2.1.10":"2021-04-27T08:08:53.277Z","2.1.11":"2021-05-07T12:31:49.536Z","2.1.12":"2021-05-26T07:53:36.106Z","1.0.0-beta.34":"2021-05-26T08:06:00.237Z","2.1.13":"2021-06-03T12:38:00.228Z","2.1.14":"2021-06-14T13:56:39.574Z","1.0.0-beta.35":"2021-06-22T06:11:45.407Z","2.1.15":"2021-06-22T06:18:02.678Z","2.1.16":"2021-10-27T07:24:58.559Z","2.1.17":"2021-11-29T12:12:09.570Z","2.1.18":"2021-12-20T08:10:02.728Z","1.0.0-beta.36":"2022-01-19T11:45:07.492Z","2.1.19":"2022-01-19T12:16:18.794Z","1.0.0-beta.37":"2022-01-25T13:55:17.098Z","1.0.0-beta.38":"2022-02-24T11:52:35.452Z","1.0.0-beta.39":"2022-02-24T12:34:52.924Z","2.1.20":"2022-02-24T13:40:00.692Z","2.1.21":"2022-03-03T14:36:01.567Z","2.1.22":"2022-04-07T13:17:17.962Z","2.1.23":"2022-04-07T14:35:27.821Z","2.1.24":"2022-05-03T10:29:51.953Z","2.1.25":"2022-05-19T07:41:31.037Z","2.1.26-alpha.0":"2022-05-23T14:22:55.133Z","2.1.28-alpha.0":"2022-05-24T08:57:23.463Z","2.1.28-alpha.1":"2022-05-24T09:02:36.980Z","2.1.28-alpha.2":"2022-05-24T09:06:40.091Z","2.1.28-alpha.3":"2022-05-24T09:18:06.741Z","2.1.28-alpha.4":"2022-05-24T11:16:52.900Z","2.1.28-alpha.5":"2022-05-24T13:00:56.442Z","2.1.28-alpha.6":"2022-05-24T13:18:31.069Z","2.1.28-alpha.7":"2022-05-24T13:24:25.783Z","2.1.28-alpha.8":"2022-05-24T19:48:15.625Z","1.0.0-beta.40":"2022-06-16T14:41:33.078Z","1.0.0-beta.41":"2022-06-23T09:49:48.620Z","2.1.28-alpha.9":"2022-08-25T08:08:05.794Z"},"author":{"name":"Telia Company AB"},"license":"SEE LICENSE IN LICENSE.txt","keywords":["humany","telia"],"description":"Humany Widget Conversation Platform","maintainers":[{"email":"anders.lindvall@teliacompany.com","name":"anderslindvalltelia"},{"email":"andreas@deckhand.se","name":"bratn"},{"email":"d0namiz@gmail.com","name":"donami"}],"readme":"# Widget Conversation API\n\nThe Widget Conversation API provides support for reading and writing to a conversational component inside a widget.\n\n## Explore the API\n\nYou can try out and watch the Conversation API in action by clicking the button below.\nKeep in mind that this is for demonstration purposes only and may not be best practice.\nWe do not recommend binding functions to the `Window` object.\n\n[![Edit elegant-jones-rnyrd](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/elegant-jones-rnyrd?fontsize=14&hidenavigation=1&theme=dark)\n\n## Accessing the API\n\nInside a plugin, access the global instance of `ConversationPlatform` by passing in the current `Container` to the `getInstance()` method. It will return a `Promise` that is resolved to the `ConversationPlatform` instance. On the instance, register a provider and pass in a name and handler by calling the `registerProvider()` function as shown below.\n\nThe handler function will be called once a conversational component for the specified provider is activated in the widget. Use the provider to interact with the conversation.\n\n##### Example\n\n```ts\nimport { ConversationPlatform } from '@humany/widget-conversation';\n\nconst MyPlugin = async (container) => {\n    const platform = await ConversationPlatform.getInstance(container);\n\n    platform.registerProvider('my-chat', (conversation, component) => {\n        // start interacting with the conversation here\n    });\n};\n```\n\n## Writing to the conversation\n\nWhen writing content to the conversation you will first need to create an `Agent` object and then use its `print()` function. Specify the type of entry to print and pass in the content.\n\n### `print(content: object)`\n\nReturns a `ConversationEntry` message that can be used to update and/or remove the content from the conversation at a later stage.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent();\nconst entry = agent.print('Lorem ipsum');\n\nentry.update({\n    // ...\n});\n\nentry.remove();\n```\n\n### Messages\n\n#### Simple text message\n\nUsed to render plain text without HTML-formatting.\n\n##### Example\n\n```ts\n// print user message\nconversation.user.print('Lorem ipsum');\n\n// print agent message\nconst agent = conversation.createAgent();\nagent.print('Lorem ipsum');\n```\n\n#### Message with list of actions\n\nExample of how to render a list with actions. Is only supported on `Agent` and as system message.\n\n| Name      | Type     | Description                                                   |\n| --------- | -------- | ------------------------------------------------------------- |\n| `title`   | `string` | Title for the entry.                                          |\n| `body`    | `string` | Body content for the entry. Supports HTML.                    |\n| `actions` | `object` | Key-value-pairs representing available actions for the entry. |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Download invoices',\n    body: 'Click an invoice below to download a copy.',\n    actions: {\n        invoice_190201: 'Invoice 190201',\n        invoice_190301: 'Invoice 190301',\n        invoice_190401: 'Invoice 190401',\n    },\n});\n```\n\n#### Message with a form\n\nExample of how to render a form that can be handled by the `conversation.form` event. Is only supported on `Agent` and as system message.\n\n| Name    | Type                    | Description                                                                                                                                                                            |\n| ------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `title` | `string`                | Title for the entry.                                                                                                                                                                   |\n| `body`  | `string`                | Body content for the entry. Supports HTML.                                                                                                                                             |\n| `form`  | `(FormBuilder) => void` | A callback function for building the form. Refer to the [`@humany/widget-forms`](https://www.npmjs.com/package/@humany/widget-forms) package for more information about `FormBuilder`. |\n| `key`   | `string`                | The key used to refer to the form when validating and submitting the form.                                                                                                             |\n\n##### Example\n\n```ts\nagent.print({\n    title: 'Log in',\n    body: 'Enter your ID to login',\n    key: 'my-login-form',\n    form: (builder) => {\n        builder\n            .createComponent({\n                component: 'Text',\n                type: 'number',\n                name: 'id',\n                title: 'ID',\n                required: true,\n            })\n            .createComponent({\n                title: 'Log in',\n                actionKey: 'submit',\n                name: 'submit',\n                component: 'Submit',\n                type: 'submit',\n                evaluate: true,\n                value: 'Log in',\n            });\n    },\n});\n```\n\n### Specify a sender name and/or avatar\n\nTo create an agent with a name and avatar use the `createAgent` method on the conversation.\n\n##### Example\n\n```ts\nconst agent = conversation.createAgent({\n    name: 'Mr. Agent',\n    avatar: 'https://www.site.com/avatar.jpg',\n});\n\nagent.print({\n    title: 'I found the following invoices associated to your account:',\n    actions: {\n        action1: 'Action 1',\n        action2: 'Action 2',\n        action3: 'Action 3',\n    },\n});\n```\n\n### Writing system messages\n\nIn order to print a system message to the conversation you invoke the `print` method on the `conversation`. The `print` method accepts the same arguments as on the `Agent`.\n\n#### Example\n\n```ts\nconversation.print('Lorem ipsum');\n```\n\n### Loading/typing indicator\n\nIn many cases you will likely fetch data from an external resource before the content is written to the conversation. In this case you should use the `loading()` function on the `ConversationProvider` to inform the user that something is about to happen. Even in cases when the response is available immediately it gives a better user experience to present a loading indicator for a short while.\n\nIn cases where you want to notify the user that the agent is currently typing, you should use the `typing` function on `Agent`.\n\n#### Example\n\n##### Loading\n\n```ts\nconst done = conversation.loading();\n// ...\ndone(); // remove loader\n```\n\n##### Typing indicator\n\n```ts\nconst done = agent.typing();\n// ...\ndone(); // remove loader\n```\n\n## Reading from the conversation\n\nThe second parameter to your provider handler is a `ComponentNode` instance representing the conversational component. On it you can read the component's properties and react to action emitted by the component.\n\n### Actions\n\nThe following actions are emitted from the conversational component.\n\n**Important**: For default actions it is important to call `next()` unless you want to completely stop the execution flow for the particular action. Not doing so will stop any succeeding handlers and may unintentionally break functionality.\n\n#### `conversation.user-typing`\n\nIs emitted when the user´s typing indicator is changed.\n\n| Name         | Type     | Description                                    |\n| ------------ | -------- | ---------------------------------------------- |\n| `textLength` | `number` | The current text length of the user's message. |\n\n#### `conversation.user-submit`\n\nIs emitted when the user submits a message.\n\n| Name   | Type     | Description         |\n| ------ | -------- | ------------------- |\n| `text` | `string` | The submitted text. |\n\n#### `conversation.action`\n\nIs emitted when the user clicks on an action.\n\n| Name   | Type     | Description                  |\n| ------ | -------- | ---------------------------- |\n| `text` | `string` | Key of the submitted action. |\n\n#### `conversation.form`\n\nIs emitted when the data of a form is changed.\n\n| Name        | Type       | Description                                               |\n| ----------- | ---------- | --------------------------------------------------------- |\n| `data`      | `FormData` | The form data.                                            |\n| `formKey`   | `string`   | The unique key for the form.                              |\n| `actionKey` | `string`   | The key of the form component responsible for the change. |\n\nIn order to subscribe to any of these actions you have access to the `ComponentNodeController`. Below is an example how to subscribe to the `conversation.form` action.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    return next(input);\n});\n```\n\n### Submitting forms\n\nIn order to listen for form events you should subscribe to the `conversation.form` event. By passing a `key` to the form, you are able to target the form in this listener.\n\n```ts\ncomponent.actions.watch('conversation.form', (input, next) => {\n    if (input.formKey === 'my-login-form' && input.actionKey === 'submit') {\n        const username = input.data.username;\n        const password = input.data.password;\n    }\n\n    return next(input);\n});\n```\n","readmeFilename":"README.md"}