{"_id":"ussd-builder","_rev":"26-9a94762bf9a4b2954917afc5adbda215","name":"ussd-builder","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, SouthPawsl, Nalo and Beem Ussd API","dist-tags":{"latest":"1.3.2"},"versions":{"1.0.0":{"name":"ussd-builder","version":"1.0.0","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.0.0","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"f67fee01bac83a4a843190c9aabba8311a8bc35c","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.0.0.tgz","fileCount":9,"integrity":"sha512-P3YUkcIinP0A7n3v/b0Ra0TJSIg1wTjM+/xxszc7aa7lGWObUuHr0d0BXKWZtCPR+idWJ5aq4iPTqBdzO63AQg==","signatures":[{"sig":"MEYCIQC0L/z0Lupz6r2vxNAPkB4yuJ5hShxwM7hjJkZI4snRQQIhAJPlpjFOSsAu1z/DdljAm63KZJRw9TCXYwSaEwTzqldD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":90953,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+l0bCRA9TVsSAnZWagAAW2oP/0Jeud9oGxDb+Qr9eEmS\nA0BA/1BW00fcQ/RLyJ2hViEZ43MiRscNbmWEl4kcVW8Glg5eZ/QlEY2NpDpw\nGXp2WqqYCJN5devsc2mF5hOX7ssOwUjW24cSb02AGA+wl4sPzvsGdhZD4E43\nVx7Vll3Z4RiLbIzwNuhlrD1MW3DNCGhCTIqNH7KIvHaCTSQJ9jEzlfPjBFbG\nAf3R15DgOT4/zB2PBTco/RGRwDFE4/12RRwNVN5HEtgMauzLLYTYQ5iH7xI3\ntN08Y8/vumtCjVZIE2HzyQIkg9c+Bh3IX9ziQ7NrWnLkLIkebVvM05tZjK2L\n5x7WWgNzFZ7x++WWLPvKFooWc5BcKfema6uQKDUg6Vb9EhkFko0ZhBtmXe51\nYLSPZcE9NL6erLqxZYlKNKDUKxlLzSiNm8FWlJrf9XKAjWw0ViP8/DOrsfwl\n9J6JDgqplxeHLRc3ylAdpIt01OGdZT6SVsJO9g41RJW6XWJdSY0InZAHZ5ee\nvrJkbChQdGLuLH2akje/l+ZswXb3vrM6IPS1a8cZc16BH0xIfmSsOjso9TnD\nuceyvlgaA5ZdQwInFQ3NQI/hc2GJdJ2iLQ0pfZ0jTEyIzluLS1lZ2ID5q/jf\nYxwyU80D9V1hX12xYE8r2KKmiwQs96isWuwepUcyUotFVsmEV4blx9fMEKLT\nDMZO\r\n=KFyd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"bf9f6a2d96c9aa7839b614f2eff1a582d1b3386f","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.4","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel and Interpay Ussd API","directories":{},"_nodeVersion":"10.20.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.0.0_1627020570987_0.23603262008154746","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"ussd-builder","version":"1.1.0","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.0","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"a3a2ac52d4b2597abcb954705d639522b5b70762","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.0.tgz","fileCount":9,"integrity":"sha512-SNqTMtu2y/kwB/SBwcoK8LusEJhhlksT0iEMu6SsRS2YS3QYEOBqxVsGUB8O44PIwX8641200MJqG0zWnhstdg==","signatures":[{"sig":"MEUCIDwEk2NQeRXWgCmoh8L/Rk6/F6BG9+JSD93MOQOt4SZQAiEA37Z08COwkdQdmJzBzs2Xqsr6faul0IXQqGbtvY+UzC8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":91024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+l/dCRA9TVsSAnZWagAAeYsP/0kIIHBO77fpskqA4QmH\nG/kCqTd3501IErQv/Ppf8ZeKAzpqO9z4fKj+uTohXiFgd1iSew8i1UazOlX8\ne5gWM3HOrHkVqBMeWpAvkbrIyMuAn9Fh4Cw62bElcXnCxAfLUtHuxhs+DvZN\n3rE1HImEEgpHhbRSVKfIBFFW3dp/TB702JTSpkln2QuMTnoODUMgPKjNzUQe\nlu1BqzQl4+mg2Wp32q2r777p3JvOkTh85JGU8L2xjQ1pD5W0XoIpVLVZAZEI\nWhjbIiy87GOio1zAuEPX710l4LmTSoQ/SgqfHQn/NoGvf63iIi6uUAF0fyGF\nitW6+ONdxNCqFoO1OxOqTAtr+UldFvk2Sa3GJx9M0Susi61eovUkzlD/uLXI\n+NLf5NjnjzsADd1W0Ik2EuLAZHRaf8SFDr4yIHj213ZYEBp/7T6744Kw2U02\nTK7T7EI+flNZFUyCydkQd8fA8p0h2+LUkxCTYCMwFK1B5iP1J2QfTuwklXQk\nupUNX7R4pxZGMwHbPty5beJZCLtaXg8Yhu3AqdC666lrDOzbRQMirwNKcd+w\ngWyAw1P5rPLbBAEeJdyAXSOrH8fFkzIaDgjAhOp1m/Xbd1amCq+r+dIGUhk4\nrwOAvEDtobhQCRJFl6023dvVnWCYXgwI15cI58ZTVj/2oIS5rjBcxXgkcXAL\nn11W\r\n=NoW+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"de6be1558aa6a40f231070e5d184518a60a14cc1","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.4","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel and Interpay Ussd API","directories":{},"_nodeVersion":"10.20.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.0_1627021277809_0.6133326187742805","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"ussd-builder","version":"1.1.1","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.1","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"e99f1497efbff52dd2302e58a9296711fa8c61c1","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.1.tgz","fileCount":9,"integrity":"sha512-anUrpgSTCtIMilhXVLvKMMRw9FR2fIgA+HTnBTUbaRJoYiI2ppNxZV3GTGbXic+7VGelUGTJKrbjteWhxbozwQ==","signatures":[{"sig":"MEUCIAkzXTAEEBfQMSKTb7+ZAYslFiHaX6cH/70P7ltyNExRAiEAtE6VR3PBW5ck1O1C/w/B3c/CFJLE34f3bBQF7K7jSdA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":91155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+puyCRA9TVsSAnZWagAAznIP/3BqPhU8Psr/IfPNRE5F\nFBCUv8r3VW5/fpeJy1z/2mw07rEh0fpKf6ohYHjj7/RY/1I6hr3tKkUQ+Ff+\npw5RBvFegZmzV62yuoExQND5V03irOaYv9JG1IP0dMjmpf9i7l1A4JBv28HN\n8yeHQX1Jv8W0RgQLeEJyNonSM5LYLcs1O7sTQvAyICmRye6YPT4ukQQWl/MK\nwBaWOvUGkP8f1HPOAmEPY8qFCnJgy3ucCfKSJJvqBQElw59eAS/wX58Y7Pgn\nVpAB7bzJOj62AGqiWVYwnMJi5W8w1e+6sJ60El3oG7ubXJC/985ail8kEy6b\nHEaubsWwlvOQ3PqDDOn/YelwTrlRbqR1B9l1bG/0m/6M6fzSbcOkxyXfoY3G\nFyzBuOVfNm6oPdc9Lzm9NfMoicSCpR1R8bZwoP9GdOuBHyIdwMWsR8YMwGg9\nK4xbDV8SIT2EGJMxca1+prW0ZxyqlHAz/JYIf8lSvY5d9sbLqfdbm7ACdGil\nTorRz13ZNNtEIhfiACXzU42CI9o1zJ5fOYnF1R39AboRZESxcyM56dVDaMEV\njjPsZe25ZJALqOgjWgZ9HGWjHD4EbwlgHFtkWibLXqLF/wISKm79I+xGVCnu\nqexoG2NLXdjw6RR++q+CXg47HGNt0Q0ImllD5aRaUdo+OdlSVN0uF0BtGrBi\n+bgU\r\n=b3Mh\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"5ee978badc57487a0cf65661481b9f7f90a7283e","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.4","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel and Interpay Ussd API","directories":{},"_nodeVersion":"10.20.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.1_1627036594429_0.47272781362349914","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"ussd-builder","version":"1.1.2","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.2","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"144e7433fb667b50cdb279fc4be082da0fb5f97e","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.2.tgz","fileCount":9,"integrity":"sha512-Bpoh5ZGjzR76FhWZsPIg8z7UJa1SjCtMkP/somHEhU0yIC51BhpL8uOVzLQ1gDkB4w8xO0kco+3lMSIR+0twUg==","signatures":[{"sig":"MEUCIFZJOsTEs3XNLs76ASU4Db9koURlg4PocIFrhHF1DW2XAiEA25mAJijrKB4mr5newW3oGEi+AExF4+ofjOlwCpnZAxg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":93998,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5i9ACRA9TVsSAnZWagAAuxsP/22NB9ckzrttobL90Nn8\ncDes2ksAGusQ0BVdk+QgQLJsJLdELequtdgRkOlD0bzXG62WRTuXORbEnVEk\nzLBx1PhMFRdTksZYosaAW7my/hE2+sq05FKALemY5KJKcm1jQQ+mwI8d+9oH\nQuyXsVGsKGSAW8XkjxM7h0rSR32j7uk7mNItxbUnV/+EcaXQnwQTTRR27/CI\nJF+GaZAQuu4hW/h5UzPYVCZFQEJDB7CelP+9j3fZgIsGjN2Eqh1YXranDqKF\nVSB0/zt7F/9LCtoA74jJfJJ+dXmfjSxRAunUA8VcWiRTfIM/eqcvk2rvWQbp\nrfz3I8A09c4kaQnCUE8z0fwScPwdjQISGJfC6LmIem/uTLzsoZ3+pREU7giH\noxHngBT13uF+wpha94B5o8EDUt/P/KvQEoAd6+GJbg9vMuNsO9x4K2TSBJZ9\nNy9R7euJij1u2BOk3S26llfs1UqvnNdcgH/2XmXIIAtEyKedhHO3JFQoWNZE\nmYY4IjvbZbHc2OSEUtWffOk5qwnXB0+0AK3gDz63LPGczQfsN8n4+ro9Kk/V\ncMyn7GF4ET5ilZJZcTzpIR/C3yEEI1uCcaCev2mfih5DN6F950GWveDe3XUD\nTmHMVNFHV6mr/iBtbyM5gDaRm//ilZ+LLxARgrkOeO7JfOM4XF+2SKdk0ev0\nj/fK\r\n=E/eo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"e53287d3ca582ef985f7dfb923fc9dfffae6850d","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.2_1642475328214_0.5712994420143533","host":"s3://npm-registry-packages"}},"1.1.3":{"name":"ussd-builder","version":"1.1.3","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.3","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"d298d322331644a7701b347a310238e8ba323faa","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.3.tgz","fileCount":9,"integrity":"sha512-fAkTA5vheFENmoVB0TvrAhpOZ+8HmljkDawHS23sDWHZeyiBrPTn47OHVLFLNRQMl0aKnqzsfdPFuoM0HGlSQQ==","signatures":[{"sig":"MEYCIQDEJyURqZAphkyczZOnScMV4i0W82dcGf7I7HeBygV5BwIhAOQBhzeYqzlHJk72UOG9DvH2PO/y9CctZRnEkUgHa6YM","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":93998,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5jEoCRA9TVsSAnZWagAAoOUP/05Y9LqvJMiGrNEUIMOo\nU64CFFXcpMFwjzrU9IH9KJ4WNB49FLHU8syrKazZCPLjc7kgemw+RC7fHt4s\nOSahbcMEYP70B4BYZbDWrLh7l0Rg8mMCrUlTW8QBiCf7XvTnE5d1r+VNQsNY\ndA00kiyrlALLL6a4wYkN5KXRylC6+t2HDlP2h3Dpks8DTY81fAUyMbEobj5K\nqSFGkpUEHAf+wjbecv8JJpiiwg6e4rtrUOQkHaGREzAomp1fD7krfP8mpbvz\nBgEcD0jbdp79Q8AE57zWIti3enf+DY1dSt4v9no6bH/bEM65Cm6PWrBQcMfk\nSnM1tIsLyjR0+ciVcbaQ3DqNY0PFKupc0aJnev8flnQf++S1gFEMSFy2e8zh\n4Acjzy8phky4Qq50CxeoElYIE6Rv7J0qqU40zlniQ4KehemEbSKJx3dvJrvc\nQsj12OkOkM/E3AcKCZ+4MAiopjyZYHH9zaDfj/JEecvEceelD++OJyAwANLX\nB346tb8gExIa7iG9MwAKr9GAeTttaktCyYZPiKA1GCCIFO07wE4oUHuV8klf\nyRAQ095fKCekRqZSAbRtvJ070o7iSVDxqKoGt4XnGp6SQMgWfsDpB9xNKyG0\nVs6fbrpYl6UEGtCNe77LCMo6V9tpDx/0E8sc1oMXcsd+P/ZkDfQNvz0/TDJJ\n/Bpf\r\n=b2/R\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"e53287d3ca582ef985f7dfb923fc9dfffae6850d","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.3_1642475816596_0.011150852786540488","host":"s3://npm-registry-packages"}},"1.1.4":{"name":"ussd-builder","version":"1.1.4","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.4","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"612bf193037a14cb51aa9baa530f84da0f10489b","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.4.tgz","fileCount":9,"integrity":"sha512-1W6qjlPIU5fycYniDvwwoBZazbLapki04VXgRTxT1CgN8ZfzPIZVtx5Rs9ZEio9GeaejycQi+Juwbnta1YVSqQ==","signatures":[{"sig":"MEUCIDpgk6Jrxi//hF1bvg1WMnnhxzSFq34U2XajCFKIYMFIAiEAvV7akQBHIhT38xrmm2p2p8mEgBqkN++CVE8rgglfsYQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":105140,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5kMZCRA9TVsSAnZWagAAO1AQAIwSZg0wMSi3n04AviHK\ncyuWIC2su+GzwjkGU+J9RaSiCW/OaGBSlWPWumjchomgHYrz1mSY94ZyVKg7\nvahtHUAujgXeNMtY0YntXD5k+6xzRts2dlzALlpjY2KVQBIST0UYEziIlH6V\nWofZlJSLjHKczEJ5fWr6BSHs2PvEKkx5sdcaOYeEcitO8jPKVQz+oiu6T1gj\nSA1YTlQEewn3LUQ8EsnJk7NabLR08LTdsUjnSYTb4mtYQunVPjBAvSQbaveZ\nIORPV75U7gTNbEvqFoEauN5je0wXwRwHlDhOa46HU+1lzgeBCnJJJ0FE6hh7\nr6WC1AO6G6CIosFA4JUqPWSwfN4DyIhCjyVYakTx3ecAwc3NW3NM7aFleM1H\nfk7h/D0wM9z9A5xI0uM1SLnulszKjQrKNQcTfRpQozx/kVdDk02TtVyyu9xw\ncWVQHjMGWHDoUq6gACMhw3/uRoRCL5QmBZIwLsopZKjNm3YbwkQ5JikJjbvD\nHfKIHx5dE1t3NSN0AEP+bTwyTw6brfmlaUlR72XjZV+CkeM0KUPeYd/eBDr9\n5pC3i25UgzwwsoI8RhxFVfh4IXBQ1HiQxbY9Z7n56UM/Kw3+BfvcKhulsEtV\n7CTML8nIaNJhfrztfQnhj0HyxQuiJ7DqdFNqKslWtt71xnSUHHjDGDIEFTft\nYESa\r\n=ljEm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"e53287d3ca582ef985f7dfb923fc9dfffae6850d","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.4_1642480409165_0.29055323683628154","host":"s3://npm-registry-packages"}},"1.1.5":{"name":"ussd-builder","version":"1.1.5","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.5","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"18f5df113b3d73a3370db5462445e3f42bc588e7","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.5.tgz","fileCount":9,"integrity":"sha512-VSY/m/FO3rlBka1EFCP2SerAE6OQnfEVpe2V33p26JO+Ki5xolauBffLpICx28O9kqGs1X2N2W4x+u0aMgTzuQ==","signatures":[{"sig":"MEUCIQDKoqud6vZt8CwG60naCelo39y0FFj8RIOqMFPO8BCluwIgT4oStkew+4nxSzmrN38iuN9/rbrTskOBCwGuL3kuEgo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61059,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5lU5CRA9TVsSAnZWagAABgIP/0yUISwPBSX+xpkMXetT\nVQvDSlO6UtqEw6GSad35bKMv446AxJ3SD9tbxcrUyb4baA8Oysxm1pZfj+mK\nv+P/wBxKalT5D83NZRcWwgcUVVGlZoSeSVWN5gpgbKZ0Ayd+P65wwJ8cfFyM\nXXmSSIcp1Ax5jGkeiRJCCqWazWwlWGh2sHNc1ii926kKR2SXAnSe/NR9tXMV\n/+FyvagSy86UwQOC3tw/UGx1M0tmlRjYZ3IRGAlouN95qJZKMtHeriflPiyJ\nx5WeeuResNk03RNJhCJGQ8D+/ngU2o8JsSAR1l4oup7+iSvmBpKCw1n9iT/v\nZTem4Tez56UPmieneqgodkRaKYDbHphuLo4p4decjrHMYkS0K3vKZJqhfM+I\nEh1PJcbkNZCYbg4KY8jQ0u/75MQpYtkw2QWmUx7Azi9+AsU2Mqy3Jd2weNuZ\nbnORcN0HFndF8xLVxHG/q6/tCOWfq+SVfDfQ8je+0M0+SH+H8KG27ejcUPKw\nsN50kmZ6wiyHYo5lLDR358fEY58ZAhOqNfvJs3iFvNt+pldWpioex5xPFIUd\ndzkhZBiwZVhKGJT6AqUQMPdL4jWrsWG5hc7WdSb22H1ON9vHDmpkacxrAnPu\nCc2rDbQ+6dBKRLfbMjJpSY6heqt4P/FT23sy71fgP1rXsObOHiQsNZnypUNG\nB4e3\r\n=pkl+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"e53287d3ca582ef985f7dfb923fc9dfffae6850d","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.5_1642485049742_0.22069435975652096","host":"s3://npm-registry-packages"}},"1.1.6":{"name":"ussd-builder","version":"1.1.6","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.6","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"6fc840bb1d89813093cdfe94bb7b9bffab8fcbbc","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.6.tgz","fileCount":9,"integrity":"sha512-cKnm73YG0f3r4lIbaqiQyi9NWy4qfzmai8CyhSi6rIBVrlmfoNrYRt2oZ1EOvwwkLsUCiHEey3BJ0vEljaNq2Q==","signatures":[{"sig":"MEUCIEn6wVkbD71PQkdP6yculf9LwTW4THCBng42eTMShUCKAiEAqzLTuxxFQoL5zIN+P++YF5IXzYIwvVIh6IO7kX6/WDc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61067,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5lVwCRA9TVsSAnZWagAAQRMP/icrQ4HudT1YB8otTpd8\n6hmWEkCrWvXZcJiBUA5yIbiyjIarJdaQiudmIaColQ87wh63wULoCBKbG9Bl\nGG5oWAYs77GDev4iHlGi36Oj67ScVk1mmdiYwW5Ue/aMVLJxQ6FQRDfJ8PtI\ns8jfDLBS6OVfRf78LQApuA7/tt+dZ2jV0ERvusMEN8iAC3Ea+t7BXdiWYtZF\nQe5L08quC0pBzg3BLwecRTzc/0vDw6JxxMOmyDyXXS59QGV8eL7AyT9eQw9q\n9RQvEr073qgx0ohuP11t81wZB5jlNpE9+pGcpnZe17zFe/gzW+cxdBS4B9R1\nYZSTmbqE0uFrIZxwywtMqgb+r/7kuFehgQVqA7ef0vDuw8sssbAr+Fma5jQU\n60AWcep4Zgi4h8ycRklOPogKklvrUVEVyYU7fptW/jQdZgWe3Vw8H8CX6g4E\nnUWAUvCWBnEMmjMj/B3b8EYIrjMGYqQWJ6rhyoN+W7e43hoFzIn4JhS9Uh+O\nMb6TDJO/aei2y8zfz+CKxEApRPpmo5aH08lq5ejFPKh73dc4gBT6o0bY+H1i\n6jnEmGfU2ZhAny8kTg14m1KLDEEKwOrp0t5F0Ewzjsy1OAPIPZ7e0acynGkr\njQWR2vYATRrwUUbAcoc6jADxgJHMl7vnJoBbpRv1HNA3h8VgP4hSBZa1oBU6\niVL4\r\n=uvkd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"e53287d3ca582ef985f7dfb923fc9dfffae6850d","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.6_1642485104068_0.20322680193478138","host":"s3://npm-registry-packages"}},"1.1.7":{"name":"ussd-builder","version":"1.1.7","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.7","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"d5efd225affc70ad7e98a8ee763fd40cc24fe3cd","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.7.tgz","fileCount":9,"integrity":"sha512-QdDg/5f1mWRwtmtK2UlLTyIZuJm6XqtuUx/BnFn+ojaT9I8eYq2lej8olUnYeAGPehCLiYYGJZ9g59BlwDB17A==","signatures":[{"sig":"MEUCIDr0WojW7lXh985rl5//f717igL8nvS/EtAc5Fblx98+AiEA6TbrGLFYAhDTAOflTo//C6lWzTsV6OanzOS93d5QKdI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5l6tCRA9TVsSAnZWagAAZKsQAJvHJ0VW+UZ+gS6Kr0cP\n0ghsGNMD8BdY3v0ydahBon1t50Xe0u2wadB7j0Gey+dpKcmGIEavAHJMXN/j\niK+dgO8ImEIVRAN3yWTvH1shcZzDdmG657yt1pSGt/tw6o6QyWgBSupBwWjq\ne+p0wrB8VrXv9G4P5DzBrehzVISuPZyx9FJ2JEIBgg8LoM7r+tpB53zxO4qR\nGbdfPxnEStz1x5aUYRsm8jnjyxrQbdJJrEbDC+S86/ziCxAhRWIohWG5e7Jt\nBiatxhBzUd87NgDnh+QzbYFL18k3HwiVR7ehQXObkBIy/h5FdG+eVxbAX4MP\nnD+PjKEJJSAQnw57i/YcgdRJzd/pIMTjWXeQXUijqD4zdZzPXDhCQFlUEDtz\nfdEh2ukdUP1QoCZoeV5FkGmhshXfuyjIBOSvYQARBS6tIKDEgDSrY5RpybfO\nnohGK9cWbY8RqLA9rqg7v330NDErCco+K+5kd0SK0bVHKb8VQILC47yLibTG\n1yaedzxcio2eozUvGNSZcF5LQvRBae9XF5WFhLdEDOcf/Cubb3JMSXfMK+nf\nVkPQLiCw6Yy0G/gJY8JCTnxvcFkEz+wxRwl+lMJhvCZrj+p+R/Pesd21fayg\nvKqkpXzNITGTJ94sShtf4ISk72Dzsr3Lwm1HPyMPQNa5N/xXQINdw9lP3Xyx\ne1AW\r\n=jwQd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"103e98383b130f8c4ce02c867b46ba1d11a275f8","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.7_1642487469361_0.983547543966629","host":"s3://npm-registry-packages"}},"1.1.8":{"name":"ussd-builder","version":"1.1.8","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.8","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"bc1444d5edc22d7a889791cd07f2931a13494859","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.8.tgz","fileCount":9,"integrity":"sha512-rhwMKWWqncWJ0H+0V41KrMc9LE8QIEJYIoeBSy+ks9Eka1WJWnSytHtWpJb4tvEorET8llvyhUpXO297Tm8QNw==","signatures":[{"sig":"MEUCIFuNdQiVoUPLIbXAkIY1oEQneFHXM2PZls2lbq5pu3JtAiEAjJ+m4G1R48bgNfUxoiP4HWgyfVwml4LINIWg87kCq/g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5l95CRA9TVsSAnZWagAA0ecP/jbkYIYS0PMkY8t07GLZ\nL0fu1ZAtLkzgaUZGBkjusuWZ7Gk3xC8WH0yY+OoMk1+JbPpqWCsXIXjgdIA1\nNFcS3r8RN8TOhF31swzWY/qxqJe3zFpnjbxebQKflPPSWLYtT6+LS2zHwfAc\nSMONd9RNzTY/fDM5l4bOop+KB/Mk9Yh0tdEUSuDYnCS5JZ+dnH8vUwcShupp\n/ah/GvvfBZ2zFNO/6iWNmU8EeTNeYbwAboJqwQ8rX9vwjW+8ZZA0Ya4Pn2EW\nzgxAWxQCbIr/JlWxthXDmCWaqAAPW+ruxdWqTDbcYqaKBfCJU9lQ7Cjlwi0m\nyJ6WbCeW0lDYAppiLMiND48Mqf35loD6QTDhV9Ez9g23uK1u5E3fYpcHgcwL\n4qsjTldqK7+OUIF25wUOIbAS9TU8ojk3QbVdqvvYz/Rs0lq1D/iXKLs3yMKG\ngF6pdHUUrFQrmLAG1C6D3BQuzobNEvCj4olFwUf6dqVN7IwKd19kuS7KHF9b\neyF1ZO+gfWq8G9rEzMJGSxaZcW2PG+gfMBn5NO3m2D7uJ85WyTRvKfz/u7Eg\n4Em4uuV5bMAvKQHt57R38W/I/GFDtbfPSgk9olk9Bs5asl08Mm/h8RWoq6mH\n3wkHpBrw8EALqwjXyVQoIXwIDow4e1ftxEUY+E9aAY5u9Fjyk8mzU4Gpo4it\nK0Yz\r\n=Q8+h\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"103e98383b130f8c4ce02c867b46ba1d11a275f8","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.8_1642487673758_0.008802199504271302","host":"s3://npm-registry-packages"}},"1.1.9":{"name":"ussd-builder","version":"1.1.9","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.9","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"13d1421681416c0cd487fe8aa10f0e83543721e8","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.9.tgz","fileCount":9,"integrity":"sha512-lwTVP7yxpG2k47JY3R9Jud2OV16LwxJ6Ufv9acHuegc/esPhhNuFWEgz4iO2Pe8I20ubEX0dkTkKCp80JVeItw==","signatures":[{"sig":"MEYCIQCoZISUmCBN/zzcGsPluZj7IDn0PlEe3ecMhqmNAx1TOwIhAKoA5T/n2r96GHvxcFg7UHPSCVSmrCJ2MmrzMrhSP/cr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":61472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5mGDCRA9TVsSAnZWagAACdEQAKL4LSvPic6PS1fJqnah\n7dAtLhY2HIeErzIqAELTew1qKLhlEKHjo3IkcRLOMELY1v3Gz0RMqsLv/I+u\nGKkEzuKZF8xTfd4yt0fuK0tLc0HHf8bloen1ZWT2zeQIhrzKdIRjMWDWRcyK\nDVfnvqQrg1PNZ+ScNdQ94UYJjI74BUj+RLO8xc9DHUFSPh79IXf0wnN52USG\nHy7qbTDDCZz18WOYh3d/v771BHuVlRqYaRLVOAWvOMWKHXWkOUzIJNJio9zJ\nPiqpnTkZa2EHhGdpsIGQkDR/BDMO5F2fvsLJwGirkRw/K2xakdTL8+svgcDV\nx/uWtgT33SrtN4RlqSTbumfI/CGX1YGPo6ENnR2rQnpJXZA2EltlbhhRTS5a\nNo3ujL8EDRFsT6vLke8atHU2gIetXf+NXyZbWWjfgxyU4QVO12kEe/cCtdyA\nEVcc9DFh317GJ5m2zNsBgiM6Pe7UtRxgefKcC0x2UySUSXmoFpk3qA4/Gz+V\nD+mUxFzY/i9w+bfic/0PrgTzoYQeBz2Wi8uHJ/YCvPEQNqyjE4y6OWERu2pF\nV37rZVupycokA0KfVHHeLy9xn/PINFxFCig4+xbE+mjUkyqfPwW+r/+gBbDl\nmWXRcNb+WIWgCU0qSkhfr530777fJUtAvWUkvKQkzEGBC9ULUQoE5cgCboyv\nIItH\r\n=16ns\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"103e98383b130f8c4ce02c867b46ba1d11a275f8","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.9_1642488195370_0.5914597107581501","host":"s3://npm-registry-packages"}},"1.1.10":{"name":"ussd-builder","version":"1.1.10","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.10","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"5f6c47f1610d9752e0dcf49a0581344378b1d15d","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.10.tgz","fileCount":10,"integrity":"sha512-G1oHDMe7WNKoQ1sfE/pTKpYLtuqb2+boW1gAkQXJfo4rZ0GyWo6pAsOcUtHqYQw/q/+DVbqPoWQXz8U4tElFjQ==","signatures":[{"sig":"MEQCIGWhiPlv3rvj2OHWrKHpxIqcxrbpN+uWPMg21qHZmz9AAiBW+r7siUdZtLEZyMvYevETnGgsPtgPlhKQQObNyAZKDw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":78557,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5mKUCRA9TVsSAnZWagAAdLYP/RuaNeUxB1M439HV+lZO\nMn4b/cgDrh9R5LnAIv3RfeE6lzfELYzMV0lMHgc+pcKUYRvl+Eh/gx/p6+cF\n5inTR0eO3wtvnaPpuPts7pWiIosuPrOB0P989Ha1h9rAHp8O2BcpEiKzzkB0\ncBiVKYhgHiSi1InOucQ4DTNGpW1wx11vP5jk+rV+KMdi9kNVY9jympfkbZv8\nhaDaOjue9QQoFMzOSX10LwnfXJn1q+ealvsyj5MNcje/CziixjmO2kGAUU4q\nmh6N9oGrBhmD5Bkoxn3jbLckKeIuOMbDM3I3IvdR+8DNEDQr+ACs7mj1lslY\npIlwpWtiyDgTMbGULMDvO9Or2hkrcZd90M3nM3FCsA5P3YDWEi6Zf63Hoy7M\nkn62trGIJPbw06pmiIfrC6ixTYlOq/Gkx4zzFSEtfecdyn2oJcfx/5JSzfSr\nPqI7RKxbi4rpw46XlrUJ96BVHhK8bLO80KoZFO//alYJ1B13L6A5Tv86Lgo/\n1pIoQvO69qouwH1QmnA7YWtTYWcmLXflDUir4YR6TAO0UocxMzLomuScWkUA\nKR15Y3y5qnfmYUMioVo1e79HsIcsAzuTYMM7T3IGm6KmvltQRd+nwFs22Hpf\n2G03PIgjYNg5Z5egC2IZq2sKmvr4YRVEpeaIdMhz276AFga+kDup2MsuJmlJ\nehRR\r\n=CBzW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"103e98383b130f8c4ce02c867b46ba1d11a275f8","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.10_1642488468413_0.23987656101002552","host":"s3://npm-registry-packages"}},"1.1.11":{"name":"ussd-builder","version":"1.1.11","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.11","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"bb228fd77bb12ab817e5ea7806bfa2f36d0a1567","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.11.tgz","fileCount":10,"integrity":"sha512-PjwoE3zmFBZ5b+ODY5YZYJHxBvO+niS0FdhDi7xdR8s2SMwWVxNdN78j+MH/uJfC0IZRGjkvLLmksRW2Nd0pAw==","signatures":[{"sig":"MEUCIFZlj8A+TNLZCsXVSffk/Q97mdwxJKm7jw+0P11JelsiAiEAteGPPWqotgDxbElHwlct0z3elWql4JWYvdsTvmeLWW4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82567,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5rHKCRA9TVsSAnZWagAAuVIQAIhIX5JH2rALF6yCVz4g\nlsLOw8+dZc/YRIAL5nga8X3tNj5avPsq6ThGFZepCWDHvIPro7qSY8tftsWC\nEds6NsOla9R3HFNwb+q/hD/uVGzmWuiulHO7AjvOUe4Mq+NNesJoejXCKT2d\nNtUqU1SddSB+Wzp2VKBjC4aVn6XAlJaGd2/mWnJKCeyTCHYy0gqxzEo83inE\nyBOyUhuS/1tBryP9JFMeCGOVozgMscwnYQlIshhXrd3enYNqAYxUfMVBUbX+\ngwR8RFI6OMvVjxoT+8rZIUEf44LiquU6RSQYmvzpJuu84BVv2MaHlIn2fVrT\nLjSDObcai65RBwKSMbxPjIY+YjK+YrC1jFH0t5rlG4u7Z2ivXBFlk/IwZ5X9\nc4879WTSl8/UME454TAI5O/7pvku1HVOBC9bsJ7qeF40rzS2kejqNJ+TMPTB\nQQMmo0g4S7k9oxAsm1KJk6c1139Us/Rtm+4dQKzJzpiUbdEw0SRTqPmxTDbX\ngBTzfiMcbTW8GEE85flPzceLmzTM9EJAkljkrFJsOr3B8jmpBcwMuFTVXohA\n5CzltpUAibBtulquh5sK5LBVrDTqBNcENVuUYMRP5lqwOx5A0bqWfgQbNic5\nGOc9qb3MHjdc/0unvHaxUdL6hFyQQXjcwn26UVlIk4+Wp9dARSbqaN7ZgmST\nI2cA\r\n=jC2J\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"bac6cef8e8c8e2c740a2e1c70e0abae6da45eeca","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.11_1642508745870_0.09008149669471566","host":"s3://npm-registry-packages"}},"1.1.12":{"name":"ussd-builder","version":"1.1.12","keywords":["ussd-menu-builder","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.1.12","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"af873db466c0d505848a83c55966967869a6e813","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.1.12.tgz","fileCount":10,"integrity":"sha512-7Uj67PwvMXWIt+oBPJeaSOxLc227uV9OOddLuj3zR7+ukCUqcPUve87Z8wvopVFNksmRPDGi3V+IXq0W8F0y9w==","signatures":[{"sig":"MEUCIFwCA+TkRcjNGR2JZl6y2kYGrpUIsuUeyS2sEjMc0encAiEAgYlNfvo8COyUHFSmMMinodnpwf3+xpZGu91KyLA0Pv0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":82565,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh5rgkCRA9TVsSAnZWagAAGQcP/0RUjC2NTsFGdnggLNWp\nrCdPi6eroVgTRpas//ZH+roIOi8izTRmG3xXMMXDJyltCwOr2jgjGVyKiIJx\na89pwrgx2ZJ6UeK78m868WsyX/SNg0YPPxvER/zQZnicYMD66c5jZ+jBAUBS\nzlR+JMRyX6OBs65+beKfNgYBO8ichz47xRNR2Y/4NjtmTa6C/ELpBoO4hTms\nkqiddTPYWmXwgPguxWvwP3USr66WZC9sxkL83Mdgf1DvylQCjzqJSO/2iDEs\nEKFmEsH28eEUJfMD//nQ2qM85WTT1K0jHDfpFWlyfah/PwxUXC6Zp/fE/Ivs\nrJHeO+vmp3mi09J3qRfr+P2ZBVHOVQl96Cc5VQjyrn9gIyXccgoc0+ggDeyY\nt6Zl49M48vSyJZ+qJsYdhnDSEaUVlPUalmGU2l7jp9V4j15P3yVxNo0Akf4I\nCgE1EP+hqWDyPF7bvNRpk2BOlQUrSwZXLCs1fBpmMEvh1b9MSMZx2fxZAJqG\n8TEHxlExsRvWwIJOOV2333Wiyyocs85o4++9904SCTpqKfmQN7P6yETJAf/b\n74SjOIQrdQH+CyxvbxX4tureVphL1webHagquGyw+eUmqKF35tE/yLMsswsW\nsQ2WylTv8JfDz14lKTqV7YoyTWGrctVX+0iYTs0BBr2QONY36BohsYhOgqfJ\ngl5V\r\n=htVq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"0a4cc901f0afcfc783b88069b7d50f5a473e9862","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.1.12_1642510371939_0.6316140371698105","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"ussd-builder","version":"1.2.0","keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.2.0","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"99a0cb8f2ec87a87bad1d330c84f156ddb0e4823","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.2.0.tgz","fileCount":10,"integrity":"sha512-1D2xtkWux4mCPLBlO6URfLb8uIiYuha/MI5ndDNZGoZNB/944R5VQIGMA6NVNwfUY+KzPGy+ZBvu/cD0I+b97A==","signatures":[{"sig":"MEQCIACgbZ0rc5sSG3WZoIlmkcQm3aeIAan+ryxGW2UydQC+AiA8FH4M/gHCgjPesZA8y50vRd+Is83Scb9VhVPOk1D3gA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":87322,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7E6WCRA9TVsSAnZWagAAzvMP/iz/gS+XLQKKGyhMW6TP\nSAUL0xGyGQJFhNa5v2guIstRucfgTltzOGJyZliDEVGqtoFA6Vxeij0G89NS\nFrPyU8ug0Vkl6joUZb2m96TzPUXWQAOBiP/I3pvtZr5G/938So+/MoSO/BVg\nObU5w79hT5KUbPFfR7Zv8KE8lVyEYRlX5qfgP0wpK7np2sduIG/xKNeKnTSq\nSM6VM/R+Ge5R81mlfcuHwBCfEMgKXgqXjb+W+L/aVhhov+EHypCqA7RIu0jD\n1Y4C60O4AjA+0vCMluJtRRfm6XZkJ0uBpD6v1XEJZhXBdl1J6DwreQ2Ag04T\ngUXccTct9nCOy7UADjpxpLm0E3EYP8kuY/dW6RfGGipE4XQTDr05CxtV63ul\nU3//sHrJx4yC+QTX/O22bgegBaes5YZtCxqpKmy7sr39deht6T2zIHJf0li9\nSoXCEPsluvJYODZtzqQiSuZJtctncDWC4Mg3W2UPpG4NvN3pzZ+gmiwP03PP\nP5aFp+w+NusH27iRSefdZp3Ac989bW3Z9UKeAa+3CpygplZSgFoQrfwOJAoy\nNCaH2xJGmsfmTs8a5XP4W+osI2JJrii6PPoTncn8orrcJAtinY83Ox8o0lV/\nP/USOdMjPCSb2HN4VJzRwKTTMnJdo/pDp0ElthcbKw/wKHkthrxU4TyK1Paw\ngSjG\r\n=bb5X\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"e49311faf5a085dc952c0daf3ae9127fe1273aea","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, South & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.2.0_1642876565905_0.6147823473160572","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"ussd-builder","version":"1.2.1","keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.2.1","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"d2bf3072c35d99a93adab4e0c3ef2b5b7f638b15","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.2.1.tgz","fileCount":10,"integrity":"sha512-QQD1DsbM1PRgrjisX6005gay6Ix7MvIitO+4DsfS0MDKq96X31HMYxCjSkIRMq+i7BTsVoCZUz2LtuxGdk6DYA==","signatures":[{"sig":"MEUCIQDd/E8lZYcn4LfzKU9BLPEYVTH80Zw1GyykAmpfD95r2wIgVNgA4c2T+ULDeLB+G3RUV8UZICxD7LKgF61NsatvUhs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":87351,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7FBYCRA9TVsSAnZWagAACjwQAIcZv78A1GVrSU6LyqEY\nrDPEVm/v/McdgmnHSTcFgJsRemTdW8/t/k8kXeEww/nj/kKM3r/xNMsUtwnz\nz6ImMwEfAGv++NyTZ1RfYHAaq4ACPtRHLA83aVSbOFHKu65PCKA9lDt8FJ7F\nEMOBRRzMGuIQfbfU7RPi5ZTnPEw+ean4KBtN4WHKNUBqLbJgrIbhcUMbvhpf\n75B0+bLz1xJM7EpGQldM86zCAbMgtPo3QwVkcoBpgxMFXhPuPzOHJ/DGc1WR\ndESiVdvmFhGI1Jn7YscSC2tilPDVo1LRLGNzlETzoe1Hq15FaTKPI/quepQJ\nsfX5KKPK85Raq36IUQb2BBy1XMNk2WUx5NhmZfiVDt2k04cp3Ah3qKtTUHSl\n4+QvPIl+0Qm66/SM25z+T7GkAZWTqJP/aet3l2mXIXU6Eh4X7p4P/zbR99Sq\nbK/roLmgwuPSsk/ZunJB8bbildUTsI1GjWChcrTvVltz/tJuj9KbMX8QJa/B\nGmJYTH/t5n2Lei/GCsWeFEXb11SnGd8tRhTo1w/UA8vWm8hG4KCIddl6zx1p\ngozXeGrDgxd2n8knwl3daG2uIDKKE8wNKhJqNVjyDa+qWjfvNHinne1yPv/N\n8MK4InhmS6xEhGbmWcCunVqJ8VrKGXChziaXIimhpNOLFCghsfqzqRvYQJmD\nkYyy\r\n=8xCf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"da48ffeb99495adb51ec16eaaf97be649f312352","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, South & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.2.1_1642877016314_0.19269197331728116","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"ussd-builder","version":"1.2.2","keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.2.2","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"704b37cdc528a64b931649709125f5e38dceca18","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.2.2.tgz","fileCount":10,"integrity":"sha512-IYigQmJUvryUmFi5apwU0N8PJAzQGAXPqcUu6j3Cvtw7zug0vZ126KgqMVI0Q3WORAT3ZJxSThkKer+BfB9kMw==","signatures":[{"sig":"MEQCIBy7o+MH4vOSmtFKb6AaAbUlHFtVozoxsQ7Pu0X15VKNAiBVwo32BDHhZYRb0t3w9wK16bcntGULyDgbDhjGVjS8Ow==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":87351,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7FCpCRA9TVsSAnZWagAAe/AP/iuFKSWwK66p9z4ZHG3o\ngYrpwS6XbWZZzQ0OdsfCzbBfSUFHVXjFPaldQeK8IKJ+ZcI6jVUQnAw6Z6b2\nhduI7oleNjCHHWWOGHtT/Fp/GhDCuhiL5zYsVvjSiTLwGzXjx4h1diWE6RSb\nv9vPYxAYS2jmNMVmfRMjxXtPuA1MTHBXRVbm/bCRHjNJAHIRbOgmgH1Juxql\ngSpanjQ3RkvWIJ+yUNkxqmSURG37eUTQIC54EF4WxWU6pRMflxNQImNOE9xQ\ntUG5xtZ/arvFv+/FWtcXxcVbOvZTfZYckLnS3A1tCBu80EFHu73n29Jf2016\nlSaTXu5rb4yDkLoNTCdGFodSt5i5tEl0paHtTbYFw+UjJ++OtYcRrj5fC0Ff\ncwo7595KGulya6DlWl9Zeg2W+LTSkdjIV7+kD1b+eXrV7KnOxK5ea76VFpkF\n4QGCxccn1vIUDjKBi2xwmgXQQThy09SDrKnNneCA5SRR6iJ9v6bRjZY4Xjgs\nsU9fffaL7YuXAQ/ynp45TKDPnQ81bLSZnhgNg26k/l7JIGv5Y3593bWfPcWK\ndGCUPpxpzUcHcejlg0uO4evDebTaaBOZFuGjaA++bPzGz4IJaV8yjUUDCL5X\nkrpMFmQg/SaZd2YU1JapjwiyZYzL69s1OYx7L+xjVb7Y35Vy+brURLbIozCu\n7t0R\r\n=4RbJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"da48ffeb99495adb51ec16eaaf97be649f312352","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, South & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.2.2_1642877097126_0.6690944468154374","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"ussd-builder","version":"1.2.3","keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.2.3","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"cf066d81bf685a3686dfef363f84f87f18c38aca","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.2.3.tgz","fileCount":10,"integrity":"sha512-wgR9LaIqlhFn+lOM6TgwtJfCI56b08x2aJe5R1Yb/sAzmYXspsc4le6MIY6e+SAp+YW/B7qBGxZv32h86Mh0Pw==","signatures":[{"sig":"MEYCIQD6YIG9x6ufWj429roeXxhGWuo3JSaGeqwvchyU4ZQRigIhAJKSulzcDAaWltINUfRoiabPXL/wzZClLlUd+13dDvnC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":87358,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7IHiCRA9TVsSAnZWagAAv38P/3ayH2HML21FIoOdt4xB\nrsbUsWxaWCzWGe7wTaTfpjjgXowgFSEtxFgTXL8BoyH2Njc55wb1W8VwIeKH\n/uD48w620tXIkJOZtw681RtL0dYSU3OKOtqz7LluNL/hxImHuckH29R2ZFRt\n74ND1mEjPSARHEZW7ARqR21ZwlMzeXgdaOV+/ZM8oj+0ABpYhQ7ajw1YJqeP\nbb8zVLQsqMP7by9L0LDPsfV3BrXFul0op0i0Y+dAEJdxt13K3pfCzBr2R883\nisMVSYV7mBZc5vN8RmRHyi/sPVTKdLDt54ho/z4XgTpYscJDyp76AMiXpZPz\ngpm5A7J1oNl+kDv1iku4bzbdOKuagfMQ8mJw4p9Kwd0EpNRo7kgADTaMZbiT\nB4XvImMohMa1Eh/l+yHC6g0Wsf6JoLsLJ5nzag/IzUCMv5glH7hD2EF2Z3Id\n+iMfNIq0aVS4VN/at3KIPBdU0jF/zKwldX+9xmgt7yleZiLy2AAjKKAk51jX\n7r6j1o0NSTWTn9x02UXETZ11YFLOnz1nJkHQT4vLaPsLNWmODuO6Ep9yZuxl\nmSwmdRF77OQQqAKGoZ6U7yHBL8ToQtRfguFVezLtpgzavi1xfe5g4Cnn6LHS\nrJiqLsZpOARkmHOJoDgGkfQzzijJuCWQ3339sUHl0EMBxvbv5qSi4O+gL3nZ\n7ytX\r\n=jn/d\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"fa178c5fd978154df9fdb96b1e7653206f2762c4","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, SouthPawsl & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.2.3_1642889697906_0.40463786424739556","host":"s3://npm-registry-packages"}},"1.2.4":{"name":"ussd-builder","version":"1.2.4","keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.2.4","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"74971890bdc84cdd45232862c919a11dc8019f93","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.2.4.tgz","fileCount":10,"integrity":"sha512-Sc8f29MSS2z76nuw+mou9gi1JYVtpxcxa9p+GCGdTk+LHTqPC8xBP0zpo9PyxA4FKD+T6e9S63PL3YxgJxBdag==","signatures":[{"sig":"MEUCIBRrJUJGezX73N9+ACwk3jMfNqFxhXXS1XEyBQEx3eVeAiEA/gQ3oalEhkPYXvpJPME5p2f+AJioU4nBbbfYiY8q7D0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":87492,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7QGSCRA9TVsSAnZWagAAib0P/iGj6KcXm5EBwJk4Wkf4\nbZ910P9qje4s1HtSTzRDn4YMy87CtY/cbX/lIsseSG5YxHlykD3qAymQyY2W\n8To53QdKJsSxwCPEEpgsSDU0g3UYHe4q7sDjnurzNwZVZogoufPd40MReSzI\nFLgrwK40zOwqjt7FUgzY4/G2knRUjSUyORTXw/ax8BpSQP8j44Kh+ia2ANDN\nknaWT3G3gB5x9MF8mml4rOT7ku7QtP95utbcNcy04lOCtjlsNaEWgGHNjQYS\n65VcplQwyKb3/HIVyNvLVmFOYD83d+SpAuKZwgWyyT+r7AkcK2RH0bQH3tv2\n6nPjI90/qssIfCdLkx2k5174Hln/JMXSLR99jrioFsFZgVleBxV2+h9R+z96\nqFoolGXH91nmZFyUeLbEPyxtkmqj+w6K5HOoukiw8kFMs3cSRibR7fu+PeAs\nRUKOwiVr8vbXj2fQ/EmU45+q9YUyA+ffQ6mj/Go5qLPOXQ5bMls9uBGKrLW1\nuRQ+WobMe/2UlrcAt89up2Lf1it6dQ6LnT0vRwvjyKGRosaF0nAG/4ok6416\nTX8Q+VcT73PCw0gnH0PNSZai9a7bvoDd79ZROnNTqESBb2DsPFNMVGGZ3ihi\nHPfltFxBejbvxeYNQSMIegyUi3Z/xD7uCpAO5/+rxokwOF/a3VssjbUrH0WI\ndORd\r\n=0LoE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"fa178c5fd978154df9fdb96b1e7653206f2762c4","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, SouthPawsl & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.2.4_1642922386403_0.4493905060357315","host":"s3://npm-registry-packages"}},"1.2.4-beta.0":{"name":"ussd-builder","version":"1.2.4-beta.0","keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.2.4-beta.0","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"5221a889b49e60cb0a936ff49b67cbfa9bfae00b","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.2.4-beta.0.tgz","fileCount":10,"integrity":"sha512-JCmPHLZ3H/svCgJ5I+Ka3y/RKTpj7xJ+q5hwCfmOKsrlBqJsxd0z9g9BBMEXU6m1U+x0HYhjm7Vw2M1rdad49w==","signatures":[{"sig":"MEYCIQDcY2XQkrVKe3nSeI12qgzjxOhtC1GTVkc5pPG0RsGpogIhAMyYbNQ6576sDlsMwrjBVg66eF7i/d5cHbIczkUvHlrX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":87535,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7SYHCRA9TVsSAnZWagAAgDoP/jsWMkunywYKQpHaAKsh\ndyF7uWgSqRhFOoH60kgMMZR5m/F2j3Nk7ce8V4pcur/UD2Th//iQx29OHBEQ\n6kyfcIe7NF/NCpeIK2MXA6oD5n89dwoiXwEdxCGRzEpXDWBuDIGU8eY0Qonh\neMaX9qzkVLdnBR3ODiPuxOZ/84WCqYmoGHt/KknIiZDnPm+9OXE121Wfqoj3\nEQyX48Cw/7siP4RioP9RPwcsLJpwhViGnbJMg7Mg5YDdtBU0NYw+dfJwgjNl\nW8Xs7iR6ku/6Gt1dtjiW68y8uZZNroCTtzIxNTLWLfqM186L260stTzjwn7e\nY+sWs0rQgLvGql5ots3mlO6PyEFoM+RhnElKpFvlWNqwe9+ZWqn0tlm2nhDz\nrRPmRSiIgGmC5YoSJ8WXAdCZ+SJjNAtqncaM4R5TOAjvpfSjJPbZWZ1EGxkW\n6Y4LwmSobYKgKJHnsWhdA0EaXCCkXXbFT0o1Rb6EoXQ6lMwBmoDd3NEVROOb\nNQ5lcGaTgdo3t+lMNaIRxjqyMs1gAW2MULmNTfCgJy/A9VlvlZS0WQ2c96pt\n0FsEIn4t149AZ67tVtz5S2X8ImfhzH4LU6i1MgpLoY4Ojm3wsbrF9Te3vACG\nTNu3xmXNiKwk4u1qk1brlHqUUKh90mWgMAhP6fNh4Y7xZ15EAoKswFHYEuUn\nty3o\r\n=yiBv\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"fa178c5fd978154df9fdb96b1e7653206f2762c4","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, SouthPawsl & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.2.4-beta.0_1642931719597_0.9149917021154121","host":"s3://npm-registry-packages"}},"1.2.4-beta.1":{"name":"ussd-builder","version":"1.2.4-beta.1","keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.2.4-beta.1","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"0039da5d42b520cc42783ecca04c584addd583c3","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.2.4-beta.1.tgz","fileCount":10,"integrity":"sha512-AaWrCc9mHE0CHdwp2ixDddmhZ/502jNCjN6hYr9wIwVJbpNPbCcfbCQHlIgXUoCh7gJ83ion7832qGGBeFfaKQ==","signatures":[{"sig":"MEQCH1/AB4WRZE+2TWikqWRC9LpgZ+Cmi+WVYGnJXbSDdMcCIQCArbtkifre6p2h2DkoYMwnkB+oU8+m9SFH3eiXWh29Rw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":131608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7Sf2CRA9TVsSAnZWagAAvZIQAJ3zD6JiwT/EzZC+7xAG\nYwkVzDZmw9ZWY0Kqjm5MGsO3SmbQZoCw1A1qJcIK93tDnXEXnnyJ6N3Npi2T\nAoLmzgEATIbIwsOGoqWnCczfpvv9PZymBfhAkz/ZNV2KxJEiRqAl/MrWwUHN\n7WgvUGSRaDBah8cogPPv5Dazjmu2W/70rT83W0mrF2RRp0qTgbsSlbC7V6Wn\nyCLr/ok6hEOeasS8lKHsdJeFEKFw0j3YvJfFHA/2py7ujo23psPe11u0Hbbi\nQfXK98AGYMq8lwkaRj+qwr/f16ci9AnuXT27d+IdtFHTjW4U9nyCbAl5yS91\nDwASToDW6ElV3mLwdHo4QtXCAQJVxTJrFvbA2Pw2KKegC2R5X8Bm8XXLweye\nVnXfrAg/8BuDwiTpF7zaFtvsVeYvnF1TqxDQnutByR0DGBULEgrbQSM5lZ5T\nDfutAqaAf6iXDHHofbs0Dvdw+Sr0CE1C7IIbFSFISDnHoJD/+HBkZVscov0K\ngN4K+OFQ5JXPcszXPvGLdXGzq5coE0GCks2Xk7lwYDcLCmTNQipkL0fydK+D\nxpMP10CmpRUqVTK6ze4HjWbZsZ4BmW9tvobUHD5UdLxGwxftongNaHaOqXJn\nqQpkICX44Gsceo4nhyqWDEyfKiFueGbNuWf6XxxKn3i1MqY/23sDOel4w+Zz\naYLc\r\n=zpX4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"fa178c5fd978154df9fdb96b1e7653206f2762c4","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, SouthPawsl & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.2.4-beta.1_1642932213884_0.15864245335711313","host":"s3://npm-registry-packages"}},"1.2.4-beta.2":{"name":"ussd-builder","version":"1.2.4-beta.2","keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.2.4-beta.2","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"f0bcdecc88c1248d700b0feb406b3638b4f9ba6b","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.2.4-beta.2.tgz","fileCount":10,"integrity":"sha512-grqdrhvc3/RTp88b5BpRZe8s4zouQakWRi7K61RytSoefLQR5yZdXa2RDttd1K3fSiRjj0m1b6qaBZoav08zLg==","signatures":[{"sig":"MEYCIQDhzr74CkuC+z8SGE6HvrR1sIcAlp4nwIOE/J1qB+/2MAIhAJzJWdtFgozxzfDcN0CbGZkWuXaAVegGIQVKyVQL5szN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":131642,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7Sz6CRA9TVsSAnZWagAA2o0P/3Q0s7wVwsUUDYmoB2gt\nY7lWfYWEPu13NKFFRfXv+mvY+hUb7Gn9HKOHr30T3DWQ2LUnVmJ44KFc8Tx0\nTgFB4gmnT9YFaQQFSuHnFriA+CFKlPC/X9C49DpJBHzCATQdrOea+hp2Tnpi\nFroAeo0P48gJm2pZGbdiHEK4nnlHZubzlytdScNVtuJ6vZlIULiTa574O49k\niEaPwJhY7cMwj64HwRtE9L9pTSPqRdQ9IN23tmO86tCmqT6CsTrNFSsryf16\nkBORK1LgH7lWcvJGCGHg9fncUpg1aRxFhR8HX3Dx9HC2cWK5HJM95pxpW8rW\nxCv6CUmJItjvRxl/ckR7H90EiGeDLzfD/FBh8eKxL/V5Uyv6jI9/nO38Fj2r\niz+PMO+gzSVEXsof4ozaVV0VmLXF1ZU9ez0BdOeegVsffRN8xM1qxtmMvxbt\niin+MLklV9KRcmml34iXU/eiIPQcA0x/RO0UBP32AaqC8cfZf4Pl2/5jyzwo\npj+wmHtnNla4X6QfG25quBW8zZ1ORLykoSh5aOPPQbWMyR41qE9y1R9VjQO1\no3p97/mgTc+LkR5txHTnCHFeYYdn94vZLPk35jBUWMW1lw9uRUwSzOHCPwu8\ntU7zNg/9f21Mfil9T9YIjQIcPH9HE6WT7vx7DsIMlDhZJuASv70OjBpUoT/q\nK7J7\r\n=3ewY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"fa178c5fd978154df9fdb96b1e7653206f2762c4","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, SouthPawsl & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.2.4-beta.2_1642933498595_0.6261372632661013","host":"s3://npm-registry-packages"}},"1.2.5":{"name":"ussd-builder","version":"1.2.5","keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.2.5","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"f90331c034dc6079cdefae15331a0d6556f86f1f","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.2.5.tgz","fileCount":10,"integrity":"sha512-tdkpAzoiGcJAShkzAzKpqZu1IqAeTUmfYL66vxjeh/KRakJaVfSDxP0S4btvXe7KFUnpSvdoNTG1Xywa6I6jOQ==","signatures":[{"sig":"MEUCIDlLD3tSwuiaoSYLMk+D9RJIpEUiAAsRVSOA9Rtoy3mVAiEAj1IshmkNc5cm4ZYKADrBprpLA14fL6YCBIoNCid+/Zo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":131716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh7TTyCRA9TVsSAnZWagAA7TEP/jY0/RpRGPY2dc4C2ZEJ\nhK8KdI5EO2JRDsRBfWg9xO0olaDAy7Qb8DTzg145YJgG3LyxJaA+A0Sqo2lq\n0JfYKEp+0bQomvWarO7G0eaJMh39NyzZilWMazCQmKAzpCoSMfBOkksdGHN7\n0+cNaN4VTfJkuGXuU1m1fvXU7PMrsmyOm7MzhRONsWr0fnNYLFvHLU0qZtX1\nmAqu+lYzb6FdoRJvT+m1QfocqjD2RGTN+PRSLWjuwQKR/AGjsrABnJGezv+0\nJh8EzODb2gA0weQ9mUaAZ+PlVZTbNRj4ImEJyvOv/iLwCLGIv0wnVJ1GirXE\nU7/jyuWAoZVzNvYs8lZbaUKitKCY1wBK7Owd5cu2nZr+ziIxxc/ICaxdcZJN\nHXFahST2N6W5HsEaGq/DQo4uS4CiD7avqRKnzYLQJeR5l4kfw5lV9nH6vgw+\ntScSsJFwlJBdQXnB6nIZAq8uaplS0XLyTrPGtL+sZSl0nABDPuiH9+aYEkSo\nQuo48zqwcPsB9bgoEfXu3GfEU5mK1IjEdIStA4CV5KfdDURSsYt9WwJtFfgs\n4a3BfqRAcg+bf3iZVvlLd3nQBygcrAavpYIJOie7yatEqCZEAYjjZy6KZ522\nGrt2GY+wzjkL+II5cVbi3AW/gUbRPTdjcvV3vf4WxOSaVOk4H5qOEalrujk+\nf8t0\r\n=0XXs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"index.d.ts","gitHead":"fa178c5fd978154df9fdb96b1e7653206f2762c4","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"6.14.15","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, SouthPawsl & Nalo Ussd API","directories":{},"_nodeVersion":"14.18.1","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.2.5_1642935537963_0.8378796036450076","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"ussd-builder","version":"1.3.0","keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.3.0","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"8127249d39bf668da97cca78b5bb25983c41a686","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.3.0.tgz","fileCount":10,"integrity":"sha512-4iMJULus6GIZNLFsYfgtROXbbUoweuU+rOhUG+vXLFhdxW0L8N4WDIzarAXPbMVDP3cHHgowGwUZpGbilv+/LQ==","signatures":[{"sig":"MEQCIEtu/AsqjTb1pbWsUOQVElvWtFgM9jC1k3+yeZZprs80AiAkZNJ+YATodxw7fmBUtNyY4x43Rama1QxtsX2OGlKCyQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":133530},"main":"index.js","types":"index.d.ts","gitHead":"4ddd6264f1bf9fcad3097205cfc44e6c03716fe8","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"10.2.3","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, SouthPawsl & Nalo Ussd API","directories":{},"_nodeVersion":"18.19.0","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.3.0_1716167900612_0.04357428905063787","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"ussd-builder","version":"1.3.1","keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","_id":"ussd-builder@1.3.1","maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"dist":{"shasum":"a3687d49a83546e29f7851a4ee1415c0a2d3e502","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.3.1.tgz","fileCount":10,"integrity":"sha512-0qqdgnLSnRK0EEWfTfrJV4U2LRwIem96/oTzzc9vUHHkjCs9SkVjWGkCJw2eKv38Q4w+gyJkGvZAY+U0vMECmA==","signatures":[{"sig":"MEYCIQDe1rGhbLVX6LdGaLbFxIJs4W2Jqlnhq7rIZr7t9BmNBAIhAL0pDJAA9CIZ/z1sL0wXt6fTdiG82axn31of1k90QOEy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":135324},"main":"index.js","types":"index.d.ts","gitHead":"9d15df6b2913a77761dcebc409dca01587c3c6f1","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"repository":{"url":"git+https://github.com/harmonizerblinks/ussd-builder.git","type":"git"},"_npmVersion":"10.2.3","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, SouthPawsl & Nalo Ussd API","directories":{},"_nodeVersion":"18.19.0","dependencies":{"async":"^2.6.1"},"_hasShrinkwrap":false,"devDependencies":{"chai":"^4.2.0","mocha":"^5.2.0","istanbul":"^0.4.5","coveralls":"^3.0.2","mocha-lcov-reporter":"^1.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ussd-builder_1.3.1_1716173516704_0.4724510629163259","host":"s3://npm-registry-packages"}},"1.3.2":{"name":"ussd-builder","version":"1.3.2","description":"Easily compose USSD menus using states, compatible with Africastalking, Hubtel, Emergent, Arkesel, SouthPawsl, Nalo and Beem Ussd API","main":"index.js","types":"index.d.ts","scripts":{"test":"mocha test","coverage":"istanbul cover node_modules/mocha/bin/_mocha test -- -R spec","coveralls":"istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js && rm -rf ./coverage"},"repository":{"type":"git","url":"git+https://github.com/harmonizerblinks/ussd-builder.git"},"keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl","beem","beem ussd"],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"homepage":"https://github.com/harmonizerblinks/ussd-builder","dependencies":{"async":"^2.6.1"},"devDependencies":{"chai":"^4.2.0","coveralls":"^3.0.2","istanbul":"^0.4.5","mocha":"^5.2.0","mocha-lcov-reporter":"^1.3.0"},"gitHead":"2dee356a8014ed72291a07c54432152fce2ebab8","_id":"ussd-builder@1.3.2","_nodeVersion":"16.20.0","_npmVersion":"8.19.4","dist":{"integrity":"sha512-Z672oVHlp8dN86hRamtV4W1nVcogdiy2QM+KgjexY5xBhmPwO/RbRtp9oYXC/2MZmExFCSpHTBFD8XyI4XO1YQ==","shasum":"f38325b98848bbd95102252c20d2dbfb8a5cdcfd","tarball":"https://registry.npmjs.org/ussd-builder/-/ussd-builder-1.3.2.tgz","fileCount":10,"unpackedSize":137068,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbvSG8OO7LrtyNaP0pgJIUrcptXBjtkprS6Ik/jS0EdQIgAieLZo+QftaiI98su+i+HSxY+IuPmKu0UyT42cXtvZI="}]},"_npmUser":{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"},"directories":{},"maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ussd-builder_1.3.2_1716997891052_0.8853080604327825"},"_hasShrinkwrap":false}},"time":{"created":"2021-07-23T06:09:30.986Z","modified":"2024-05-29T15:51:31.355Z","1.0.0":"2021-07-23T06:09:31.206Z","1.1.0":"2021-07-23T06:21:17.962Z","1.1.1":"2021-07-23T10:36:34.556Z","1.1.2":"2022-01-18T03:08:48.358Z","1.1.3":"2022-01-18T03:16:56.723Z","1.1.4":"2022-01-18T04:33:29.544Z","1.1.5":"2022-01-18T05:50:49.891Z","1.1.6":"2022-01-18T05:51:44.224Z","1.1.7":"2022-01-18T06:31:09.528Z","1.1.8":"2022-01-18T06:34:33.934Z","1.1.9":"2022-01-18T06:43:15.518Z","1.1.10":"2022-01-18T06:47:48.565Z","1.1.11":"2022-01-18T12:25:46.085Z","1.1.12":"2022-01-18T12:52:52.084Z","1.2.0":"2022-01-22T18:36:06.032Z","1.2.1":"2022-01-22T18:43:36.454Z","1.2.2":"2022-01-22T18:44:57.328Z","1.2.3":"2022-01-22T22:14:58.027Z","1.2.4":"2022-01-23T07:19:46.582Z","1.2.4-beta.0":"2022-01-23T09:55:19.768Z","1.2.4-beta.1":"2022-01-23T10:03:34.013Z","1.2.4-beta.2":"2022-01-23T10:24:58.769Z","1.2.5":"2022-01-23T10:58:58.118Z","1.3.0":"2024-05-20T01:18:20.780Z","1.3.1":"2024-05-20T02:51:56.849Z","1.3.2":"2024-05-29T15:51:31.192Z"},"maintainers":[{"name":"harmonizer","email":"HARMONIZERBLINKS@GMAIL.COM"}],"author":{"name":"Harmony Alabi","email":"harmonizerblinks@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/harmonizerblinks/ussd-builder.git"},"keywords":["ussd-builder","ussd-provider","ussd-gateway","ussd","africastalking","ussd-menu","hubtel","emergent","emergent ussd","interpay","nalo","arkesel","southpawsl","beem","beem ussd"],"license":"MIT","homepage":"https://github.com/harmonizerblinks/ussd-builder","bugs":{"url":"https://github.com/harmonizerblinks/ussd-builder/issues"},"readme":"# ussd-builder\n\n<!-- [![Build Status](https://travis-ci.org/harmonizerblinks/ussd-builder.svg?branch=master)](https://travis-ci.org/harmonizerblinks/ussd-builder)\n[![Coverage Status](https://coveralls.io/repos/github/harmonizerblinks/ussd-builder/badge.svg?branch=master)](https://coveralls.io/github/harmonizerblinks/ussd-builder?branch=master) -->\n\n\nEasily compose USSD menus in Node.js, compatible with\n[Africastalking API](https://africastalking.com), [Hubtel API](https://developers.hubtel.com/reference#ussd), [Emergent API](https://interpayafrica.com), [South Pawsl API](https://southpawsl.com), [Nalo API](https://www.nalosolutions.com/ussds-short-codes), [Arkesel API](https://arkesel.com/ussd) and [Beem API](https://docs.beem.africa/ussd/index.html).\n\n\n## Maintenence \n<!-- You can Donate to support plugin Maintenance using this link [Donate](https://paystack.com/pay/ussd-builder). -->\n\n- For Sponsorship Kindly send me a contact me on [Linkedin](https://www.linkedin.com/in/harmony-alabi).\n\n\n## Installation\n\n```\n$ npm install ussd-builder\n```\nor\n```\n$ yarn add ussd-builder\n```\n\n## Features\n- Use intuitive states to compose USSD menus\n- Makes it easier to build complex nested menus\n- Use simple input matching or regular expressions, custom asynchronous\nfunctions to resolve routes from one state to another\n- The state-based approach allows you to easily modularize complex menus\nin different files\n\n## Quick Example\n\n```javascript\nconst UssdMenu = require('ussd-builder');\nlet menu = new UssdMenu();\n\n// Define menu states\nmenu.startState({\n    run: () => {\n        // use menu.con() to send response without terminating session      \n        menu.con('Welcome. Choose option:' +\n            '\\n1. Show Balance' +\n            '\\n2. Buy Airtime');\n    },\n    // next object links to next state based on user input\n    next: {\n        '1': 'showBalance',\n        '2': 'buyAirtime'\n    }\n});\n\nmenu.state('showBalance', {\n    run: () => {\n        // fetch balance\n        fetchBalance(menu.args.phoneNumber).then((bal)=>{\n            // use menu.end() to send response and terminate session\n            menu.end('Your balance is GHC ' + bal);\n        });\n    }\n});\n\nmenu.state('buyAirtime', {\n    run: () => {\n        menu.con('Enter amount:');\n    },\n    next: {\n        // using regex to match user input to next state\n        '*\\\\d+': 'buyAirtime.amount'\n    }\n});\n\n// nesting states\nmenu.state('buyAirtime.amount', {\n    run: () => {\n        // use menu.val to access user input value\n        var amount = Number(menu.val);\n        buyAirtime(menu.args.phoneNumber, amount).then((res)=>{\n            menu.end('Airtime bought successfully.');\n        });\n    }\n});\n\n// Registering USSD handler with Express\n\napp.post('/ussd', (req, res)=>{\n    menu.run(req.body, ussdResult => {\n        res.send(ussdResult);\n    });\n});\n\n```\n\n# Guide\n## Introduction\nThe USSD Menu Builder uses a state machine to create a USSD menu. A state\nis created for each menu. Each state has a unique name and a set of rules\nused to link to other states based on the user input.\n\n### Creating a menu\nBefore you can create any states, you first need to create an instance of\nthe menu.\n\n```javascript\nconst UssdMenu = require('ussd-builder');\nconst menu = new UssdMenu();\n```\n\n### Running the menu\nThe **```menu.run(args, resultCallback)```** goes through the menu and finds\nthe appropriate state to run based on the user input.\n\nThe **```args```** object should contain the following keys coming from\nthe  [Africastalking API](https://africastalking.com):\n\n- **`sessionId`**: unique session ID that persists through the entire USSD session,\ncan be used to store temporary that may be retrieved from different states\nduring the session\n- **`serviceCode`**: the USSD code registered with your serviceCode\n- **`operator`**: the end user's phone Number\n- **`phoneNumber`**: the end user's phone Number\n- **`text`**: The raw USSD input. It has the following format ```1*2*4*1```:\na string containing the input at each hop, separated by the asterisk symbol (```*```).\nThis is parsed by the ```UssdMenu``` to find the appropriate state to run at each hop.\n\nAfter the matched state runs, the resultCallback is called with the response from the state.\n\n**`Note: `** *The menu also returns a promise that can be resolved if you need to do anything with the final response.\nfor example:*\n```javascript\nlet resp = await menu.run(args) // resultCallback is not necessarry if you intend to run the menu in an async function\n\n```\nHere's an example registering a handler with the [express](https://expressjs.com) framework:\n```javascript\n\napp.post('/ussd', (req, res) => {\n    let args = {\n        phoneNumber: req.body.phoneNumber,\n        sessionId: req.body.sessionId,\n        serviceCode: req.body.serviceCode,\n        Operator: req.body.networkCode || req.body.Operator,\n        text: req.body.text\n    };\n    menu.run(args, resMsg => {\n        res.send(resMsg);\n    });\n})\n\n```\n\nHandling menu.run response:\n```javascript\n\napp.post('/ussd', async (req, res) => {\n    let args = {\n        phoneNumber: req.body.phoneNumber,\n        sessionId: req.body.sessionId,\n        serviceCode: req.body.serviceCode,\n        Operator: req.body.networkCode || req.body.Operator,\n        text: req.body.text\n    };\n    let resMsg = await menu.run(args);\n    res.send(resMsg);\n})\n\n```\n\n## Defining states\n\nThe **`menu.state(name, options)`** method is used to define states. I takes the name of the state\nand an object with the following properites:\n- **`run`**: a function that's called when the state is resolved\n- **`next` (optional)**: an object that contains rules of how to match the input of this state\nto other states. *This is not required for final states*.\n- **`defaultNext` (optional)**: the name of the state to default to if the user\ninput could not be matched by the rules defined in the `next` object.\nIf not provided, the same state will be used as a fallback i.e. the same menu will\nbe displayed to the user.\n\nHere's an example:\n```javascript\nmenu.state('stateName', {\n    run: function(){\n        menu.con('Choose Option' +\n            '\\n1. Load Account' +\n            '\\n2. View Catalogue' +\n            '\\n3. Check Balance'\n        );\n    },\n    next: {\n        '1': 'loadAccount',\n        '2': 'catalogue',\n        '3': 'balance'\n    },\n    defaultNext: 'invalidOption'\n});\n```\n\n### The **`run`** function\nEach state defines it's own `run` method which is called when that\nstate is matched. This is where you should place the logic for a given\nstate.\n\n#### Retrieving user input\nUse **```menu.val```** property to access the current user input.\n\n#### Accessing ussd parameters\nYou can access the ussd parameters through the **```menu.args```** object.\nThis parameters should come from the API Gateway and are passed to the\n```menu.run``` method.\n\n#### Sending the response\nYou must use either (not both) of the two methods to send\na response to be displayed to the user:\n- **`menu.con(msg)`**: Sends the result to be displayed to the user without\nterminating the session i.e. the user can reply with further input.\n- **`menu.end(msg)`**: Sends the response to be displayed to the user and\nrequests the session to be terminated i.e. the user cannot provide further\ninput. **Note:** *This consequently makes the state a final state and therefore the\n```next``` object does not need to be defined*\n\nExample:\n\n```javascript\nmenu.state('thisState', {\n    run: function(){\n        let value = menu.val;\n        let session = getSession(menu.args.sessionId);\n        let phone = menu.args.phoneNumber;\n        let network = menu.args.network;\n        session.set('phone', phone);\n        session.set('phone', network);\n        session.set('value', value);\n        menu.end('You entered: ' + value);\n    }\n});\n```\n\n### The Start State\nThis is the first state or first menu to be displayed by the user.\nIt is created using the **```menu.startState(options)```**. It uses\nthe reserved name ```'__start__'```.\n\n``` javascript\nmenu.startState({\n    run: function(){\n        ...\n    }\n    next: {\n        ...\n    }\n});\n```\n\n***\n**Note**: the ```menu.state()``` and ```menu.startState()``` methods return\nthe same menu object instance for convenience.\n\n```javascript\nmenu.startState({\n    ...\n})\n.state('state1', {\n    ...\n})\n.state('state2', {\n    ...\n})\n```\n***\n\n### Matching States\nTo link states you use the ```next``` object to map user input to a state name.\nYou can match input directly by value or with a regular expression.\n\n#### Matching direct values\nSimply add the expected string value as a key in the next object.\n\n#### Matching with regular expressions\nBegin the key with an asterisk (**```*```**) to indicate that the key should\nbe treated like a regular expression e.g. ```'*\\\\[a-zA-Z]+'``` would match\nany input containing only lowercase or uppercase letters.\n\nRemember you can use ```menu.val``` in the matched state to retrieve the actual user input.\n\nExample:\n```javascript\nmenu.state('registration', {\n    run: function(){\n        menu.con('Enter your name');\n    },\n    next: {\n        '*[a-zA-Z]+': 'registration.name'\n    }\n});\n\nmenu.state('registration.name', {\n    run: function(){\n        let name = menu.val;\n        let session = getSession(menu.args.sessionId);\n        session.set('name', name);\n        menu.con('Enter your email');\n    },\n    next: {\n        '*\\\\w+@\\\\w+\\\\.\\\\w+': 'registration.email'\n    }\n});\n```\n\n#### Matching with empty rule on Start State\nIf the start state does not define a ```run``` method, you provide\nan empty string as key in ```next``` to redirect to another state.\n\n```javascript\nmenu.startState({\n    next: {\n        '': function(){\n            if(user){\n                return 'userMenu';\n            }\n            else {\n                return 'registerMenu';\n            }\n        }\n    }\n});\n```\n### Linking states\nBeside mapping user input directly to a state name, you can map it to\na function with returns a state name, synchronously with a simple\nreturn statement or asynchronously with a callback or a promise.\n\n#### Mapping to a direct state name\n```javascript\nmenu.state('thisState', {\n    ...\n    next: {\n        'input': 'nextState'\n    }\n})\n```\n\n#### Mapping to a synchronous function\n```javascript\nmenu.state('thisState', {\n    ...\n    next: {\n        'input': function(){\n            if(test){\n                return 'nextState';\n            } else {\n                return 'otherState';\n            }\n        }\n    }\n});\n```\n#### Mapping to an async function with callback\n```javascript\nmenu.state('thisState', {\n    ...\n    next: {\n        'input': function(callback){\n            runAsyncCode(function(err, res){\n                if(res){\n                    callback('nextState');\n                } else {\n                    callback('otherState');\n                }\n            })\n        }\n    }\n});\n```\n\n#### Mapping to an async function with promise\n```javascript\nmenu.state('thisState', {\n    ...\n    next: {\n        'input': function(){\n            return new Promise((resolve, reject) => {\n                resolve('nextState');\n            });\n        }\n    }\n});\n```\n\n### Jumping to different state\nYou can jump to a different state from the ```run``` function of one\nstate using the **```menu.go(stateName)```** method. This effectively\nbreaks the state chain (subsequent states will not be reachable) \nand is therefore only useful if jumping to a final state.\n\n```javascript\nmenu.state('thisState', {\n    run: function(){\n        menu.go('otherState');\n    }\n});\n\nmenu.state('otherState', {\n    run: function(){\n        menu.end('Thank you!');\n    }\n});\n```\n\nThe **```menu.goStart()```** method can be used to jump to the start state\nfrom within another state.\n\n## Nesting states\nThe library treats a USSD menu like a chain of interlinked states and therefore\nhas not internal concept of nesting. However you can achieve complex menus\nwith nested submenus by linking states appropriately. In addition you\ncould use a naming convention of your choice to make it clearer to see how\nstates are related. In these examples I used the following convention of \nseparating menu levels with a dot.\n\n## Sessions\nYou can store temporary user data that persists through an entire session.\nThe library provides a way for you to define your own custom session\nhandler so you're free to use whatever storage backend or driver you want.\nThe menu provides an easy interface to set and retrieve session data\nwithin states based on the implementation you provide.\n\n### Configuring handlers\n\nThe **`menu.sessionConfig(config)`** method is used to define your session\nhandler. It accepts an object with the implementations of the following\nmethods:\n\n- `start` [**`function(sessionId, callback)`**]: used to initialize a new\nsession, invoked internally by the `menu.run()` method before any state\nis called.\n- `end` [**`function(sessionId, callback)`**]: used to delete current session,\ninvoked internally by the `menu.end()` method.\n- `set` [**`function(sessionId, key, value, callback)`**]: used to store\na key-value pair in the current session, invoked internally by\n`menu.session.set()`.\n- `get` [**`function(sessionId, key, callback)`**]: used to retrieve a\nvalue from the current session by key, invoked internally by \n`menu.session.get()`.\n\n#### Example using local memory for storage\n\n```javascript\n\nlet sessions = {};\n\nlet menu = new UssdMenu();\nmenu.sessionConfig({\n    start: (sessionId, callback){\n        // initialize current session if it doesn't exist\n        // this is called by menu.run()\n        if(!(sessionId in sessions)) sessions[sessionId] = {};\n        callback();\n    },\n    end: (sessionId, callback){\n        // clear current session\n        // this is called by menu.end()\n        delete sessions[sessionId];\n        callback();\n    },\n    set: (sessionId, key, value, callback) => {\n        // store key-value pair in current session\n        sessions[sessionId][key] = value;\n        callback();\n    },\n    get: (sessionId, key, callback){\n        // retrieve value by key in current session\n        let value = sessions[sessionId][key];\n        callback(null, value);\n    }\n});\n\n```\n\n***\n**Note:** Instead of callbacks, you may also return promises from\nthose methods:\n```javascript\nmenu.sessionConfig({\n    ...\n    get: function(sessionId, key){\n        return new Promise((resolve, reject) => {\n            let value = sessions[sessionId][key];\n            resolve(value);\n        });\n    }\n})\n```\n\n\n### Setting and getting data from the current session\n\nAnd then to add and retrieve data inside states, use the\n`menu.session` object:\n\n```javascript\n\nmenu.state('someState', {\n    run: () => {\n        let firstName = menu.val;\n        menu.session.set('firstName', firstName)\n        .then( () => {\n            menu.con('Enter your last name');\n        })\n    }\n    ...\n})\n...\nmenu.state('otherState', {\n    run: () => {\n        menu.session.get('firstName')\n        .then( firstName => {\n            // do something with the value\n            console.log(firstName);\n            ...\n            menu.con('Next');\n        })\n    }\n})\n...\n```\n\n***\n**Note**: The `menu.session`'s methods also work with callbacks:\n```javascript\nmenu.session.set('key', 'value', (err) => {\n    menu.con('...');\n});\n\nmenu.session.get('key', (err, value) => {\n    console.log(value);\n    ...\n});\n```\n***\n\n***\n**Note**: It's not required to configure a session handler. You can\naccess your storage driver directly if you prefer. However if you\ndo configure a handler using the above method then you should provide\nimplementations for all the 4 methods as shown above..\n***\n\n## Errors\n\n`UssdMenu` instances emit an **`error` event** when an error occurs during the\nstate resolution process (e.g: **\"state not found\"** or **\"run function not defined\"**).\n\n```javascript\n\nmenu.startState({\n    ...\n    next: {\n        '1': 'nonExistentState'\n    }\n});\n\nmenu.on('error', (err) => {\n    // handle errors\n    console.log('Error', err);\n});\n\n\nargs.text = '1';\nmenu.run(args);\n\n```\n\nIn addition, errors passed to the callback of the session handler's methods or \nrejected by their promises will also trigger the `error` event for convenience\nso that you can handle your handle errors in one place.\n\n```javascript\n\nmenu.sessionConfig({\n    ...\n    get: (sessionId, key, callback){\n        callback(new Error('error'));\n    }\n});\n\nmenu.on('error', err => {\n    // handle errors\n    console.log(err);\n});\n\n...\n\nmenu.state('someState', {\n    run: () => {\n        menu.session.get('key').then(val => {\n            ...\n        });\n        // you don't have to catch the error here\n    }\n});\n\n```\n\n## Hubtel Support\n\nAs of version 1.0.0, ussd-builder has added support for Hubtel's USSD API by providing the `provider` option when creating the **UssdMenu** object. There are no changes to the way states are defined, and the HTTP request parameters sent by Hubtel are mapped as usual to `menu.args`, and the result of `menu.run` is mapped to the HTTP response object expected by Hubtel (`menu.con` returns a _Type: Respons & `menu.end` returns a Type: Release). The additional HTTP request parameters like ClientState, and Sequence are not used.\n\nThe key difference with Hubtel is that the service only sends the most recent response message, rather than the full route string. The library handles that using the Sessions feature, which requires that a SessionConfig is defined in order to store the session's full route. This is stored in the key `route`, so if you use that key in your application it could cause issues.\n\n\n### Example\n\n```javascript\nmenu = new UssdMenu({ provider: 'hubtel' });\n// Define Session Config & States normally\nmenu.sessionConfig({ ... });\nmenu.state('thisState', {\n    run: function(){\n        ...\n    });\n});\n\napp.post('/ussdHubtel', (req, res) => {\n    menu.run(req.body, resMsg => {\n        // resMsg would return an object like:\n        // { \"Type\": \"Response\", \"Message\": \"Some Response\" }\n        res.json(resMsg);\n    });\n})\n```\n\n\n## Emergent Support\n\nAs of version 1.1.1, ussd-builder has added support for Emergent's USSD API by providing the `provider` option when creating the **UssdMenu** object. There are no changes to the way states are defined, and the HTTP request parameters sent by Emergent are mapped as usual to `menu.args`, and the result of `menu.run` is mapped to the HTTP response object expected by Emergent (`menu.con` returns a _Type: Respons & `menu.end` returns a Type: Release). The additional HTTP request parameters like ClientState, and Sequence are not used.\n\nEmergent is same as Hubtel, the service only sends the most recent response message, rather than the full route string. The library handles that using the Sessions feature, which requires that a SessionConfig is defined in order to store the session's full route. This is stored in the key `route`, so if you use that key in your application it could cause issues.\n\n[Emergent Ussd Simulator](https://simussd.interpayafrica.com)\n\n### Example\n\n```javascript\nmenu = new UssdMenu({ provider: 'emergent' });\n// Define Session Config & States normally\nmenu.sessionConfig({ ... });\nmenu.state('thisState', {\n    run: function(){\n        ...\n    });\n});\n\napp.post('/ussdEmergent', (req, res) => {\n    menu.run(req.body, resMsg => {\n        // resMsg would return an object like:\n        // { \"Type\": \"Response\", \"Message\": \"Some Response\",  }\n        res.json(resMsg);\n    });\n})\n```\n\n\n## SouthPawsl Support\n\nAs of version 1.2.0, ussd-builder has added support for SouthPawsl's USSD API by providing the `provider` option when creating the **UssdMenu** object. There are no changes to the way states are defined, and the HTTP request parameters sent by SouthPawsl are mapped as usual to `menu.args`, and the result of `menu.run` is mapped to the HTTP response object expected by SouthPawsl (`menu.con` returns a State: CONTINUE & `menu.end` returns a State: END). The additional HTTP request parameters like ClientState, and Sequence are not used.\n\nThe key difference with SouthPawsl is that the service only sends the most recent response message, rather than the full route string. The library handles that using the Sessions feature, which requires that a SessionConfig is defined in order to store the session's full route. This is stored in the key `route`, so if you use that key in your application it could cause issues.\n\n\n### Example\n\n```javascript\nmenu = new UssdMenu({ provider: 'southpawsl' });\n// Define Session Config & States normally\nmenu.sessionConfig({ ... });\nmenu.state('thisState', {\n    run: function(){\n        ...\n    });\n});\n\napp.post('/ussdSouthpawsl', (req, res) => {\n    menu.run(req.body, resMsg => {\n        // resMsg would return an object like:\n        // { \"state\": \"CONTINUE\", \"message\": \"Some Response\" }\n        res.json(resMsg);\n    });\n})\n```\n\n\n## Nalo Support\n\nAs of version 1.1.2, ussd-builder has added support for Nalo Solutions USSD API by providing the `provider` option when creating the **UssdMenu** object. There are no changes to the way states are defined, and the HTTP request parameters sent by Nalo are mapped as usual to `menu.args`, and the result of `menu.run` is mapped to the HTTP response object expected by Nalo (`menu.con` returns a MSGTYPE: true & `menu.end` returns a MSGTYPE: false). The additional HTTP request parameters like ClientState, and Sequence are not used.\n\nNalo USSD API only sends the most recent response message, rather than the full route string. The library handles that using the Sessions feature, which requires that a SessionConfig is defined in order to store the session's full route. This is stored in the key `route`, so if you use that key in your application it could cause issues.\n\nFor more detail visit documentation at https://documenter.getpostman.com/view/3709759/SzYaVxgQ?version=latest\n\n### Example\n\n```javascript\nmenu = new UssdMenu({ provider: 'nalo' });\n// Define Session Config & States normally\nmenu.sessionConfig({ ... });\nmenu.state('thisState', {\n    run: function(){\n        ...\n    });\n});\n\napp.post('/ussdNalo', (req, res) => {\n    menu.run(req.body, resMsg => {\n        // resMsg would return an object like:\n        // { \"MSGTYPE\": \"true\", \"MSG\": \"Some Response\",  }\n        res.json(resMsg);\n    });\n})\n```\n\n\n## Arkesel Support\n\nAs of version 1.1.7, ussd-builder has added support for Arkesel USSD API by providing the `provider` option when creating the **UssdMenu** object. There are no changes to the way states are defined, and the HTTP request parameters sent by Arkesel are mapped as usual to `menu.args`, and the result of `menu.run` is mapped to the HTTP response object expected by Arkesel (`menu.con` returns a continueSession: true & `menu.end` returns a continueSession: false). The additional HTTP request parameters like ClientState, and Sequence are not used.\n\nArkesel USSD API only sends the most recent response message, rather than the full route string. The library handles that using the Sessions feature, which requires that a SessionConfig is defined in order to store the session's full route. This is stored in the key `route`, so if you use that key in your application it could cause issues.\n\nFor more detail visit documentation at https://developers.arkesel.com/#tag/Overview\n\n### Example\n\n```javascript\nmenu = new UssdMenu({ provider: 'arkesel' });\n// Define Session Config & States normally\nmenu.sessionConfig({ ... });\nmenu.state('thisState', {\n    run: function(){\n        ...\n    });\n});\n\napp.post('/ussdArkesel', (req, res) => {\n    menu.run(req.body, resMsg => {\n        // resMsg would return an object like:\n        // { \"continueSession\": \"true\", \"message\": \"Some Response\",  }\n        res.json(resMsg);\n    });\n})\n```\n\n\n## Beem Africa Support\n\nAs of version 1.1.7, ussd-builder has added support for Beem USSD API by providing the `provider` option when creating the **UssdMenu** object. There are no changes to the way states are defined, and the HTTP request parameters sent by Beem are mapped as usual to `menu.args`, and the result of `menu.run` is mapped to the HTTP response object expected by Beem (`menu.con` returns a command: continue & `menu.end` returns a command: terminate). The additional HTTP request parameters like request_id, and Sequence are not used.\n\nBeem USSD API only sends the most recent response message, rather than the full route string. The library handles that using the Sessions feature, which requires that a SessionConfig is defined in order to store the session's full route. This is stored in the key `route`, so if you use that key in your application it could cause issues.\n\nFor more detail visit documentation at https://docs.beem.africa/ussd/index.html\n\n### Example\n\n```javascript\nmenu = new UssdMenu({ provider: 'beem' });\n// Define Session Config & States normally\nmenu.sessionConfig({ ... });\nmenu.state('thisState', {\n    run: function(){\n        ...\n    });\n});\n\napp.post('/ussdBeemAfrica', (req, res) => {\n    menu.run(req.body, resMsg => {\n        // resMsg would return an object like:\n        // {\n        //     \"msisdn\": \"+233546467407\",\n        //     \"operator\": \"vodacom\",\n        //     \"command\": \"continue\",\n        //     \"payload\": {\n        //         \"request_id\": 84939983,\n        //         \"request\": \"Some Response\"\n        //     }\n        // }\n        res.json(resMsg);\n    });\n})\n```\n\n\n<!-- ### Donate to Support Pulgin\nYou Can Donate to support Plugin Maintenance using this link [Donate](https://paystack.com/pay/ussd-builder). -->\n","readmeFilename":"README.md"}