{"_id":"@avaya/infinity-omni-sdk-messaging","_rev":"18-6fb6e6b009c5a85fcb80732a02d9344b","name":"@avaya/infinity-omni-sdk-messaging","dist-tags":{"latest":"1.0.5"},"versions":{"0.0.1":{"name":"@avaya/infinity-omni-sdk-messaging","version":"0.0.1","license":"SEE LICENSE IN LICENSE.txt","_id":"@avaya/infinity-omni-sdk-messaging@0.0.1","maintainers":[{"name":"mrazian","email":"mrazian@avaya.com"},{"name":"cpaas.devops","email":"cpaasops@avaya.com"},{"name":"bvazmer","email":"bvazmer@avaya.com"},{"name":"amarasescu","email":"amarasescu@avaya.com"},{"name":"digitalpipeline","email":"bvishwakarma@avaya.com"},{"name":"kahagerman","email":"kahagerman@avaya.com"},{"name":"axp-sdk-automation","email":"axp-sdk-automation@avaya.com"},{"name":"raziandev","email":"raziandev@gmail.com"},{"name":"kwineman","email":"keatonwineman@gmail.com"}],"dist":{"shasum":"836b60f6f52b2f64f226f699ba926f4f741d0dd6","tarball":"https://registry.npmjs.org/@avaya/infinity-omni-sdk-messaging/-/infinity-omni-sdk-messaging-0.0.1.tgz","fileCount":5,"integrity":"sha512-r37KTANCz4lL185WgSIDVQKLpTZv5ArENFRRnjAeBcXJ5CYTnwsKOeuSo1sPfnEVGO90wi8fdlPsWO3OWnJJUw==","signatures":[{"sig":"MEUCIHR2C1d4U4WeMY/USrpIXB19DzHghEw4LqJhRY/i/CFsAiEAp2VXqa4QaGfaLqsunEVQOTCsrMBuwSsa1YpGNZPV03M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165482},"type":"module","_from":"file:avaya-infinity-omni-sdk-messaging-0.0.1.tgz","exports":{".":{"types":"./lib/avaya-infinity-omni-sdk-messaging-types.d.ts","import":"./lib/avaya-infinity-omni-sdk-messaging.js"}},"_npmUser":{"name":"raziandev","email":"raziandev@gmail.com"},"_resolved":"/Users/saumabhapal/saumabha/git-repos/web-release-artifact-0.0.1/tarballs/avaya-infinity-omni-sdk-messaging-0.0.1.tgz","_integrity":"sha512-r37KTANCz4lL185WgSIDVQKLpTZv5ArENFRRnjAeBcXJ5CYTnwsKOeuSo1sPfnEVGO90wi8fdlPsWO3OWnJJUw==","_npmVersion":"10.9.2","description":"Web messaging","directories":{},"_nodeVersion":"22.16.0","dependencies":{"@avaya/infinity-omni-sdk-core":"^0.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/infinity-omni-sdk-messaging_0.0.1_1750084111222_0.890863471976671","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@avaya/infinity-omni-sdk-messaging","version":"1.0.0","license":"SEE LICENSE IN LICENSE.txt","_id":"@avaya/infinity-omni-sdk-messaging@1.0.0","maintainers":[{"name":"mrazian","email":"mrazian@avaya.com"},{"name":"cpaas.devops","email":"cpaasops@avaya.com"},{"name":"bvazmer","email":"bvazmer@avaya.com"},{"name":"amarasescu","email":"amarasescu@avaya.com"},{"name":"digitalpipeline","email":"bvishwakarma@avaya.com"},{"name":"kahagerman","email":"kahagerman@avaya.com"},{"name":"axp-sdk-automation","email":"axp-sdk-automation@avaya.com"},{"name":"raziandev","email":"raziandev@gmail.com"},{"name":"kwineman","email":"keatonwineman@gmail.com"},{"name":"saumabhapal","email":"saumabhapal@avaya.com"},{"name":"mahajana","email":"mahajana@avaya.com"}],"dist":{"shasum":"ccdaaca56c62f3bb595d66bb27e3825c5db21f64","tarball":"https://registry.npmjs.org/@avaya/infinity-omni-sdk-messaging/-/infinity-omni-sdk-messaging-1.0.0.tgz","fileCount":5,"integrity":"sha512-RwcJRVgioHpDTk/P0c8I9Ct8MqYP9Zq02iUu0WrsJa3mrQri5sEJvc3j4+xvd0UWJQh5ptMl8RhSYMWdDK6qHQ==","signatures":[{"sig":"MEUCIFgxVOVwjWfqjGFC2vDxrhFYSPpe1SG6fUJbvfD8znxzAiEAwUfyN9iZ0NF4s5k4U9STzIgijpK7zNMwLOfTM1ILllQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167018},"type":"module","_from":"file:avaya-infinity-omni-sdk-messaging-1.0.0.tgz","exports":{".":{"types":"./lib/avaya-infinity-omni-sdk-messaging-types.d.ts","import":"./lib/avaya-infinity-omni-sdk-messaging.js"}},"_npmUser":{"name":"raziandev","actor":{"name":"raziandev","type":"user","email":"raziandev@gmail.com"},"email":"raziandev@gmail.com"},"_resolved":"/Users/saumabhapal/saumabha/git-repos/web-release-artifact-1.0.0/tarballs/avaya-infinity-omni-sdk-messaging-1.0.0.tgz","_integrity":"sha512-RwcJRVgioHpDTk/P0c8I9Ct8MqYP9Zq02iUu0WrsJa3mrQri5sEJvc3j4+xvd0UWJQh5ptMl8RhSYMWdDK6qHQ==","_npmVersion":"10.9.2","description":"The Omni SDK Messaging module allows you to add Avaya Infinity™ chat capabilities into your chat UI.","directories":{},"_nodeVersion":"22.16.0","dependencies":{"@avaya/infinity-omni-sdk-core":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/infinity-omni-sdk-messaging_1.0.0_1750767574424_0.1844123397465347","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@avaya/infinity-omni-sdk-messaging","version":"1.0.1","license":"SEE LICENSE IN LICENSE.txt","_id":"@avaya/infinity-omni-sdk-messaging@1.0.1","maintainers":[{"name":"mrazian","email":"mrazian@avaya.com"},{"name":"cpaas.devops","email":"cpaasops@avaya.com"},{"name":"bvazmer","email":"bvazmer@avaya.com"},{"name":"amarasescu","email":"amarasescu@avaya.com"},{"name":"digitalpipeline","email":"bvishwakarma@avaya.com"},{"name":"kahagerman","email":"kahagerman@avaya.com"},{"name":"axp-sdk-automation","email":"axp-sdk-automation@avaya.com"},{"name":"raziandev","email":"raziandev@gmail.com"},{"name":"kwineman","email":"keatonwineman@gmail.com"},{"name":"saumabhapal","email":"saumabhapal@avaya.com"},{"name":"mahajana","email":"mahajana@avaya.com"}],"dist":{"shasum":"071679df5e427bfb32b91af99702cfc6252135c5","tarball":"https://registry.npmjs.org/@avaya/infinity-omni-sdk-messaging/-/infinity-omni-sdk-messaging-1.0.1.tgz","fileCount":5,"integrity":"sha512-8Uc7k/8GSTS8oOWIzSL5pPilxP0UgwHiMhJ93BvbJsbN1DQAWFYB6D4Gg35Oj7c5ZKrBD+mKEtrCkJtdd4BXfw==","signatures":[{"sig":"MEYCIQCeYwq0xtGfmqHi7q+EBTaxpPuWEqey/3WLdVcET8rtYwIhAP8xDZSMr5n/Kv6zow2RhcQL0NiaVljP2qp8BVVQZC1f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167428},"type":"module","_from":"file:avaya-infinity-omni-sdk-messaging-1.0.1.tgz","exports":{".":{"types":"./lib/avaya-infinity-omni-sdk-messaging-types.d.ts","import":"./lib/avaya-infinity-omni-sdk-messaging.js"}},"_npmUser":{"name":"mahajana","email":"mahajana@avaya.com"},"_resolved":"/Users/mahajana/Work_Directory/omni-sdk-releases/1.0.1/tarballs/avaya-infinity-omni-sdk-messaging-1.0.1.tgz","_integrity":"sha512-8Uc7k/8GSTS8oOWIzSL5pPilxP0UgwHiMhJ93BvbJsbN1DQAWFYB6D4Gg35Oj7c5ZKrBD+mKEtrCkJtdd4BXfw==","_npmVersion":"10.9.2","description":"Web messaging","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@avaya/infinity-omni-sdk-core":"^1.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/infinity-omni-sdk-messaging_1.0.1_1763469912058_0.6378502510480022","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@avaya/infinity-omni-sdk-messaging","version":"1.0.2","license":"SEE LICENSE IN LICENSE.txt","_id":"@avaya/infinity-omni-sdk-messaging@1.0.2","maintainers":[{"name":"mrazian","email":"mrazian@avaya.com"},{"name":"cpaas.devops","email":"cpaasops@avaya.com"},{"name":"bvazmer","email":"bvazmer@avaya.com"},{"name":"amarasescu","email":"amarasescu@avaya.com"},{"name":"digitalpipeline","email":"bvishwakarma@avaya.com"},{"name":"kahagerman","email":"kahagerman@avaya.com"},{"name":"axp-sdk-automation","email":"axp-sdk-automation@avaya.com"},{"name":"raziandev","email":"raziandev@gmail.com"},{"name":"skabbinahitt","email":"skabbinahitt@avaya.com"},{"name":"saumabhapal","email":"saumabhapal@avaya.com"},{"name":"mahajana","email":"mahajana@avaya.com"}],"dist":{"shasum":"e311b3ea0ad3ad3b3455a146c3ea5038e26259ed","tarball":"https://registry.npmjs.org/@avaya/infinity-omni-sdk-messaging/-/infinity-omni-sdk-messaging-1.0.2.tgz","fileCount":5,"integrity":"sha512-ZVjaeBnY1/pNlAM2CZ3uIuWTuLUN/9q9YkyOPtKpPl+D2wiS5YIbi2z8B0LImif1EOAriNkNTb2i3+mMTyfzKQ==","signatures":[{"sig":"MEQCIHV/r+FJ3pB2BVkmUAaJKthRPC1vbJ8A5NO+GJOUAjfYAiBfO79T7MaqRnAi83/wSJwQZdjkRachQH888lXF4bLE6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167430},"type":"module","_from":"file:avaya-infinity-omni-sdk-messaging-1.0.2.tgz","exports":{".":{"types":"./lib/avaya-infinity-omni-sdk-messaging-types.d.ts","import":"./lib/avaya-infinity-omni-sdk-messaging.js"}},"_npmUser":{"name":"skabbinahitt","email":"skabbinahitt@avaya.com"},"_resolved":"/Users/skabbinahitt/Documents/projectRepos/omni-sdk/web/build-tmp/messaging/avaya-infinity-omni-sdk-messaging-1.0.2.tgz","_integrity":"sha512-ZVjaeBnY1/pNlAM2CZ3uIuWTuLUN/9q9YkyOPtKpPl+D2wiS5YIbi2z8B0LImif1EOAriNkNTb2i3+mMTyfzKQ==","_npmVersion":"10.9.2","description":"Web messaging","directories":{},"_nodeVersion":"22.16.0","dependencies":{"@avaya/infinity-omni-sdk-core":"^1.0.2"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/infinity-omni-sdk-messaging_1.0.2_1765541476913_0.6504797309015908","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@avaya/infinity-omni-sdk-messaging","version":"1.0.3","license":"SEE LICENSE IN LICENSE.txt","_id":"@avaya/infinity-omni-sdk-messaging@1.0.3","maintainers":[{"name":"mrazian","email":"mrazian@avaya.com"},{"name":"cpaas.devops","email":"cpaasops@avaya.com"},{"name":"bvazmer","email":"bvazmer@avaya.com"},{"name":"gaffara","email":"gaffara@avaya.com"},{"name":"amarasescu","email":"amarasescu@avaya.com"},{"name":"digitalpipeline","email":"bvishwakarma@avaya.com"},{"name":"kahagerman","email":"kahagerman@avaya.com"},{"name":"axp-sdk-automation","email":"axp-sdk-automation@avaya.com"},{"name":"raziandev","email":"raziandev@gmail.com"},{"name":"ptognini77","email":"ptognini@avaya.com"},{"name":"kamau3","email":"kamau3@avaya.com"},{"name":"lcramlet-avaya","email":"lancecramlet@avaya.com"},{"name":"jmiddd","email":"jmidd@avaya.com"},{"name":"ggoulet_avaya","email":"ggoulet@avaya.com"},{"name":"shulkdog","email":"peter.c.schuelke@gmail.com"},{"name":"skabbinahitt","email":"skabbinahitt@avaya.com"},{"name":"saumabhapal","email":"saumabhapal@avaya.com"},{"name":"mahajana","email":"mahajana@avaya.com"}],"dist":{"shasum":"c6439c6307a246c5335fe13c2e91f342ee460796","tarball":"https://registry.npmjs.org/@avaya/infinity-omni-sdk-messaging/-/infinity-omni-sdk-messaging-1.0.3.tgz","fileCount":5,"integrity":"sha512-ei4wM/GnX7XF8IgvfZ/yT8DZToZkTXc7EB6zfm91PY5veMER+AD9onrUnDmbypBgH36u42RysVtcoFDQVouosw==","signatures":[{"sig":"MEUCIQDt6UuF8L0q4e3zfXdJ2KvCpgxac6BTHy8k7+32uxWJpQIgDbTp6rdAgyPeiTAz7yZdOb2MhhmIeIjZNIfgGL4dDyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":167430},"type":"module","_from":"file:avaya-infinity-omni-sdk-messaging-1.0.3.tgz","exports":{".":{"types":"./lib/avaya-infinity-omni-sdk-messaging-types.d.ts","import":"./lib/avaya-infinity-omni-sdk-messaging.js"}},"_npmUser":{"name":"skabbinahitt","email":"skabbinahitt@avaya.com"},"_resolved":"/Users/skabbinahitt/Documents/projectRepos/omni-sdk/web/build-tmp/avaya-infinity-omni-sdk-messaging-1.0.3.tgz","_integrity":"sha512-ei4wM/GnX7XF8IgvfZ/yT8DZToZkTXc7EB6zfm91PY5veMER+AD9onrUnDmbypBgH36u42RysVtcoFDQVouosw==","_npmVersion":"10.9.2","description":"Web messaging","directories":{},"_nodeVersion":"22.16.0","dependencies":{"@avaya/infinity-omni-sdk-core":"^1.0.3"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/infinity-omni-sdk-messaging_1.0.3_1770896074597_0.5717759525585837","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@avaya/infinity-omni-sdk-messaging","version":"1.0.4","license":"SEE LICENSE IN LICENSE.txt","_id":"@avaya/infinity-omni-sdk-messaging@1.0.4","maintainers":[{"name":"mrazian","email":"mrazian@avaya.com"},{"name":"cpaas.devops","email":"cpaasops@avaya.com"},{"name":"bvazmer","email":"bvazmer@avaya.com"},{"name":"gaffara","email":"gaffara@avaya.com"},{"name":"amarasescu","email":"amarasescu@avaya.com"},{"name":"digitalpipeline","email":"bvishwakarma@avaya.com"},{"name":"kahagerman","email":"kahagerman@avaya.com"},{"name":"axp-sdk-automation","email":"axp-sdk-automation@avaya.com"},{"name":"raziandev","email":"raziandev@gmail.com"},{"name":"ptognini77","email":"ptognini@avaya.com"},{"name":"kamau3","email":"kamau3@avaya.com"},{"name":"lcramlet-avaya","email":"lancecramlet@avaya.com"},{"name":"jmiddd","email":"jmidd@avaya.com"},{"name":"ggoulet_avaya","email":"ggoulet@avaya.com"},{"name":"shulkdog","email":"peter.c.schuelke@gmail.com"},{"name":"skabbinahitt","email":"skabbinahitt@avaya.com"},{"name":"saumabhapal","email":"saumabhapal@avaya.com"},{"name":"mahajana","email":"mahajana@avaya.com"}],"dist":{"shasum":"ec1a258bd0b61d25cbbaec03c594aed6a5efaa31","tarball":"https://registry.npmjs.org/@avaya/infinity-omni-sdk-messaging/-/infinity-omni-sdk-messaging-1.0.4.tgz","fileCount":5,"integrity":"sha512-lQloGfY8fyvNPL8b/GQZdFeSpFhwQnlQuyUZEb3aoZ3Q1Lvo4IQPG/dUBNKRJBQ3v+J01j4MvlCN57lt4WBIPQ==","signatures":[{"sig":"MEUCIHJaccr51D+ZItN2hArU2VMG821m8cCz8sR9OIJNFAO8AiEAvMg4gncGCTHG4Ec2wr9DvmUOBm1iC7WAH4i3ABjx4w0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173704},"type":"module","_from":"file:avaya-infinity-omni-sdk-messaging-1.0.4.tgz","exports":{".":{"types":"./lib/avaya-infinity-omni-sdk-messaging-types.d.ts","import":"./lib/avaya-infinity-omni-sdk-messaging.js"}},"_npmUser":{"name":"skabbinahitt","email":"skabbinahitt@avaya.com"},"_resolved":"/Users/skabbinahitt/Documents/projectRepos/localLab/omni-sdk/web/build-tmp/avaya-infinity-omni-sdk-messaging-1.0.4.tgz","_integrity":"sha512-lQloGfY8fyvNPL8b/GQZdFeSpFhwQnlQuyUZEb3aoZ3Q1Lvo4IQPG/dUBNKRJBQ3v+J01j4MvlCN57lt4WBIPQ==","_npmVersion":"10.9.2","description":"Web messaging","directories":{},"_nodeVersion":"22.16.0","dependencies":{"@avaya/infinity-omni-sdk-core":"^1.0.4"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/infinity-omni-sdk-messaging_1.0.4_1782805030779_0.17198807267166938","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"_id":"@avaya/infinity-omni-sdk-messaging@1.0.5","dist":{"shasum":"b1edc32baf5a86f5afb41a9d4a6f38518a9fad12","tarball":"https://registry.npmjs.org/@avaya/infinity-omni-sdk-messaging/-/infinity-omni-sdk-messaging-1.0.5.tgz","fileCount":5,"integrity":"sha512-zlWILheSF5i8rvKvpLyEoIMbsADgZxsNmen4W5N2yR99O4PPA3oGg52I1kSqcc8ssmVAzMNyiPYKfegIlbs84w==","signatures":[{"sig":"MEUCIBS620LpHJ8yo/O0eyJYr4nKzEiEZEesCA1Lg/6fhD5rAiEA49CG81kKOP/hEvJTSUXjh8e6PgtKn/DOO5PHeWDb0WY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEigo/k8mRflWt2Tevvua47icGoDxA+n2kOukVHyYp1mAiEAkBiZ+qR9GMRs4EBMtp+9XCVg6wATy8jaWICRae1JM1M="}],"unpackedSize":186521},"name":"@avaya/infinity-omni-sdk-messaging","type":"module","_from":"file:avaya-infinity-omni-sdk-messaging-1.0.5.tgz","exports":{".":{"types":"./lib/avaya-infinity-omni-sdk-messaging-types.d.ts","import":"./lib/avaya-infinity-omni-sdk-messaging.js"}},"license":"SEE LICENSE IN LICENSE.txt","version":"1.0.5","_npmUser":{"name":"mahajana","email":"mahajana@avaya.com"},"_resolved":"/Users/mahajana/Work_Directory/omni-sdk-releases/1.0.5/tarballs/avaya-infinity-omni-sdk-messaging-1.0.5.tgz","_integrity":"sha512-zlWILheSF5i8rvKvpLyEoIMbsADgZxsNmen4W5N2yR99O4PPA3oGg52I1kSqcc8ssmVAzMNyiPYKfegIlbs84w==","_npmVersion":"11.15.0","description":"Web messaging","directories":{},"maintainers":[{"name":"mrazian","email":"mrazian@avaya.com"},{"name":"cpaas.devops","email":"cpaasops@avaya.com"},{"name":"bvazmer","email":"bvazmer@avaya.com"},{"name":"gaffara","email":"gaffara@avaya.com"},{"name":"amarasescu","email":"amarasescu@avaya.com"},{"name":"digitalpipeline","email":"bvishwakarma@avaya.com"},{"name":"kahagerman","email":"kahagerman@avaya.com"},{"name":"axp-sdk-automation","email":"axp-sdk-automation@avaya.com"},{"name":"raziandev","email":"raziandev@gmail.com"},{"name":"ptognini77","email":"ptognini@avaya.com"},{"name":"kamau3","email":"kamau3@avaya.com"},{"name":"lcramlet-avaya","email":"lancecramlet@avaya.com"},{"name":"jmiddd","email":"jmidd@avaya.com"},{"name":"ggoulet_avaya","email":"ggoulet@avaya.com"},{"name":"shulkdog","email":"peter.c.schuelke@gmail.com"},{"name":"skabbinahitt","email":"skabbinahitt@avaya.com"},{"name":"saumabhapal","email":"saumabhapal@avaya.com"},{"name":"mahajana","email":"mahajana@avaya.com"}],"_nodeVersion":"24.12.0","dependencies":{"@avaya/infinity-omni-sdk-core":"^1.0.5"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/infinity-omni-sdk-messaging_1.0.5_1790794522010_0.7299730440460672"}}},"time":{"created":"2025-06-16T14:28:31.167Z","modified":"2026-09-30T18:55:22.311Z","0.0.1":"2025-06-16T14:28:31.447Z","1.0.0":"2025-06-24T12:19:34.593Z","1.0.1":"2025-11-18T12:45:12.254Z","1.0.2":"2025-12-12T12:11:17.057Z","1.0.3":"2026-02-12T11:34:34.744Z","1.0.4":"2026-06-30T07:37:10.926Z","1.0.5":"2026-09-30T18:55:22.102Z"},"license":"SEE LICENSE IN LICENSE.txt","description":"Web messaging","maintainers":[{"name":"mrazian","email":"mrazian@avaya.com"},{"name":"cpaas.devops","email":"cpaasops@avaya.com"},{"name":"bvazmer","email":"bvazmer@avaya.com"},{"name":"gaffara","email":"gaffara@avaya.com"},{"name":"amarasescu","email":"amarasescu@avaya.com"},{"name":"digitalpipeline","email":"bvishwakarma@avaya.com"},{"name":"kahagerman","email":"kahagerman@avaya.com"},{"name":"axp-sdk-automation","email":"axp-sdk-automation@avaya.com"},{"name":"raziandev","email":"raziandev@gmail.com"},{"name":"ptognini77","email":"ptognini@avaya.com"},{"name":"kamau3","email":"kamau3@avaya.com"},{"name":"lcramlet-avaya","email":"lancecramlet@avaya.com"},{"name":"jmiddd","email":"jmidd@avaya.com"},{"name":"ggoulet_avaya","email":"ggoulet@avaya.com"},{"name":"shulkdog","email":"peter.c.schuelke@gmail.com"},{"name":"skabbinahitt","email":"skabbinahitt@avaya.com"},{"name":"saumabhapal","email":"saumabhapal@avaya.com"},{"name":"mahajana","email":"mahajana@avaya.com"}],"readme":"# Omni SDK Messaging\n\nThe Omni SDK Messaging module allows you to add Avaya Infinity™ chat capabilities into your Client website. The Omni SDK Messaging module depends on the Omni SDK Core module. Please refer to the [Omni SDK Core documentation](https://avaya-infinity.github.io/omni-sdk-web/modules/_avaya_infinity-omni-sdk-core.html) before using the Messaging module.\n\n## Main features\n\n1. **Message History**: Provides a message history feature that allows users to view all messages exchanged in a conversation thread.\n2. **Resume Conversation**: Allows users to resume a messaging conversation thread at any time. This includes auto resuming the conversation initiated from another session of the same user, to converse simultaneously from multiple devices. Auto resuming might take a minute to detect an active conversation on another session.\n3. **Canned Messages**: Generates messages configured by the account admin for the web chat integration, if the user has not sent the first message on the conversation.\n4. **Send Message**: Allows users to send messages to other participants in a conversation thread.\n5. **Receive Message**: Allows users to receive messages from other participants in a conversation thread.\n6. **Receive rich media messages**: Supports quick reply rich media messages allowing dynamic and engaging content within the messaging interface.\n7. **Send rich media messages**: Supports response to quick reply rich media messages.\n8. **Send and receive attachments**: Allows users to send and receive attachments like images, videos, audio, documents etc, to other participants in a conversation thread.\n9. **Typing indicators**: Enables sending typing indicator of the user and receiving typing indicator(s) of other participants in the conversation.\n10. **Download Transcript:** Allows users to download the conversation transcript, once the conversation is closed.\n\n## Installation\n\nOmni SDK Messaging module requires the Omni SDK Core module.\n\nTo install the Omni SDK Messaging module, run the following command:\n\n```bash\nnpm install --save @avaya/infinity-omni-sdk-messaging\n```\n\nThis will install both Omni SDK Core and Omni SDK Messaging.\n\n> 📄 NOTE\n>\n> Always use matching versions of all Omni SDK modules to ensure compatibility.\n\n## Usage\n\nThe Omni SDK Messaging module provides the [`MessagingConversation`](https://avaya-infinity.github.io/omni-sdk-web/functions/_avaya_infinity-omni-sdk-messaging.MessagingConversation.html) [mixin](https://www.typescriptlang.org/docs/handbook/mixins.html) that extends the Base Conversation of the Omni SDK Core module with Messaging capabilities. To use the Messaging module, you need to import the `MessagingConversation` mixin function and apply it. Check out more details about additional functionalities in the `Using additional functionality` section of The [Omni SDK Core's documentation](https://avaya-infinity.github.io/omni-sdk-web/modules/_avaya_infinity-omni-sdk-core.html).\n\nExample of how to use Omni SDK Messaging module:\n\n```ts\n// Note: Here ... (dot dot dot) indicates the rest of the code, which is excluded for brevity.\n\nimport { AvayaInfinityOmniSdk } from '@avaya/infinity-omni-sdk-core';\nimport { MessagingConversation } from '@avaya/infinity-omni-sdk-messaging';\n\nconst EnhancedConversationClass = MessagingConversation();\n\nconst userSession = await AvayaInfinityOmniSdk.init({...}, EnhancedConversationClass);\n\nconst defaultConversation = userSession.conversations[0];\n\n// The `defaultConversation` object has methods of both Omni SDK Core and Messaging modules.\ndefaultConversation.addParticipantAddedListener(...) // <-- Omni SDK Core method\ndefaultConversation.sendMessage(...); // <-- Omni SDK Messaging method\n```\n\n## Messaging Conversation\n\nThe Messaging Conversation provides APIs to send and receive rich media and attachment messages, get conversation history, listen to message events and get the messaging transcript. For more details on the APIs exposed on the Messaging Conversation, refer to the [`MessagingConversationTrait`](https://avaya-infinity.github.io/omni-sdk-web/interfaces/_avaya_infinity-omni-sdk-messaging.MessagingConversationTrait.html) interface.\n\n### Getting conversation history\n\nTo get the conversation history, use the `getMessages()` method on the Conversation. The `getMessages()` method returns a `PageIterator` object that can be used to iterate over the messages in the conversation. The `getMessages()` API takes an optional parameter `pageSize` which specifies the number of messages to fetch in a single page. The default value of `pageSize` is 10 and maximum page size is 50.\n\n> 🗒️ NOTE\n>\n> The iterator can only be used to get messages conversed in the conversation from start up until the point the iterator was created. For newer messages please listen to the message events. Do not use the `getMessages()` API to get new messages.\n\nEach Page of the iterator contains a list of messages. Pages with higher page number will contain older messages. The iterator can be used to get messages in both directions (forward and backward).\n\nThe `PageIterator.previous()` and `PageIterator.next()` are async methods, when called they fetch the previous and next page of messages respectively and each resolves with an Array of [`Message`](https://avaya-infinity.github.io/omni-sdk-web/types/_avaya_infinity-omni-sdk-messaging.Message.html). The `PageIterator.hasNext()` and `PageIterator.hasPrevious()` methods check if there are more messages in the next and previous pages, respectively.\n\nAt any point `PageIterator.items` can be used to get the messages on the current page.\n\n```ts\nfunction showMessagesOnUI(messages) {\n    // Logic to show messages on UI.\n    // ...\n}\n\nconst iterator = await conversation.getMessages(15);\n\nshowMessagesOnUI(iterator.items);\n\nconst loadMore = document.getElementById(\"load-more-button\");\n\nloadMore.onclick = function () {\n    if (iterator.hasPrevious()) {\n        const previousPage = await iterator.previous();\n        showMessagesOnUI(previousPage);\n    }\n};\n```\n\nTo determine if a message is a canned message, you can check if the `canned` property of the `Message` object is `true`. Canned messages are pre-configured messages that are generated when the user has not sent any message in the conversation.\n\n### Sending messages\n\nAs of now, the Omni SDK Messaging module supports sending these types of messages:\n\n- Text(Plain text, Emoji's, Links)\n- Rich text (Markdown)\n- Reply\n- Attachment\n\nTo send a message, use the `sendMessage()` method on the Conversation. The `sendMessage()` method takes a `SendMessageRequest` object as a parameter. Based on the type of message you want to send, you can use one of the following implementations of `SendMessageRequest` to construct your message:\n\n- `TextMessage`: To send a plain text message.\n- `ReplyMessage`: To send a reply message.\n- `AttachmentMessage`: To send an attachment message.\n\n#### Sending plaintext messages\n\nTo send a plain text message, use the `TextMessage` class to build your message. The `TextMessage` class constructor takes a `text` and an optional `parentMessageId` parameter. The `parentMessageId` is the messageId of the message to which the current message is a reply.\n\n```ts\nconst message = new TextMessage(\"Hi\");\nconversation.sendMessage(message);\n```\n\n#### Sending rich media reply messages\n\nTo send a rich media reply message, use the `ReplyMessage` class to build your message. The `ReplyMessage` class constructor takes in the action `payload` of the selected action from the list of actions in the original message. Along with `payload`, you can also pass optional arguments `actionText`, `iconUrl` and the `parentMessageId` parameter. Here the `parentMessageId` can be used to specify the original reply request message to which this current message is a reply.\n\n```ts\nconst message = new ReplyMessage(\n    \"CUSTOMER_HAPPY\",\n    \"Happy\",\n    \"https://example.com/happy.png\",\n);\nconversation.sendMessage(message);\n```\n\n#### Sending attachment messages\n\nTo send an attachment message, use the `AttachmentMessage` class to build your message. The `AttachmentMessage` class constructor takes in the `File` object and optional arguments `text` (optional text to send along side the file), `parentMessageId`. The `parentMessageId` is the messageId of the message to which the current message is a reply. The `AttachmentMessage` class can be used to send images as well.\n\n```ts\nconst fileInput = document.getElementById(\"file-input\");\nlet selectedFile;\n\nfileInput.onchange = function () {\n    selected = fileInput.files[0];\n};\n\nconst sendAttachmentButton = document.getElementById(\"send-attachment-button\");\n\nsendAttachmentButton.onclick = function () {\n    const message = new AttachmentMessage(\n        selectedFile,\n        \"Here is the invoice\",\n    );\n    conversation.sendMessage(message);\n};\n```\n\n### Waiting for message to be sent\n\nThe `sendMessage()` API returns a `Promise` that resolves with the [`Message`](https://avaya-infinity.github.io/omni-sdk-web/types/_avaya_infinity-omni-sdk-messaging.Message.html) object corresponding to the message that sent. This object contains unique `messageId` of this message and other details.\n\n### Message delivery\n\nThe Client must listen to the the Message Delivered event to be notified when the messages that were sent by the User are delivered to the Avaya Infinity™ platform. To do so the Client use the `addMessageDeliveredListener()` method on the Conversation object to register the Message Delivered event listener. The `addMessageDeliveredListener()` method takes a function as the argument. This function will be called with the [`MessageEvent`](https://avaya-infinity.github.io/omni-sdk-web/interfaces/_avaya_infinity-omni-sdk-messaging.MessageEvent.html) object corresponding to the message that was sent. The `MessageEvent` object contains unique `messageId` of this message and other details.\n\n```ts\nfunction showTickOnUI(message) {\n    // Logic to show tick on UI.\n    // ...\n}\n\nconversation.addMessageDeliveredListener((message) => {\n    showTickOnUI(message);\n});\n```\n\n### Receiving messages\n\nThe Client must listen to the the Message Arrived event to be notified when the messages are received from the Agent. To do so the Client use the `addMessageArrivedListener()` method on the Conversation object to register the Message Arrived event listener. The `addMessageArrivedListener()` method takes a function as the argument. This function will be called with the [`MessageEvent`](https://avaya-infinity.github.io/omni-sdk-web/interfaces/_avaya_infinity-omni-sdk-messaging.MessageEvent.html) object corresponding to the message that received. The `MessageEvent` object contains the unique `messageId` and body of the message sent by the Agent.\n\n```ts\nfunction showMessagesOnUI(message) {\n    // Logic to show messages on UI.\n    // ...\n}\n\nconversation.addMessageArrivedListener((message) => {\n    showMessagesOnUI(message);\n});\n```\n\nTo check if the message that arrived is a canned message, you can check if the `canned` property of the `MessageEvent` object is `true`. Canned messages are pre-configured messages that are generated when the user has not sent any message in the conversation.\n\n### Sending typing indicators\n\nThe Omni SDK Messaging module supports sending typing indicators to notify other participants in the conversation that the user is typing. To achieve this, the client should use the `notifyUserTyping()` method on the Conversation object.\n\nThis method essentially acts like a beacon. Call this method while the user is typing to notify the Contact Center about the user's typing activity. For example, call this method on every input change or key down events.\n\nExample:\n\n```ts\nconst inputField = document.getElementById(\"input-field\");\n\ninputField.addEventListener(\"keydown\", () => {\n    conversation.notifyUserTyping();\n});\n```\n\n### Receiving typing indicators\n\nTo show typing indicators when other participants in the conversation are typing, the Client must listen to the typing started and stopped events. To do so, the Client can use the `addTypingStartedListener()` and `addTypingStoppedListener()` methods on the Conversation object to register the typing started and typing stopped event listeners. The `addTypingStartedListener()` and `addTypingStoppedListener()` methods take the listener function as the argument. The listeners will be called with the `TypingStarted` and `TypingStopped` object corresponding to the respective typing events, which contain details of the participant who started or stopped typing.\n\nExample:\n\n```ts\nfunction showTypingIndicatorOnUi(participant) {\n    // Logic to show typing indicator for the given participant on UI.\n    // ...\n}\n\nfunction hideTypingIndicatorOnUi(participant) {\n    // Logic to hide typing indicator for the given participant on UI.\n    // ...\n}\n\nconversation.addTypingStartedListener((typingStartedEvent: TypingStarted) => {\n    showTypingIndicatorOnUi(typingStartedEvent.participant);\n});\n\nconversation.addTypingStoppedListener((typingStoppedEvent: TypingStopped) => {\n    hideTypingIndicatorOnUi(typingStoppedEvent.participant);\n});\n```\n\n## Avaya Infinity Messaging Namespace\n\nThe Omni SDK Messaging module consists of [`AvayaInfinityMessaging`](https://avaya-infinity.github.io/omni-sdk-web/modules/_avaya_infinity-omni-sdk-messaging.AvayaInfinityMessaging.html) namespace which contains a set of APIs which aren't directly coupled to the concept of Messaging Conversation. This namespace consists of APIs and Events related to the networking model used by the Omni SDK Messaging to get messages and events from Avaya Infinity™ platform.\n\nDuring the session, the state of SDK’s connection with Avaya Infinity™ platform Servers can change. In all the cases the network state changes are notified in the form of events. The Client can subscribe to these events for handling the changes in network.\n\nList of Events:\n\n| Event Name              | Description                                                                                                                                                             |\n| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Event Stream Connecting | This event is raised when the Messaging module tries to connect with the event stream.                                                                                               |\n| Event Stream Connected  | This event is raised when the Messaging module’s connection attempt was successful, and the connection with Avaya Infinity™ platform is established.                                                      |\n| Event Stream Failed     | This event is raised when the event stream breaks/fails due to some reason. Details like the reason for failure and the duration after which next retry attempt will be made are provided in the event. |\n| Event Stream Closed     | This event is raised when the Messaging module disconnects itself from the event stream.                                                                                             |\n\nThe Client can use respective `add/remove` methods exposed by the `AvayaInfinityMessaging` namespace to subscribe/unsubscribe to these events.\n\nExample:\n\n```ts\nimport { AvayaInfinityMessaging } from \"@avaya/infinity-omni-sdk-messaging\";\n\nAvayaInfinityMessaging.addEventStreamConnectingListener((eventPayload) => {\n    // Show connecting on UI.\n});\n\nAvayaInfinityMessaging.addEventStreamConnectedListener((eventPayload) => {\n    // Show connected on UI.\n});\n\nAvayaInfinityMessaging.addEventStreamFailedListener((eventPayload) => {\n    // Show network disconnected on UI.\n    console.log(\n        `Omni SDK disconnected due to ${eventPayload.reason}, next retry attempt will be made after ${eventPayload.retryAfter} seconds.`,\n    );\n});\n\nAvayaInfinityMessaging.addEventStreamClosedListener((eventPayload) => {\n    // Show connection closed on UI.\n});\n```\n\nIf the event stream breaks/fails, the SDK will try to reconnect with Avaya Infinity™ platform until the reconnection window expires. It will try to make multiple attempts to reconnect with Avaya Infinity™ platform. The interval between each subsequent attempt will keep on increasing till the reconnection window (5 minutes) expires. If the SDK is unable to reconnect within the reconnection window, the SDK will stop trying to reconnect.\n\nPost this, the Client can make an explicit attempt to retry connecting with Avaya Infinity™ platform. To do so, the Client must call the `retryConnection()` method exposed by the `AvayaInfinityMessaging` namespace.\n\n```ts\nimport { AvayaInfinityMessaging } from \"@avaya/infinity-omni-sdk-messaging\";\n\nAvayaInfinityMessaging.retryConnection();\n```\n\nThis method is not an `async` method and a successful return of this method doesn't guarantee that the SDK has been connected with Avaya Infinity™ platform yet, instead the Client should subscribe to the Event Stream Connected event. In case of failure during the manual retry attempt, the Client will be notified via the Event Stream Failed event.\n\nIf the manual retry is successful, the Client will be notified via the Event Stream Connected event and the SDK will resume its connection with Avaya Infinity™ platform.\n\nCalling `retryConnection()` method when the SDK is disconnected but within the reconnection window will just reset the delay interval between the subsequent attempts and will attempt to reconnect immediately.\n\nCalling `retryConnection()` method when the SDK is not disconnected will throw an Error.\n\n## Error Handling\n\nLike the Core module, errors raised by the Messaging module are also instances of `AvayaInfinityOmniSdkError`. See the Error Handling section of the [Omni SDK Core documentation](https://avaya-infinity.github.io/omni-sdk-web/modules/_avaya_infinity-omni-sdk-core.html) for the shape of the error and its properties.\n\nMessaging errors surface as rejected promises from methods such as `sendMessage()`, `getMessages()` and the transcript APIs, and as thrown errors from synchronous methods such as `notifyUserTyping()`.\n\n### Reacting to an error\n\nBranch on `code`, comparing against the `MessagingErrorCodes` constant:\n\n```ts\nimport { MessagingErrorCodes, isMessagingError } from \"@avaya/infinity-omni-sdk-messaging\";\n\ntry {\n    await conversation.sendMessage(new TextMessage(\"Hi\"));\n} catch (error) {\n    if (isMessagingError(error)) {\n        switch (error.code) {\n            case MessagingErrorCodes.ATTACHMENT_REJECTED:\n                // The attachment was refused - tell the user to pick another file.\n                break;\n            case MessagingErrorCodes.SESSION_ENDED:\n                // The session is gone - initialize the SDK again.\n                break;\n            default:\n                console.error(error.message, error.metadata);\n        }\n    } else {\n        throw error;\n    }\n}\n```\n\n`isMessagingError()` is a type predicate which can be used to narrow the error value to an `AvayaInfinityOmniSdkError` that was raised by the Messaging module. Use the `AvayaInfinityOmniSdkError.is()` from the Core module instead when you want to accept an error from any Omni SDK module.\n\n### Messaging error codes\n\nThe exported `MessagingErrorCodes` object contains the full set of error codes that the Messaging module can raise, where each entry is documented with the failure it represents. Every Messaging module error code is prefixed `OSE_MSG_`, so codes from other packages never collide with them.\n","readmeFilename":"README.md"}