{"_id":"futurosenso-user-mysql","_rev":"31-b43cc367e9f21f30af239ea072878d64","name":"futurosenso-user-mysql","dist-tags":{"latest":"1.0.31"},"versions":{"1.0.0":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.0","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","login","user creation","session","hash","password","security","account management","util","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.0","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-CwxJqhM7uBDymjcNlP+lvgoKv4BvlRI5MYcQfvzGkY/4PbWDUSHKq8BI8CsXeCX+4A7bIOvc04oKjKHaeXF6Tg==","shasum":"54d21c626dec6b6c30d841dbcfad8bd5afcc7d44","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.0.tgz","fileCount":13,"unpackedSize":486038,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclnVuCRA9TVsSAnZWagAAh5cP/0eJKvoTeR5HQcr83gXd\nh6iUGCTMNmwWb0Igemtxfx6IpotXyCA+/vDvPxp1KwZ1FiIjsUAcNTAPfXYH\n9Ameib3T8a3bzg03ECAyQpyJhYg34wywe2KbfP4LF2V8nAxvSpoa+XoQr526\na9C/uom7Dk/cz1enuWWuRFMFs2K2A70evPpLOBtfO+bGmCZP1VAPCYGKs+7f\n9LP41kziIEkJRCC010+1l47Amwj1yGHdaJDqH2URo0JCCa2lKSYiQ4SSdANh\nSZmn9h/02cLC4q8nmPue2Ckl7R5SWbEf9Uhwfh0N/zlJpF5Z5ZvjGsZTeaJ7\nLpQoOVPhcLGZnWewTZ+TlPE3MV2SSD3ABwpi0UuLcCVN3dE5FRDpvZ5tXm7C\nshYZAckYm8EY+Ylou9M62KMEEGsyq2HjLoWcTxDtlKJc/SEYlcsSuahhylPp\nnk7lw4tIgwQbmwuQJ4PQzC71N3mhgFXL0Tp3l32y7mhnV4qYDfpgx3j3aMva\nlGPAVxD/YVwagClWApjg8WiMD8KEL7GzBEbR223w8emicI2S+qjFnT+H9xoR\n3NvhtoQIRYncf9/MaqBF/fcrmOyvUEHok6TO1NtCAdziunXpT1afqcK38PZr\nIGqNyTNpzxM3rQAZeHVYnJuZvafGlUpFc2ZSVaAC9JaSB1gA1lOwRcADHVNM\nQS3m\r\n=dwMI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICVeMxx6DcccbG8ORvL6o5JP5YXS51Iois0wEN5/4iYiAiAaygcxHPUkCEPh1QpX2LoHzWeKsUPX6IYJH1jM7o3nlg=="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.0_1553364333351_0.39840880339262474"},"_hasShrinkwrap":false},"1.0.1":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.1","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","login","user creation","session","hash","password","security","account management","util","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.1","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-p3lVEH6kkOVrdnfmpIeZo/04S+TUiGwRD0PlAwrWXUEjii18wmCIYZ4FXpEWFDndKdF4luG91GVzoY9XaOEwhw==","shasum":"0cc4b1a2fca50bb9ef2e4d91f439f5fa1c89839f","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.1.tgz","fileCount":13,"unpackedSize":486041,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclnnfCRA9TVsSAnZWagAAgoMP/1wq5kJHhnGIdPUueNP/\njVJHpcd/mEBWVBUWtD92cP0kXTSwP9UX/XStqO59mJAfTxto/enmsTwiSasL\nmK7XY4pioN/inAa14urXOi2+vhmSui5C4H7tRlFHccKye3OoW2ESMRuhQkOc\nOsO6WjPQEF+8BeY3xcLAhTf4LzE7A+gp7bvIrtSNTFPQ5c2ur0aHaBow69yq\n86ROBmR5zjxUVM1E0ZMtZlysh+ZCzWpDjPlk8ItapyYWQ4rjLyZP01VmbBUn\nAMXUwtQbjDjrGpFmmP8w7dRLGCUAvjpGj7YweOsrxdGdyMW1YTzylB76o4MR\n/MEf7odc10ZY0RobYTEf69BYKs9y2GQ6K++hHArLA024jDplG7j0j6VumGs0\nNk+msGd8liyCHUqJJ4kRQ5XhEZjRhyKDTfthOmnGoVNnTvKkT8LVrO/7JA94\nPSptxjC/2005pLgW+szfoxU2O+dlO3OAOQrIQWJiLLz8Y9kWF0p/azRGY+JJ\n7u58Y9AmEJCFjzcbDnOUFhX5X2vB2ISCQ8vebBJTHJgsn7T0p/dMKdNxBCBz\nbix1egsxYpI9WBeidqfDgdBUC7HaZct8TwKyz4srqO1U+dM7zG/GV4sY5rxd\nsfblT/V9JuHQ95WnFWCiCe75LTiN/okksWPqIcpCCgOFOyOWrQz6tbPl8Ywj\nnfL2\r\n=zd+J\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDG3rB7ELR1P7YEpKtCvWHNItQzg8dRK0R46HtzGwlVggIhALGa/chQgi3KrrMWRvDjQc6YoS/V//HpvpXqpXeaIU4w"}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.1_1553365470297_0.7366477674566161"},"_hasShrinkwrap":false},"1.0.2":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.2","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","login","user creation","session","hash","password","security","account management","util","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.2","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-+NnkYbGpVQ2Vy5wyDgwy0dl2gX5ZdOkibcRzgAAkKwV1TsTgyBIBo4su9B25fhO84H8rSWV6IEW/oFd5tJ3W3g==","shasum":"6ab5d72a5df8910f263363d68ebb80bf8f0ee74c","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.2.tgz","fileCount":5,"unpackedSize":114814,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclp/jCRA9TVsSAnZWagAAPIAP+QHQCRgDWp9lGfBPvtF9\n4uTqeYpxNEo4yqmmRRxwbF2GPpSVXt7A1JVcoydxiPG40gRdvHgjY39SvbSR\nWY2TfiakPInwctcuf4Lt3ZTJNQ03smKzMCieH91N2VDgrChtzHG5SrHhSoml\no8q10Ikej5EV+XOoDsq9XZtMSr4UPmK/ClBa9EgAItFBfrxLZKPgNUn/wqIy\n2fQyPaNeoQHkQUApsVqW/MqpQM1CbkB9UO14jCEAQHavCV8tWLi8GGEU3EHm\nDQGPexEnF/oSpCcbke6wMIFJ/L7o9x27WJ2rx6Gdl3+1MKHwUIbnom6gLb5U\nA7ZRawLXTYoMUPEEw0ScDylV10Rcw0D9JiXz4bGosTSC08Rts68412iWkSsl\nDpFybLheZzaPSXH7QI6WHVPlApkVzqUjfxNFU/FZnCQ5BomOc3DNmMxBIwer\n+G4fZ82THoU1EgGJWpGhMyix8MF+vpfNV4Kuy4r0IXS3rQ6ZA2GYf7IHfQsD\n4laMwuB2UClxmBL2UbRiCEdOtYHHloSYcX7pw3QdV1GDcqlI1IMxGKTSuOZI\nrB4trLmvpYyvc9/7sYhpF7AiZ6SZCpTWeVNhvRDcE+eJ0RUJvys9HsXwrVYw\nLs7G7kxhvV7HYYshn4RSlLE1hO7S9GFDPFFyvAMPmDUb3Btc5rrEAUX11piN\ndbIz\r\n=YWl3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICp4NwE6W0qulSyw+7gnt1eP1OaN4gtR1cnG269jcGo0AiBkIPetAa4Yqdq11jnAzx5eQ8baypfFK7JG9zpmUVYWAg=="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.2_1553375202537_0.9418767005248803"},"_hasShrinkwrap":false},"1.0.3":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.3","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.3","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-lcvwev1TnEaX0XmnLZtvUFmd61DUu/d6iLGMPq1vYIRKEvYEm4g9Vrh+l+2urr02Gew/9hzsKtpom48c9zBuqg==","shasum":"667caca76f5fd743dbc77e8c9214ee447264e095","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.3.tgz","fileCount":6,"unpackedSize":117818,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcl0C0CRA9TVsSAnZWagAATtcP/itd9f0djoSoXrr0nt6C\n2YAUs4opy2pZ07zKI/7a0gS9gQfd1IgZfaBBAbeh5yHeoVjbRX8nbkd4giSc\n9D8fStfmNClNODQ9+3vKvY6bsd4fIKN7wu26/ovjd4OktYyt0xQbMpPIGgKJ\nAtk8Pd9b1B1CAEWaaalnAR9cNbHA/hlCXoQPpp3d3fd9He37qtBAXSv7qfDo\nVWKwwHLr1kfC84juJYDbeJWt6xMK3zzM3ffaPnISJlgqvLjb5yQwiyUYFeDg\n8ELIu1SrGmgtqHuCeOniahvu1VwhHBGe9qne7nPFlr615KnZt9roFxKWVykz\nAP+Lp6iHCLy/MiyFWyrMuBzBm1FI39bgQW8nzxYygN7CfkHVw3ftdmjMsbZ3\n/cII8MSGUuChLj+DN/zDKIc1h1qy1ZLPD26wQUAggPZp8s3YV8DgNbqn4G4P\noa5a/Pct8rhxa2yD0TTcJplyBrucMX5F4TetaBKJCUwPCqRPK8An0MKiqu7d\neGCvbia3OaodrZv8s5ANiD25gqpaFPf9/edaVWQ/ewp1ksej295QydfmLkHe\nrL8biLSyNc2zvHuhcvOPP0jnymJ+Ha0WDAbSVnB/XB498SwItUcy424kk4Aj\nXd4TRHilGt/SxJlTj6Hnt8fDzPDvUNfFg1fCEvyWdyc37QoyfTX4Zm5E2y+p\n2LZ8\r\n=SfqJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCh5xYt8ps2dlZIJFmSDXxfz1FZh/bf329xJb+41y3ohAIhAIX3VkYqHX2HF/dCKNOUDcMb+eHY3KkVeLSejsU5tCzm"}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.3_1553416371638_0.9352323234485609"},"_hasShrinkwrap":false},"1.0.4":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.4","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.4","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-zMQaaDzEYMUUB/pPwTGw7azHHBnuCH1rYW2sovp5G2UtQk5kAl5Xg7R9yG2w1NsCoKl1yS6p23rMk8Oxzql44A==","shasum":"164497be97003357611f3b6146659acb845d35d6","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.4.tgz","fileCount":5,"unpackedSize":115175,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcl0DkCRA9TVsSAnZWagAA56UQAIKNXHQBlHja1f0y2UL+\nlPneB5Lzg5Ug8XjaHLx5KRJBv8/zrg9Ddf4usTY3sNubHNRGaiYwWq30fzbr\nUdgBorM/haoFiNRaxm86v516fdiWXEhqdeZQMuCJ+M1qj0UiB+8MbwPr3jQE\nzshNdyH3gL3Kt6nk6TbYRTrBRjpNcey9BlvE8liXNNhGC/2DWIKs5yONxL10\nswW4RhU5MDreeCcK943kSAFQLbPqw+2pJRAMWa1ldR/P3B7LXd8+Dbd989To\ntsXtnlsVg2zcvoLEX3uToaonzFrPMj8cXeOUwccN9GoeSkjZRDTJmfE3cC6H\n7U+bn+/efyVdOmgUW7b7LQ1B6Z2w0xJZ5z+sSqL3xI5EuLBEhOWqYs/nFQvr\nKQc8aq8d1hdnYFBU+i+IJBjLfhXZ6AEWWKjXk2dn68nrYXgjwTACAl8YWv1r\noZMV4u6Vkk1jRckcrHgZcrxQlkQd5NyqcTIYJ/Xxs42KHP//xH/yo55CGVcp\nFDP/wRc6CnAQKFjrLkfmUOXS8hRYKw/7sJOCu5swM9n1ne8Odh5MLJ1KM1Sy\n7DbWlXuSYH2tyWZU+iB/vTxS3G0B0Nse/MpE650XZ+A7jVT9+mut0rBhuEs+\n7JQDOfIG7MG4y8Wn2h397NF9amKR6riE10z+TLLwGRfRsdIVKJKDufMLVaMC\nlqgr\r\n=6SS0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDYhd4rcvsvnFxHchdEC5TF9u5fx9uWRItqt2Bp6VYxrAiBZIp1MIFVE7Vv0ED6/rTS52o9XeZnlvkdvpMuZgZG/og=="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.4_1553416420075_0.018120598532960885"},"_hasShrinkwrap":false},"1.0.5":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.5","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.5","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-P0a9/AKt9ime08X8/7TRvzHps+zxU+u05xwwsTGxYMYichIGfrFxqYY2XuCNqyfTAthy5I8pM+cfFFkq5/gt7w==","shasum":"2ee96470b4db67bd8fcf574439ab756e94253709","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.5.tgz","fileCount":5,"unpackedSize":115990,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcl/HgCRA9TVsSAnZWagAAtTcQAItTcf3hEq81Mdf7n5X6\noI7m6Joy98OcyOjQLsUq2+1Tc/ovV713+THkWIk6NG4zzNDvzOEs2mXd0p2E\n6adSlO0NMJuw0Mmb/RqIQxxSf93JmHYQkAR+WNo7MHe917Jd+d5+tDAwMXMb\nZPEhnDgz9DWTb2KxQUrPhSRbIHajeobmeuE+/Uwg0352rIFL3vKfvtLYaQmF\nN4/6YZLP43P3OS2AyPmpOMXkSaLRa06pQr6x27ejkMa6v52/gtd2byj1A/K0\noUkaW5zhTHvuCDZy6ErnnckTbinUU37WZa0hM2UUBTXKFkndP7zxLh8gJgsp\nE0K6QT6OecPqDFA7SwrS9ssgo8M8LoL0uU+4BxKNbxYnhJ/ltjAICVhb+kkJ\nq5IsiudoMaUu734YFEl/WHJvfY5NCsf5OI5TP0NyZOqSWVQPqAFRd4kGkcQm\noRPNqUfBLlBWR/6tGHLbqg+7VUQT4d6YU6SAZx9rP9a/VUYLON2cwUizQ0qZ\nLVpz+CFfx1RXfF81ceNw1TvontQDM01UTZga/4StOB5YqsmLTEPA9zHue2ij\nbbXgL5ZaghLoppup+2SmRAPBpd0io1Yns7cnr1HusyNptauZosdyQtJ6UrhS\n04R9e5KU4rI+frNyn+BNXkKVACA9kyHy92a78nilk/3RzYWnTh1Z4z/UFtAv\nFxL8\r\n=zHxZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC91ljWcrw8SwJyOiRKHGbwoRBfPDIGJBRwWj9z0cnbBAiBYAsbfVOC4GTuELOoR8t75ifdh30PdiXC5M9YVo3Tt/g=="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.5_1553461727884_0.8129185666030392"},"_hasShrinkwrap":false},"1.0.6":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.6","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.6","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-fTmr9i1c2KqdbMygmhYNGMtGpxyWWZOZ2DReF2ReNWKAQ6wH64WDF1hC12BTqFUkOfcz7GCSQmSAbZTM+rD2FQ==","shasum":"b23b5c8002ba45766be1dbd59043eef776d5128d","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.6.tgz","fileCount":5,"unpackedSize":120616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmPFXCRA9TVsSAnZWagAA66sP/3Rw56Ncs0WxxoF/bOcA\nwU23uP1tiQHyARzwuwHaIqParnnVy1xv70bKCZJYN5yZXFczn3xNF2CsKKJ+\nIR5hsa4J64FdC3Dd/xVZ6/CSbYYznaP4ICXpUBgjyKerWpN0GYhzfjBDEp5T\nPzHz0qV5VDvYMUgunTsx9DnwngDA6hdMl2MdBgHCejPNrCd6GxwGRv7RawrA\n9aQ/1ajAUJao1u/Q8R0HJWzeLTbtstNx2EPogOUHE9gq10RoF2iQU0DCo7rs\nmSfDfNvRuRy/X7Q5i0FJbTWa6dC++yo0zENKC8clcBGEnzuxdcwCS7d1lxCE\nVQjPgAnmG3RmZtqWBqmwTaroxRimJNZBnv1v4TAx3lN1gqgR5yBRIYmbRb4E\n34kwVqLMPOgxvqldFd6A5CER/lUv/7Tpx/4VhRmpOW3lQnKxN+2p7xNO62Eg\nLZ20q4FGUEl2lfvXjzi49elZ1kkyGDrzWE5JG9ASbVKXt/LsXf5ywmUqnrAi\nu30Tc6NvH5dowJ1VGWAMG1BSBWbkivO0pomZsOjPoYwbL6EEPkRNYYJ3BqKU\nKf4IAENDd49SvbBKjIPeTkiupzhtR7KQv7XtuwwbBTlN/fyxpB+HeSxdJWXM\n50iO4RJNU2M3bywoFKcY4xk+n5g7ttmn49grXikKXDlXcUs3cm1frbKQt3Cb\nd1C2\r\n=rvUc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYCRiYgVdHO7fQZIM7OSWOaIJ2hlMVEs69CGFpsD+QowIhAMBG6LLuZVMJzJ8EbsU18eCQHCWHa/AOnUzG4hOdayzq"}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.6_1553527127052_0.35384368023315527"},"_hasShrinkwrap":false},"1.0.7":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.7","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.7","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-YR94RAJxOWAA19ZylpuTVODgKmlUgisg1o6iIS4D25WTK0YVRXWXcBku3lm78xX0JowyE/g3HCBSXHzTLY0CUg==","shasum":"faf99211d3dc5082d09d72e8ed0eda8a19fdc5dd","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.7.tgz","fileCount":6,"unpackedSize":145542,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmVU1CRA9TVsSAnZWagAA+PMQAJlsSWQuZGx1P1nx1cQh\n2IdELc8fpID8H3nYYW5Q8LHqPJHEvgqYt57mDCp9uLzbn5Pq7TON1WyTGMe6\nBe5KKYGZ3jGQtABIXCV9Jqkg8pIjW75ctoOn+DaCl1XKVUG7PPbWxwt3R2oo\nY726hVyJ2IdCbTL2Vzyb2o0tT9SP5sBUn6snmUzvYbhEEjAbdt97vuAbQzVC\nzUp2P2NQRSrNbOHcHPI8dsGJ18i54Fbq0S/tD0UVXv5f22IEPk6EIrz+T+Ns\nqmpXzpVeygK43ywOhYVChCouk9OD/h4XlCn79+q2P4ta7r77Wg1C2lXG5bE9\nRveEEtvgTcFMdJziJMCbadVH53ueBe+Vs/f2i33cGZziyUJ+82UXqPKW9APz\n/VBeBPQrMgTsOFMemKXkzmCZATKQtA/n1eh0cKJImKzezuylmU3JmfoL9lQf\nwsGGf2/yrq2lpUW5r8B4nx9+qS9iRDoRV+gIGw5t7AoYKCqm7/y35IgdYYad\nyN/xdEEbuP3HVe+5px32zA6rEEuBuzt1aV1DM4GUfpMN+1ZKXQ9EjlWcUUJi\ngA/EDfmbdOVmCVOY+zGnD2O2qBeghc9/4r/x19YinF4ZjPY1bjiZOtaI8rQm\nhcMfOnzU83eGUyecu3mT+zLPq2DPTvocg2wa7diOOLzV5WVfjOnRo8EtcOQM\n+DDv\r\n=nazi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFmOAeQlu4qxAuKj+S0cLh3oKXx01l7B+VdpCTD91wtEAiAvE9pvApcwG/xJQp3za5u7BrzKUxxPrKq07zKtl85+8A=="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.7_1553552692082_0.8972058653034303"},"_hasShrinkwrap":false},"1.0.8":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.8","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.8","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-b3AzGGRV/L+mee71M0jfV3bvHPhphoKyZ51bPwEdZtvrAHqpPvx7tD89BelU2XIwE1oejxppIG42YNiUW7SJoQ==","shasum":"c86820230e9d3b763474bba1d2290778cb01337d","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.8.tgz","fileCount":6,"unpackedSize":145653,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmVfeCRA9TVsSAnZWagAA4w8QAJY5I/qV2RbTt2oeCeQA\nNLT6x8hw6CFBUnddVz+v/yMWnt4lWYULKycyBZVJBeLK04+YO9qOCaSGvDso\njS7sKjvElQNDEqtDswHha7MCXfyH/sNcBYku79fa7+VCjlqlGV0LER1uI4Cs\n/GE1QiwFIiKOui9yqJWMdA7+jUrH6xpXs6aPjTDamWDLNK7GoyfnaAb4JpNP\ndhdYcIQCUnbQXedUD0gdftkgdlpKDvs7bDsN+Cl32zUk7y6pT759UluGgj+2\n7FuxGsAiDMskIkLGcRwMY+xkqDXpHNp/FQJNr7NFRNQxGx78DD9dZ3cEX0q+\nkdXKt+shLUwDxNqhQU9jlAt7p92W3nhc+vrBn9/XLvtju0cKVUMpIkrP2C7K\n+G6+ryKImKnAwGQNqizpVo8dQTq3r5RR0nBS5zzD0oMknIESR0WlN60dgu8R\n2lV/1Dxr1etzCM7W/mJPLn439EciQFTIQkCPuH/zpP6uh1ZztTsVWpI4lcy3\naFkCkr9vIw6Y9mhSdgoTJS4gvgHofD5adGRb56jISjw4Qw7WHTHatcD2x0FZ\nnhLvIpkPnqX/LWLnuRgE203HYnvoSDDG4gY6PTaxJ9Fww2YCK9pDBVMalMIW\n/niBbqRObUO83TmdIUXYfeiLiGTiieRUsi0OsxrCPlrxqdoQ6dsKPINCQkij\nXRaW\r\n=6l6E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHv1MtoMkOIxK1sfKpUFgXGM2PgDYPUW6QIvNtHWlFnbAiAVcMFAByrYnr9ebgEgm4kyeDkfc/ajitZ2Vs9MayhZBw=="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.8_1553553373218_0.9485308408228166"},"_hasShrinkwrap":false},"1.0.9":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.9","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.9","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-HjsdwskgWdkyG7+TLpQOCmx/pKvltV0+9yWQNqLeJrs5CTpFru7phv6wpIgjRIj34IMkNX1sh1mQQYeOmQkAGg==","shasum":"4cbacf6ed37e7ef5e9d42474b3ee9462a8194c97","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.9.tgz","fileCount":6,"unpackedSize":156957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmVvVCRA9TVsSAnZWagAAkRkP/3VqQfi5RuWZPbap/OR9\n3gINnroBdU+B0oaoWZKF1vAnjROjX1wdALeA53ofEH8rb/OxbRjAUAtsrBw7\ntY2qY3YqxPb8wJEdYCEbXOd9tiWngEd2M4e65CNVRzpGmDVNt5KS2tinxLqh\nlSuXVF3RLQs1uhyhWjoz1BSr9HFZwVKHh1htI2wzgrUBBJtb+fMiIwvXpzcE\njbbsTSTw6JSvZ9Pmop7NkH1ZtdziV8qSIqYQ9iKLSAEzXvjDzWF3KLToZ+0R\nwd4JBIYHlABi4Gt+mO7LRGdlirVLfNdyQEmgwFj+zK+i1dSUE0pDHxoBLsja\nsR7UB9+HI6uGJCsji1FgROiQ2dc04V99pfhFDgq484TMX7bmAcIMvYgEnN13\n3VucuZzsqUHmvciq9kxgkwUJFkowci+4NciqHqLiYeypIRVgqynKM/M8KYOU\nYY4DIzkFhTA+xgjnXh1bz+SN1+EgpNEpuFFXIO7reivnIi7/vqtV7b5x6miv\nZBtarMSe3jvipPAAeEKIyqZK8DqA8bo8+oSrAh4EQL1Srw2HUIwdKMZL2/Xx\nJqVHu1V3bZIFQi9/UpQMlbQSBWeObvnUqmWdcN33DF7ysvGu+0AQP4AfKuYQ\nahYGIyRYmIAVhe+QMP3Mt0gtjWJ0Wk85JGVPH/Y8XaDFzLaXJ/nbihEWqY9y\nPwCo\r\n=GaBu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/MpnSncFo3IQO8HAtnGEyub0NMzamub8ltROOMxwvoQIhANTU3UOzrOIJEJt4ANzcltPrzDNQmZGy3HbDvkanMHgl"}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.9_1553554388343_0.7436843347220221"},"_hasShrinkwrap":false},"1.0.10":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.10","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.10","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-xpyoSDORsyimgMZNkwnfPhTj6N8+f7YYsG8dLGiPKlE/AYwlQ0kkgGIP7IEdAgY7EG3lFtFsfpz8ZTnl1UmY/A==","shasum":"df4fa10f44d6417d0c96da4383793e7230fa8418","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.10.tgz","fileCount":7,"unpackedSize":167779,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmpIoCRA9TVsSAnZWagAAEIcP/3FPmSfzeSjhWW95PJwj\nWS500JF1hLIGTH1isUmOvd8ITw4/uaP04oDnIMvZa+I3+1ky54IcjDSHZp2H\nKxKXgKD5bjvLmkZGOn6fcvLB+ngg//cBX6wzjookaE+Hq9zz2umgVM5Z1OTw\norXQ+J6KZTPklAb8n0hivU5alqOstjBwpsV9BbR/qtM/GRjdC2q9nvjq+hFZ\n1JJ0hLRnyMljLDTrLlfex1AQloCDMujXWaIXgEQr57Fx2FMddLX3RV6w7t7z\nU56HlhtFvh/rEzPunLqDpkLcWDhZM53zQHWjIXmnUySJctkFnmHqNQRzdEFt\nKYiZd8nOTfHdVgM6balaUakE3/FGg55GhGHAjbEhmTfhl9YEgxL48qNELFwi\ns+rKnA1iz+13pJlvKAT9ak1RrTgsKXzOT2XhwGVLsNRIhiTDnab6yu8KtVRH\nq48aMFSpCPkjOUbdPKR9+SXGtlZIF+cQTgi70nbHoU1B/eku8kqdudm5TxhW\nDcMk/ed3QQlrU0RAgQ59yO4ElP3FAEA8HMU+CGpFzVpk6ap/V7X82l5DSsvO\nPOkuNVLl4rF9iybJaVGwTJRnWFwjNCs0MZXVddRGKByzIMzyS3+9G3nTP5Lv\n4VULvMg/XEgJYIV9rdzIFRLoau04L0mMkT2Vc4tnp9AqJXNqeNYz+1WkMvGi\nac7e\r\n=FR+e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+gSz0ygBuznsMlkpd6hdR/jJZlr6/LePXsP6dSjGSOwIgRMSEoLJsYjI/LF2GMxv0CnpzfavVtDT3xRfWKMPmX+8="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.10_1553633831572_0.5755824129661888"},"_hasShrinkwrap":false},"1.0.11":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.11","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.11","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-41xOKyg9ImIDh53zlGBVU9jwIhkqNgvGjlYXtcJ+D9vnBSTgfyLKl/esSgjXLHiVM65Ye65kcR0v0bVM8qs3Kg==","shasum":"7ccb54ef65ea915be0a2776fda3286aa554f803b","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.11.tgz","fileCount":7,"unpackedSize":170434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmpMlCRA9TVsSAnZWagAAfzMQAJ50SDQ0E73WxV5VoZ/N\n6ZnbWnbpwSlihFloKBGAfu9fyCNvbCZr++uyXIUvjoReRQxLWvY+LgxvSCaX\nQQ+bRTeaQhttvV4zVqETRaRvWkXHNHjJ46yTyPJP1qYReZYs7xSxLe26xwxH\nvLMkMqDMBR/cdCnV6Xsxa68a+OaZmtxp3ixr1gN6+zwA/EYcDDWTJvL5TO7p\nJqErfys6N581qxg1x6kSmggPIOi0lbZSa9LeMHvJxroUHN5LQUNoS24ps1UG\n0kdPRjO/kR6hGmzt/rtt7UO9ge4cuOCY1AOE2YMdfv7WGCRbmTPbHNZbBDpI\nQvLRyk2rEyrhDGrhRxBtZ2unoTpp9blQ7VznTqG95mL57yDF4kRqjLMlrrKa\nVpNz6oQbekBkBGRpNy2BKonS8Cieavj0wPMPZYczTpRtWIv66AGFnPPpXZDf\naxBFzrBUMna9TfMyPQ1FEOzji3U2jea/f2I8fO96Nr5T52E9WOY1s0FS3Xcj\npOYjvYs/BC0Tkg+XzdiPPQ4lPwHlbKQUO/pM3X09mfhCoAQ4F4seplqGqCiF\nX2skjz038a/KcxGRnUSPlVmMXtRKqX8vdY1L4shy/elzJvf/lxODPDWEmqy8\n3+HfGmtzCxfVU75t9wO0ashWF0RdySELPXCw5ljiW8kcsjjrQQ3T/HxfoxJ/\nphG8\r\n=+BWc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmrvchtLLEmr6j+Fmi5TZDrp5A01dP+6vUPTqI8kdqmQIhAOuQ54iiHiOo+aXzVYdFbcgrbatNqZ/ha48dBPGI3W0Y"}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.11_1553634084329_0.23489985231189703"},"_hasShrinkwrap":false},"1.0.12":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.12","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.12","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-ycyfb7I1Ta7mix36ZkWhh6zyCNit/ZVB1oiY/tQngoaP4eGGw4hkMqAggCfAJUAI+VkIIEkZJ5P61Mi+rNN4Xw==","shasum":"b35bc8890c115e8fb916dc50b27be8ef1bd90e17","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.12.tgz","fileCount":7,"unpackedSize":170451,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmpSYCRA9TVsSAnZWagAABUkP/21D8bDfwwgSZ6Mnbg5R\nCni8nqdZCkpglMvK6QtQM6PitBd0FXXqVODVEpqmhexTxn66iqMEA1c8Zdw+\n1iG9InYWvkkFEGVQX4o202B2f/d+BGvOlLuTVRAzmcRogTGFzN4cYP5pqG8k\nHXfAIR7uxDl99ppUWq++Hp3NQjCeyKnupBWk1kXTImt8p5qWFAaT9eFHDnPg\nFTBcqe4mXSIFMMU7XshCYHxGnnTHIxgMgK+47RwJ9uJAQgVCklkF8KMSpW9m\nRvJ9NXbNuex9jXQ8eXCevuOYl3o6WPGw63zjaEqipIxhr2URpEUESF3Epfza\nz+fx6npXNvjOlH2/uLMeS5fBaoF5yjvkH6Q0u8PcVdFXblHiIVMtKXuD5mCw\n6EE1OcmQRPXu/W1CPBYIYG6Ym13bCgfutN6UO5UG6e3LL/AevJXPWTa0+/S4\nfP4Fv4SYH/QydjVYEJzJZ6OoMx468ygT/tRkzfzXPRrhZC+8Xo++5L8qVyMH\nLwPNlruOvYH/mo6Ymmbm0fiR7kJiY/si03Kj3zG+J6RBcPz/hBhrhXtD47iF\nc0NO7LZ0jbNYUpDBM7tiaIcq8N+6tyTf6GjiM5xkT63xpKiQHspLp5mCblkF\ngzAN6uusH3bGjJhpP8W+3zWTRZN1GnC2oDm6jciqoxsj16pMHVAa1kn2zRvY\nxgLL\r\n=GxpF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXV0uLWblFtrMD5fxmN+E98VES61MP0bwrclC2c9LSrwIgay2aTirsHIE7l0LHsjSYX9AmiJnkc0KwLjGY6r0Z6zM="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.12_1553634455958_0.7150628273875987"},"_hasShrinkwrap":false},"1.0.14":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.14","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.14","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-1K1Jik3tQ5Mg8O0grChuwXGWhrStTTM2vez0q62bwkXcl0PETEI94NavZ4w+BLd58SR6MPXZoeTirRIVv3702g==","shasum":"338a0eb56f3af225699ab65fb727e58f464546af","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.14.tgz","fileCount":7,"unpackedSize":173244,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmpbvCRA9TVsSAnZWagAAdcgP/0gzkKKkSnueDb+T2LRK\nM4Qw0AQRWIPdMnvwiFp25RO9l3rq9WBEtHT6dUr956Y/DtPlAZhm1gO0uxaH\nwNFhvxtaDfbMjNqndjDSu1ojok3WFjZWeLiz+sYY/5DfofVjPdRMM6UVX+m0\n3/epAX0Skxsn3mBP5YLf4vFVCRWsoEhWiAPzFjr/guZ3Hl1jPLvb10tbbaae\nIugneprZ9UxkzB0KEO+RkI3EaUKD6RIPbmRa3XqNTyNMkk7jw1Rc0+9Xm23I\nyT/dHywGTRycbo58UIuGDbutyhGpI7gZo27IXEeOXG/omZGiNZGgzvTHOLue\nMNaJDa4PBhRb5X/Fry3TL0N0+CtMysTGtzM8gb3/4lzc95IQwW9Mf2sKONT8\n1vqlsbvO88nxOyeltPXAa0Otr6CcWZKVyKsVK47+4O493Ry3ubGN2dgthub1\n/kOisQMwZr7sjZnVIqJbJ+/m8s8eNvkLMwQEE3ASZ+eLWi+DQcLimelCmXcI\nsb1NhbyQP10sJh9yh5pPBJeRgWDEyZciI29NQ0XbYov8Gl75AUeTNEEQFQOa\nzv8Wh5lzBbg/GE6QAhDXd/fYA6/LyE7Lq2rC7lu5T0tfVJZwB3R0/TRp3xy3\nnTAdpSefzN/c8Gx49WwRuHzDQPnyYRBK+o+JbrWOt8oTw9K7aVJteFPEjaga\n0FzH\r\n=6Uyh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVi2cMIuJDjYBo4xTjf87EnAahsZH9hRrbDsNvW9H9LgIgU6BpRHno8RreLsYyujwKoIpVBy0Fdwxq3NiZ+ZFU4cU="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.14_1553635055030_0.7099858462042037"},"_hasShrinkwrap":false},"1.0.15":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.15","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.15","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Kva2Hibx5nO/2YHaEdBhhhHaJzk7YB5aQ0QEsLz1r6HPFA9IO9mLc95OX2VPVGDIVCTFckBeiRvJLLGFptqsQg==","shasum":"fa0809eb798a307043ce68462d71f798620a34a7","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.15.tgz","fileCount":7,"unpackedSize":175886,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmraFCRA9TVsSAnZWagAA/ekP+wQS8vvsWMTEgVgnL+rV\n2QQZonNFj6R2xU9UnfbLaxKuteUzFBk9UfzoGnn3abvh6EsCERUDCoeHN9xq\nasI4W/S8kz8RzYEp1sEcXBTLuRkiiKuKmUFwyi+yaXe2iy/W/3nNcegazg2F\nu/cYvprc/kXN/ZgUSmWsSh6jR+VkNLoIlHOAoMEzX2j6U4KLrSBOEikeHAA1\n4QphFavgeYRhMCcZSW4yAFei7E3im/HTSjSKy8EeNFiS/6fLjIh7NQUUoWld\nSaHinuvDQz1/WDwp2vRueTt7tL8qw7yF6+u3KeLIC9E9aH3crvvjwkwjY9G2\nIz1b6y4Af9Hxqagd6dMm5Suhg58CtjCX38EfAi7CCiSFMMRx5B4acB/Agf0B\nwvxzRkWWmNKFPzCYWFUNCGFcv/jyWTzDNvg0PiVaL69VrKLySX0QzwirxHO0\nREOsfVX8wi3hDZCBt3Zdw5h3tdzJ71RWJmfUeyX2oUXaSAAeeyw+h8qGx3Ca\nTV4VFV9bmbXEjYG5XiZb/UHHgUy36/Nw4U9YZsL9um1BWUDAhabm8xnh1zP5\nulUl7tw8EmqaJi917+ZslvAAeDwxApVrkS49EmzK2FJoVM0mSfHqGzrD4CKM\nokNv83VX2Io8bKE+utn2i7szK6cYlE3/g3xsI2TEJK6ERwCQgqUzzZWJaFlz\nCb+V\r\n=d2ik\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC6V51xP5rwPc8H35o1uGF+Y/4SPZMXuRKsn5CSXNoHgAiEAmwL3uBAStLPVtE3g73HJlBG8AEhsY/uSx6jPG5aOnPQ="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.15_1553643140275_0.7566870392564993"},"_hasShrinkwrap":false},"1.0.16":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.16","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.1.2","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.16","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-P31334l57qpkXGZ7Ie6IOUAkJs18XGElrYd8fdHGBmIgaSE46nEcHlRU9HT8xgYax6xkh9B2GGgAfFtZUL5Jxg==","shasum":"b88b7653c4048d2a38ea31d59addce11ab8defc5","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.16.tgz","fileCount":8,"unpackedSize":236637,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnAQGCRA9TVsSAnZWagAA5A4P/ji4MCQ0Sz2IwfekRaAm\ngKK73/V3yYK2axbL4/eoOnZlgjqPfS7MymVLZkPd8amHExcOLBdZDVa4a4Q6\nArVpPaUInXHQ7Sdd46wd8slAWrOiHlX6J3qOrs9UMz4ZDmugwYlyT36sYR28\nBXd6I3cb/fdlNJrTvYC0mnjB6dFvfypIoQX+JyTA38LISANNRpbX+CYaRVq8\nrczPJ9q6jb5K8Xlm/HaV8KkAbuAen9e2Kq33MNb9oKyH4iltK4re3Wr5K4iR\nwlfxALDxV+Ykdift4dPOJi6KHVQM57+EiBGK2nS3Gd7qkoscOtTzlsc/3yLu\nQXzDilXMiEsiwZFUqRsyaXujnXzcza5IfrFPDG6SSnW6OS4O2eanKKBOUmbY\nNS6rZ2izweARy5COhuX9JUm2506w2nzNfJrSIbFn0C9HTZJtgMutv633X3gX\naRzXc5AHjzOh5X8cs1l3xgHGSGXknO+IwhZ957trKhn7diyeQXVRotNnMJHv\nCLgFX5cqHwFWuUL2p6OXR4J8KIFcN13mlZRgCK+uzi3AFjF6vR77m0b5yy1a\necnOtq4X9+sdWa6LXBZhW+L+AY4Cbr4JkBuTKTE2rBD0KH9hK756+60jTt+x\n7i+SMOIk00n2A+h9aH056vA94EUqBNdpEyH/Ri9Ni3bfs0picp81xnNDeaRl\n4SVB\r\n=78Q0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBZdmsdiMeaxtc0ZO4xCBSGzXRWkBJn0iAFJ8IgJ49G0AiEA0XQqyzpZL5ZEFcXMSM49g7hPlGgALN8Y6rT76fLZrcA="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.16_1553728517744_0.6092295225109761"},"_hasShrinkwrap":false},"1.0.17":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.17","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.17","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Bv/giumEGNAn9JB0cAf+uZW4eTPAFaoTlH08TpU/CDFvgEUL+bf1HDW+ILcbL5Y4J1xXOYZ+36yVM46bR9LH/Q==","shasum":"49f2115a9ef9bc594f7e652069041d44857e0a23","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.17.tgz","fileCount":9,"unpackedSize":250968,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnRW6CRA9TVsSAnZWagAAK5YP/Azi1C3Dst0nupUCuJVg\nI9G1QJOJEAaGGxEa+8iid1bsJXqs5Ivkd38q5T9c3lGPi1zCifaGWydGdb9g\nzx8Vkz9aKy6DBdPtzRJDrwHmE/3+gI0yvt5oNm3eecYGLAxXfSxgKjsFZouW\n97SyG1JEMR7LS92c3pi/1GZaAJ9uYkPstHmVvFDvh2XRFyMexsfxdemnja4L\nLoqgUWy/WS3FN57/ZrN7AuVRTH6XTp2mHAnTtSSG5bY/772qJXjvUsFXTmIs\naCdmpAU3xva6em7XPwGgYMjVUUenpvqXFyeJg42SAH/Y7rhELaSddg42sAZv\nOusxvQNQUhcEILCOrLI89HoSNuUij+6q7krTOJ9K1CVbNIfSMViSRyQ5Am2o\noq8rpABwMuMgnxJW2kjyTHj28ykKer0VqgkTVh0YZIjDD84OyynH1sGNQTO7\n6JvKLypRC6t/0GWZFXph1g91YEUTK/gqUZDx80Tg6dhSxVoacjQPyXa2NZ8K\nk+uiKu16evxO8Q2+Yxdgiy7MX/aWR1T39HO2+ghrF5hCK69FcBLsS7ucJNqk\nVdLMDDAnPhEHaeg+T81qjvWJ13h0lyOS63l9V3/oj8zyerXbIBeekYtiozjr\nIe9qMzZjl48Z8khUirtW7RRtWkPKBok+nfzVMUWrEyIbRN2Tl75NJlfIr/73\nTW0Z\r\n=8ibo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzqBMB6qhLvb/6uQMikZDQBB/odTatXV76KrsXloLCeQIgKzSgyT/4MmbyjxISRJQ2L/2hmAU2er0qCi8xZz+TzgQ="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.17_1553798585311_0.6272113516409383"},"_hasShrinkwrap":false},"1.0.18":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.18","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.18","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-KIgQL1elah7Q6nMLtG8DhuztvEob7U6DWdzSEoHw30e59d8wnwhm1D3SlW/WgnohsrmVvLCy3dt5FNmWDJXnhA==","shasum":"c6c6097799bf4943069752538d4f8413f387021f","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.18.tgz","fileCount":9,"unpackedSize":250983,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnRt6CRA9TVsSAnZWagAALokP/1wQEr9KQ2kTmcB0QQbv\nZy8Cocf+7WHN9Bteb28R3+pcSRS7cg+KgsIQ4PvpjjmYN8LUwzq2D1dnb27q\nonTOMeyqqoIY9hWiRhmApkBjXLs+oMw84xJ3kCoC78VFcattiPM/b6I/1P2Z\nmOxgvkPMgmoez+CUlEjyjmjcBqN5svIVB3aqpDWlOB2j/mlt9ZqjcFQB+//O\nVbfA95EHjQkE8Dp2saurh4XfTk4UPQM5KE0fopBp7+DUVV5VaRXAhksZU+UF\nRLWFcNjPUiK6XC476iYP8SD4jpidbOF2gpnsV9sLgvqX77oRtV2vD/XZYYZP\nqio1wmYRiZ7mqbOqgPdjvgpjZUpP3KL8WOqy91kAzclePGGtgIvirokwk8IY\nR98c5rqN2OKcGzGWieNxOhdKGtv7h6pmki7jaAzMZe4YFbww4dEAOylDsRWM\npnjHEBdYLkGFP9UPTkBv6+BELXQmkFXSx6CssgFHFqLJ1jEShLGYIV2fGm61\nqK0cyU7Tyd4LPPM/I3iDW+e07KQCCynXQyJRO/f5axQj0Jw1BudrZHMDLWIm\nHOUYb7wIBT1b9WjIL36A55sjX9pbPKtGBWR/kselx3nJP51eFgdWmzeY4o/y\nAwE1/NOZvDiyPIzdkN9TtH0FD1hqYFLSpP30pi8eXxfb2kdGMUeUDoxTC8Sm\ns3VP\r\n=MFFJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhLSXFQcqm7sI8lDa2wynt0Yc/vmSILEMhFeMjZhUdZwIgB3luCBhyj8REo7bOpgJtYbPFQlrdS6IMyKWbtgg9F+Y="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.18_1553800057558_0.39662281390988774"},"_hasShrinkwrap":false},"1.0.19":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.19","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.19","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-n1C+PBNP+vmyz6+HzG5iQ5Ust52s2lTXS5TOBnvwcxC0nUjy5PQ0el+xGvAZpgcjdb0DHW6XzyILL5P171To1g==","shasum":"5daa5b83cddacf83613cbeef36db8ca32cf705a4","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.19.tgz","fileCount":10,"unpackedSize":313295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcninKCRA9TVsSAnZWagAAOmsP/RRhTwtPGOezT9rGphSc\nXulRukJ23KlKi87ZIVszrpw+MToML9G7R+GM6N1YZEQkyNZ+yGOPVmnv/n4s\nmHHAjgPkilvFnn6y+t7662VOYNIRooXGhFhzxk7l67cDxUyTUASk5ivsjEr7\n2FsWfhueWf4dTmSHGxmRVyqbgOqJaLEdtsMf6fVbBr1XJqib57QjZL01E1eH\numUSE/cC9R+D5W7fnJ3EaXm0aW2Lg3QCl6OPSuIOex74MBbfJYOnitzUTKA1\n8hXmALYckNyvWgjfZZE10dQg31wpL7RMBwsnZlSi6q/pQoUBgorRa4ISSt54\nMIelsC5htkV5K6eTEx9NkeLEoVTyIne1wruC5xmJhA3WRNxImEqds3yQryL/\noDnAKu1K8F9QBd+I+PQ9J6gsWL8ay0nJpB7z+m/v0x03dZ0QrtOWKIFayduq\ngBtTSNOWwBGz5LEXjpArtwcPnPAHyDEEnjlyhj04BegK1VW16As6RBdVf7hF\nZPdKOEtd3HBBUZ+FEHwba/Hb6Eh4SQFDDBQ4zteMgUn+VZp+QNVmWw6S9iSk\nJQxQ3V6Npej08QOi06aUBCOBEcVHiY7vgRIk/qKsfMOSer+VLgyPLBLWQ8dS\nUzgU3GqarH7AWPnVuu4sDKBHI7qFjzdybNloJkRomOA0uSakrz7bRGpOuKOq\nOoA3\r\n=nOQU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBobyJ8mnQQYHs6gwG4ow9WSj9Cpf+SNUPZzmt1ww3AfAiEA7eeR2rLpTzy8MTL8/XZW6IfojqZtwnyXPglx4yO+Yt4="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.19_1553869257700_0.9377518899939115"},"_hasShrinkwrap":false},"1.0.20":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.20","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.20","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-PfaAfHaipDanghXzUdP+Ck2dWS4Zr/y8TnOZX2jujzY++eGO6djbBS6lgORaa8wZo0jOspRGJTxIRZ9Kb437NA==","shasum":"c40338ed25bab9b94e6f381acadb81bdfd00012f","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.20.tgz","fileCount":5,"unpackedSize":123501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnin+CRA9TVsSAnZWagAA+VkP/1L/RVYG8ndvHNIH/DCT\naM72sRQhDu9XvhxzGT14gZSJJyskBusjqvDkHwcoRQ5j52pb6lhBrCWH7cby\noZkyAbRGCCKMUVsXbgbzngZ/wL231/BYplU9ZDPjRnWplLeDEGdZFCoTBCcW\n/mA9t5CD+8r5QVO5urOUE/hMXpMBqwENJKOZ45jBZDlzInZK74WYzCFAcyt4\nT7tETwVLBhDkZ19c1PBl34WflbsyT/udAgwovfhr+FIaG9Ma6rWp1YruLARA\nk8KjeDt7sZp5/5p5XVIQ2CRstNyG2W6vZcQ4IX2PRUMgDhlFqM0u8MMgiAU3\n4Fb8FGs7yDwjF4bm27SmDHNQwcrQG3UbuUClWjuYrmPnUsMBRJXG06ZFGKF1\n00r28wAHW/Mua8aJbHH8FVIixOnofltj1n5bq5h4NqOdEhWfZ/CTJBVWg+J1\nhuYPqdVy9+YLoNYEM6wWThf079B8nJTD4dbl6l0LSpGTybObfi6j5bEsMjhD\nQ4D2gtXfpQh0XmQDKzIvYbMLpKS32EdGAUhUzZKwXBa4D2BNOCoXEEvI5iua\n2wuojK3TQOI5dvWcLK3ItWfWKCtr2cEPzRV6WlCq10M84BslPzKJWhh7N7FM\nGhQPy5S4wjC/TsaqNv99PaRuKv/1HEzF8l+/7B9bhWZ+MMima0VLxgvBvI8D\n3PK9\r\n=TqyF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTZNZbEurxqWlb1gQw8uutukWT+2Gxw1/cxr4uvufdFgIgcQPvx88an3EeAXahnJjpWmWeh4VbY+WNvBLFS+teTfg="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.20_1553869309144_0.43093384026855985"},"_hasShrinkwrap":false},"1.0.21":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.21","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.21","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-5D5skHk2lhgOjv0VU65EobsqttGxBTFDtNRjtzEaQMHNX/dKX1cEx+K1Cz6Js3JzfRk53ArB/JTpu7olX1cxNw==","shasum":"639c3718b73e0e26b6a11332d83160336ca41ed9","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.21.tgz","fileCount":5,"unpackedSize":123502,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcniygCRA9TVsSAnZWagAAldIQAIgwiR12PX6Hj8yDtYKH\nHAgdEyYv0BtIdXBavo17Tm61qeA3upmCSHZ9abBRnv09djZcq/4Avb+YAO+N\nrxdzECW5VMUJ5A6kwGlfvAJKg64jX42G5KfdAirVIWb6WPaHe0kxgMBCZTcg\nbbjnsqoWgWybNSebE30JfEATh0zSTf241HmN99A/eR1jrEiyEWvr6kWUUQsa\n63ZqL87Bqhb3Fd9aa9vlRx17R5eBqquS0urvJAe6UeESA/vxiUQkGVvZk33E\namyDXsGWfHv7H/IfeJv47gXnJITKV9Xmj+YaNGh8DcIL/Aj/AuAd0Zmupz+g\nzMVafIbZPch0oEXLXIOgb1pVWSSzQz3hHtxJ4qNgsGV9jmRuHZkvFswvTeqc\nOyCKQMJvV1UagtzeoOK/JjIsF9UxcSBlenBX79+c5Q5tdtHVyTla7+LBnmoG\n+JGFTD1uWa/FIruBn2ivtGEtqgMcxDCrHkIudBT/eR3n9iv9V0+NZN4hX9o3\nWTiJiv8Vxv4UARhVx5weQsRBustNyQNs6DnuZVzUpndc/iUf+IGDB+q+BJ9q\nthK68BKPkxETzSFWiwM2Mc+zLXxEO3kzd5L0e0ZQoS3r476fB7Vvg6mg+E+Y\nGl2s1+jg0kwoy5/Nu10WSO/jNvhbKTnXSTg6XW0tcAMjF+w1hDfrFdgIa/Iz\nVMgX\r\n=kNBt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICMT1xRbbQNj0XGdtbni6Sd7nY9CrA/YBcJB7Us351GKAiBdqgQuFMxa5QS5klyw94tXxi3ROtJkzUMMUrxlNz6bWQ=="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.21_1553869983890_0.8686622064830758"},"_hasShrinkwrap":false},"1.0.22":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.22","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","authentication","forgot password","password reset","login","user creation","session","user account","hash","password","password encryption","security","account management","util","backend","mysql","database","json","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.22","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-schj2ZegtlWMeVQ/yRKlRqUSFhYIPfes9WdVUvH4JoWEg0+biaKCOtS/p27B0vcDkZx63oGbT1paTpod4FnAww==","shasum":"8cf00b602c881b450f48a38b179fd65ca5d680c4","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.22.tgz","fileCount":5,"unpackedSize":123523,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcnlapCRA9TVsSAnZWagAAvtUP/RnuOTpfvKUSqLsFiR1k\nDYyvlWi+xxO0ukcuyBZZVAqd03dtFdeWFIP2787V351EcWwoUS8MJzl1WR+Q\nubYB7RkMimXmBIpWC6Q7LGesvtKo2Da+7rL8TLQDa8bEuruoq0KqnWByxuLP\nlTUILwPCJ83u/XNWtrQBhZQ+wI/jXImzTD5MlWuOtQ440pKFF4ue3N8ZTBNv\nvkkUnLN+2lnT23UopbOupk+BQUEvRFx5/85noSrJdKzOV7zaZ9bz0XORC5ea\nlgus6aEIDfYH/XR2+6otTjKaJoB/tJSGrgrvQoaYvouRuJMjvXKxLqbsaaM4\nY81bqkW0Ble86xazqFaSJ8+5nK7szRBNyP1snqfICWMziukaKMQKIK4vR3+D\ng0GBhTnZwfz9npCdIxlHyO+BO6gXur0tT2+5MiQxKlQABLUmsTb5yBbY/nTk\nfCRaICbapDyevGCrNHBlLtOhCeiw9rQwjLADGeKGrGdID/lm9qNEQENDeiTi\nTV03AIffwUr9p1S/A2/VqfWrPHF9cW0gHrVI9P8RUyF8lqH3m2vUI7PCMw4q\nv9KQDNt4bjJeo4mpU2Ld3Oq23Qqkld+Z7PSAdY4DaUFmwCbFCSJIwSsfSxbb\nWsHH/VEcp2U3izkWCumNgVgTXXYHrSkEjenHRBD6yg34II6YbVWLX07LRpo7\nwg5s\r\n=nZwg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3eS8BMR74dsYerq5n4y4i1LRAjunc4C3ZBroNvI3dWgIhAKx6ppGtNGDlSQzzCgsv28L+piUmPmomhwOMwvGdo3aU"}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.22_1553880744892_0.9475262132502478"},"_hasShrinkwrap":false},"1.0.23":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.23","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","account","login","account management","mysql","json","authentication","forgot password","password reset","user creation","session","hash","password","password encryption","security","util","backend","database","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.23","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-RzlK1b07qpk3bkGcUVFyD1Hu9IkCIZz51gATBS8M6bSVuvzIRifVKN8XiW7Y/3+lrsYGMFLa/x84bmXAO5kQDg==","shasum":"1a3c5610f8c68f72b8c8ca2d7f555d6aec3b9185","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.23.tgz","fileCount":6,"unpackedSize":143345,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcn33oCRA9TVsSAnZWagAAuHcP/2dFL8ZsuF6ll3D8/DGY\nkfnqicsdqjQamzk/AIxib6NTVyFjf3U44XYgFi0TG6O05lwiCSqh0Fx+F3a0\ndAy6GswN7eJHVbZemyDOLB2a3d8xzAYwl+5D0XRU3Zut0NOXvkwsfdjCIcV0\nQPw0NFiB7/3uT2cTul4CQnmaH63r4FOkEuhIg+DdFrKro+dBoQX5TToNQfNA\n6LoLZzJ+hQYnAbNz8phICP2bzElcOr7FrIQwny/VNOq5HAlNUWVFsJG1ZwZQ\n+RxX4mMlCxO3qHeveGKAsg+oVE/EN2Qr2KusmZ32+mW0431tzE+GxQjjzpGM\nWAYL6naxutgpnJzv9pmAk6wFhn0BEhiWfVgalXYQF4jjnzXwjvorvnEqTftI\nOTzHOLi71XfHqVK2x6FBJX50UWCUT4QggeN6uGAh3ergANY5AV5Oybq/3TWa\n6lMF5ErAP6Oc23N+NxYWp14i3C0kf0BRylHYLRVS+Q52Ekqy5ZIrjgOebdxC\nrr+tFSrAVjg32eVMr7xXExcO2JewwrbO+HoQ3l18SS8Tggnyr7FISXT9svmm\nFHWZvLZTm3psPncu4wNCzvhraz8cw32qIXZXfueECabzHOIdY/69ODXGHchb\nsbSx5v8mE58r7LXgjqCogjvP+x50JmpkDrggQW4TeqS+bRzAPVP+iTQdyc1x\nqGsF\r\n=Kygy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNiwJSy9zgj+E9J1kFZV4cRMYq5s2lsPG9YM9hGhtGJQIhAPmLvWeEHHd14XYnN18WUHx6+t2H1+axMCD2qlRravSi"}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.23_1553956327961_0.3606011628818693"},"_hasShrinkwrap":false},"1.0.24":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.24","description":"Simple user account management middleware for MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","account","login","account management","mysql","json","authentication","forgot password","password reset","user creation","session","hash","password","password encryption","security","util","backend","database","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.24","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-hnh/c0tYKxE9+JRs+0o0mOA5Lwd5Nhv0ATi4ts21FLxv+FpxPCIoq2BWKPxjvBr7entJ3yaxmm4aR91SkaffNA==","shasum":"ace36ad2a9044caf86094b3280aa3cb040d7cb34","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.24.tgz","fileCount":5,"unpackedSize":125862,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcn33/CRA9TVsSAnZWagAAYuMP/2DdkkbSaptPjXiu30o8\nZVfgGl7zwIkXLxSoTxrJBZuQnLWHAlBOGh3ecKPNUx3ojJfa+TKeUHB1XtXd\nqKu6xujcRw+GVFYj2zWIkuxARmF/2xH95AYogak1j/qOAyKypF94Owjrx8Ts\nYVFL8RPSQYquO0YoaUlWgnwOmwstConINduzc0+TXLyHSgLx+zDPoGqR0YDn\nibaroLdDsJ+Md/OTBizBlnYVLxMsIMp4FE/UNeDhbsOfN8FqsoGxRH/GeQ0K\nF+VhVsbr4387t77LNlzBoKhsGoiEtW3acSq/kUzkxPBWFAMcvgd0SYHp8X7R\nz/imb9iG38MmSWq/0GdUBmYUjh8sChsBvsTh85jU0h6umJ7GbZlRlGnC62Jp\nLDF72cjEjxfu7spdM3twqu2r4sA3THYp6ou01MhnHk++xpvs278n+wDB3fcW\n4IUJi8DA2i+zj268+h9uf1z320kzUGMV18bw7Uz4hd4Yr8u6d6s0l/wevawd\n2DKQdebBEGdx5+EwX1vRGSAqfhoXggRCcspnudWxVeEE+rcaYDUANgSRcVTK\nUZK1FegkmkDywgi5KLku+3+u0Qd0+Yaol+//N735c8QWEReSKGOCthhUu/o7\nWhENZILwrnxprHZM7uorINnKYeOexikeDy5kr0U/8nBEP0l/z78FgAQ3c75G\nnA08\r\n=3RPq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICHZO5lPOQxxEF3By6X7FtK6ZddhRowyphEx9pKW9MtgAiEAmH7rPNPjGraVb8SqACWDFgd26ZpSR+vF5euFEk/oHnM="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.24_1553956350458_0.8191037399040788"},"_hasShrinkwrap":false},"1.0.25":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.25","description":"Simple user account management middleware using MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","account","login","account management","mysql","json","registration","register","authentication","forgot password","password reset","user creation","session","hash","password","password encryption","security","util","backend","database","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.25","_nodeVersion":"9.10.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-ELK3kRMVLl4ewl9JGCCA9A9oPDmzJZbNunerNp9JB0pHfcB7aYSb28j4wnh5LkxnRilNrBWJm2i3COfEjTakBw==","shasum":"e7c720761341f3d92db06b2568cc3a09344ea308","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.25.tgz","fileCount":5,"unpackedSize":131460,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJco3QyCRA9TVsSAnZWagAABcQP/0jnrJVsdxfPE/0y7neM\nEbMSkY444Oeebrik3KuMUBJciVWCRvp1ERmLAh/1v95J/tc5diyilgOYXn1G\n52OOv2RdSH1Nn1kdjBoWEkiuGqHgXrcUYLJUJbFRnRnrzB++sFWQPx/kd+G8\nUflsQ2bPl6C1t6L5KOT88YoXI0vNNthKodoTX82N90rMgFt2mCHySyrJfNRE\nND0s/ZKkTzRicOA0DxYSuBkNn3WBG61tgFXMkz6af4B5keg9Wb0jN4OEqj5L\n5DgHyi6iXdL7UhfYB4Ag7Xz0bvFiz/zFo7tdjtE4gbW9QPtXwpu3QccsgQzG\n+niSFqtlFi5SGD0pwa3XV7GnE9KKjV1b99vZ7AsJ6No42n/DR7FPZrnTDwiy\nJ4OaIUkZniy5bHPbEv8EkvnXzWELure9Y9n3Vva9L5c5q6Fvh76ca7p7q7Fn\nV5CvVT0iscyb232j0cn3IWYYrA/LCPBqu2P27XSe2+afO7nSdTHqpqF8pwKe\nKQ6XAK280yvSKDWxAWpIeW8adt7Flqp/1zf0WOVjTW3zyidj4JreEQImhair\nPmPFhcv5hWq/p3JiglW6SH/thVA7gYqFz7EUhKubp8Zq8udDcy2qzuSse6u+\nsq5KhxP5iBbOUTbsswBbWsd5+SzWqWRnCEZdxWs+Ip9B6rOrB1ZaFMVW+2ca\nre7y\r\n=2toK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH35eiIhnVgsbMWavhA0ML0jKofDzVkB+by17HZc4p7IAiEA3Ltflo7tt7Zy+Ml1Pv6ZOKKbY5riHg1qgA3DKzYyXxM="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.25_1554215985607_0.5017532325976528"},"_hasShrinkwrap":false},"1.0.26":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.26","description":"Simple user account management middleware using MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","account","login","account management","mysql","json","registration","register","authentication","forgot password","password reset","user creation","session","hash","password","password encryption","security","util","backend","database","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.26","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-i4E2oniyl451ps14EGV3/kxGEXCd7VAHJyXTEUDz6q8SgAQLsZyUe0eQI0tW5xaOaQUUoO657XNwCmFoUZZxDw==","shasum":"3a165b6c47e612e077f83753a21b90e7d6abe36b","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.26.tgz","fileCount":5,"unpackedSize":131614,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJco5AnCRA9TVsSAnZWagAATfkQAIRllAzQNLYSuyhqpIDq\nYNVPIybWZkgH/Opy6xi7VvcIHREAVFR6DX1PGT72RcilUHT39SiGjFiaHPcg\nkJXuLOhHd7hFYJBH/X0o0nor6OTu8nBr8YKq7+halt06lHGj+K5e/lh4DCxo\nz8aQusJRr4dv7bzb1RU80huFNM4n9CxLZ6xUEuCKZscY1SfSDGuN7Mlm1TyV\nzR/RzDEe2Cp8MG7RT3VXeFAfdjlbachDLtY+Th/fao6PAya56TNXrPN2VKOO\nZfQU7Gd8eJvt1U8hTn7xDEiIlds/JVvawUjyXUU+L7H/2TpbtjqoGPOJbddE\n5weF6Df63+nxY8qIDFyEWqSj3Ifb9APLSVYeNcSYPiWtGNRrZs/PKFhDPmo8\nHhmNG2B5Kfqsrj/HFshvbZPTuvQh9tPO5g7VsqJT5mVqbBGCLMkFZnowbaOn\nUFPFVdGOdYT/IZxckFmX+WF6kuEyigrLZFtVjbJP9ShKj2CCv4xZTZ+EUvsL\nAHtH/G3U/KL93TrHPIB+DkiYk4fWV80F/wi6iSSCEid2v0qMn6yJ0VLddv/e\nAL0tDZiL0/r7K4F3oM6qTifZmywAYVhtmlws8sCrrERHvs3K4lWexiKtl7mT\nyNRYFFZdLZYYwzsSSGG4XqwIrp8H4/T9S1SkYF26A+opQDF7yUOpl3Brj1nH\ncG+x\r\n=9R9s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZ8TkRPB/+oY31MFL8+/WZ4KiUwRjlYYoPsZq8ALdGqAIhAKDUho1Z+sg1LUnEl27xYN9f1wW0bI+4L9UnLOySzVT1"}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.26_1554223142413_0.23646930024322876"},"_hasShrinkwrap":false},"1.0.27":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.27","description":"Simple user account management middleware using MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","account","login","account management","mysql","json","registration","register","authentication","forgot password","password reset","user creation","session","hash","password","password encryption","security","util","backend","database","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.27","_nodeVersion":"9.10.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-rf5SsYnnoKomQHKH6ZrXRY1LKQA/2k+ohOQV8tTmsFiqCAsN6L3diMc+5ydjcryQctCLrUj+EiAYivTVWXPlUw==","shasum":"dd4dc6a642e16390cbb2507fd4ba22444dbce511","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.27.tgz","fileCount":5,"unpackedSize":134078,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpchpCRA9TVsSAnZWagAAaMkP/2tlYKQMCVoVjwlNyIk3\ndLgc196+ETMneMS0ZWu7+1kbau1iwKTWOGEetUGUb45AuwU6XzxXjHMbkhnW\nwSLPvOD2Ale/xBIvBkNGXbCqCc7C/gUsldqShDiLDzpTy/0MPszfGVuo7JDF\ndl/KcuU4eVwx2pm6z2C28sDv9Hz1X4t7LcDBlxPi3NVpVpTSD6OjzYAy+jbr\n6wj7lXKNkQCrK+VXsgWOuJdXyo7d5b4E5aa8UdfnIUUiqdsOLWkshX8rWfnk\nCdcKPt/GoRYxNtXrkX5ckYoe4JfHFUfgOaBw3FF/TYPc9RLk+CWq0mTu3rU+\ngxZ04cS3jWd1q6pTmK1wBGEF65HdWUgMd77c9tfEGucFAkUzWHg/fiFUVtCP\nqedpYB1gDI01f0Su2MOtg2UgssJD4qfC3z9l7JRcGgz8Uj8XfhRN5YC8VdyM\nG5VN6ndG9CBhCfn96EJLYRvsZHCvOd+VrOGdHK/mm6bMADraUcoedapyIgLJ\n8amYT0lJbe5J6Yx0W9jlFBojuBFI8WK0NhzagYL71uEf25USxe08kxUMLsOg\n+sYSUCRmxUbQXiEEn9PuRies80qsO1Mf/0qVx7kJNTxsq025/gHtNe9YMCbY\nyWmM3bevQ1DIQgHrvJa2bSIgeUdc7yuTY6+aiowjkyXTwoXH5R0ZlKHf2QDV\ni/Gp\r\n=iI4k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCDfq+4WXxFrvbMY2ViVoY0yUXdS+AgXPi0qfP15g83egIgUcb0/kxHqtauc67Iik0dx6dBpjSKKq3YLZNXGXp3UUI="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.27_1554368616436_0.29199085659786705"},"_hasShrinkwrap":false},"1.0.28":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.28","description":"Simple user account management middleware using MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","account","login","account management","mysql","json","registration","register","authentication","forgot password","password reset","user creation","session","hash","password","password encryption","security","util","backend","database","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.28","_nodeVersion":"9.10.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-D/UvjVK9UHXaEHn8Gt9zoTKsrHmJOZOBYXpattYGyjuxVVivUFIwseB0u4sU7ba0m90PCvMGO6CwkcCFjsT8gg==","shasum":"4a448a8fb88efaf1235628902ea1d71861ea99c2","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.28.tgz","fileCount":5,"unpackedSize":134293,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpcuwCRA9TVsSAnZWagAAEMMP/3AnKtwK1PrwUscJg8Ba\nWzPvMwngG4ucs3zlARb7bBXADCE8giZBAb1iiCMFfO3FV0jn8tlNseqbuRj2\ndnAmdx4/XoLyr0w1QXOTKioiexV+9rDHmPU2qAkCrc3/eYHy1qr8U9LCSzFA\nZgkbwDVES4waf/XjdbNPETxnHRm9SzXrc9NY2/81gDkPEq3UIBDXkwXDmPsT\nxSMhM8FoptBTjFcMwrRfSF3xWq89HyoH3CaJTjLoWYm0kDakhyiQY+1xkL1O\n8ixrbUhT3UoyO00oZqZtINqbpnVV5lNhS+PBa0CPzOP9Ys8V3a607JJVAe/m\nXd1swmgX5f5A9+r8g3jxlNoX9w8QeKWgiYtPy8dW8cMfR6+PlIStTH7AS9kc\ntunRRBynuoobNNYRCVqiDskdHPLMVsI8huaG1H1Wu8xMdJrJKE0mi95rHlT1\nsMK+8sfYzB+M40kcELF5aYhaZ08dafSRZ+BDboFkYAl1JDNnMzfByJwywDnZ\ngbKoP937hMbuaM9G8Gay6VwEdCLGYWxCE9THdDtrATNpa7tI6GPm1GX8FR9P\nsueBl936+MxbtPPWCIeSW9BbrWJ/qDeKMLl5YpK1JRmmGOsAG5LpfFd9zIdb\nkPeE1e/AFiK+HGit54y7dWiFxJVzKxwYxrRqMFgiENmjDrRA8HeE7Al4GhW1\nMA8D\r\n=FfOQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZZjgsyUY6wOXVkqRtrPQUcwT2NVfrl+Ej3V92wOU/2gIhAN9E7OXBr71+DEr+OCdpifdU75k5l98E8szfyc8Y+ZWz"}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.28_1554369455391_0.6303962057791046"},"_hasShrinkwrap":false},"1.0.29":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.29","description":"Simple user account management middleware using MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","account","login","account management","mysql","json","registration","register","authentication","forgot password","password reset","user creation","session","hash","password","password encryption","security","util","backend","database","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.29","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-R8eQ2Z74A27uNAZSFJaWZKK+uOUfhvn6lOGUoHLpLpwaFZJ2ExcmmaI3hDKu+GUrz+JeyMkJDuIDe1HQgAQndA==","shasum":"50dafa1bb674bf3279612d2079b5ebdda89512fe","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.29.tgz","fileCount":5,"unpackedSize":134499,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpvm0CRA9TVsSAnZWagAAtEYP/j3geZStqZEIIGU6lpM3\niiJp7WQBnWa5GtgycGMI3RQ8/DkjyuEyTE3fXP8YuU6OLVG6hbZfPKjsWfUt\nY1m0RNBJx3ogVShBtNTcURJ4X/KX3mlfaSOKLHOUnfaM60qcIBS7QLozTSNw\nlgbt5C7x5hhObPTIzAxLpcL2/rXam5MziNcSn1cMFmrRswegRhcLJ8tN7+7F\nyb9HzkE4bNxwlIdhNDWAT9OyKIwEmrarOUVwG92JztG9q8YYiYs6Eo8WmSkl\nHZ9vHnd+Xw9NYve59+wqAWUeZ3KwyYGL08wAeiu29nqzoywxbso5nMVQUD4d\n3rZUlbfTUp1BMijcK1efmqcImRsMgPa6E8vmm2rVapWi+SexzPjLHcqb5z+J\n1kxqSUIC+JiHF7MfvIRdKd/c2fHpSxw23BYDXlhSmPHI3ZmL9UNYi3OTVR5W\nhUpA8S9yJSW1aSn6LHe5OyzGXYh7+5Ktjp/U6f+Mm85NLGo2fHHMsv9r2Ns/\n73bwdEDNcgWiL6alFOAAUgCTID/OE9QOTDsDJ6Xo6ak0IniudUPlRif9byT+\nPekjs9bMPTvtjqjcOAwcXWQwkqau4R/regkx12DCC7wQTV2PZQ1AxjnZ7EMn\nYwDMakVcvuug23a9al5tom6otcmvIoTaDxCU++K+y3+Kkbf/zYVqJTh4lnRE\nliwe\r\n=5Fpu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD33CmkE9WaNoa9Zr1DPrpSExVgPN8IOhqVPHZtuQQv5QIhALxCLhCCptv6dBZVThhONpckYg+3hD2aBWz0girZvobh"}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.29_1554446771470_0.9608927245495194"},"_hasShrinkwrap":false},"1.0.30":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.30","description":"Simple user account management middleware using MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"ISC","keywords":["user","account","login","account management","mysql","json","registration","register","authentication","forgot password","password reset","user creation","session","hash","password","password encryption","security","util","backend","database","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.30","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-7gMmFqr9ZomJCEAoHc1DN5XCgG4nZ9uu124ZQosCibiihnpUSOYDpKHTc9HcxCBaPismNUNp9Fu651tXNg8fzw==","shasum":"e5ad118dc7768dcf9808e22c57dd4525464b8c1b","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.30.tgz","fileCount":5,"unpackedSize":134005,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpvvSCRA9TVsSAnZWagAAx0IP/38qzigczFQaIL3GiOBh\naEEtD1+nvdfeHDJ7h36AfGc1QJ/Yk8xfmBFPZgSUxxHNCUC+tAz4cYvG7KmM\n/VaI+tZJ1rLCQc8kHgSSutuELZKkISF94Mh98+IfIkAv/Q1f2W/WF2XIEnOe\nY7QVh6//WNUAg1KOSm91m8GF7HOfSUHfb84wXtAqEfIOK3d/dQl0EnFuSfuH\nSdVVrQVHxINm6LNGPdtlRf8cTsjW3l6zogY7MaICk3dfVnNzMYbQPfOPQBE8\nmVuNlTOqCoHi4ESUbQq3styh1EUU76cxY2MzrWpVu3TcI8HXR/wbSPxUFm4Y\nyoZmvNpSTWyXCpsLjHQUWk/+8mL1WtzuQ08fNnYs5JlAYeJiwJprwRc3DoLT\nEZmrarhAJqK9jOdC8jNCXqczpMx9F+SmqjFwD2Mw2Ne/02RxyRpHW7iJrX1r\nx452Xe2xZwA+EAZLBiE07oUsWAMD5vqKQsvkDvYjjKQ68nAzl/k0dhQOw3qi\nKsNZwCCmWlWaMH5ED2YNC5UNP6B3D3AotvaNyGVr3shMWnKkaKmqZMGndSLl\n2W9ImL59tROUOqELUHigui311lwpKUU/IdxQ8xnvTTtg/8Gi7rJdMK4a0lsx\ndbFAujtoFOM/kdGIpAvjHTILVEYs5Cf/3/HOfDOLaTlT/6tACWvkRYA6zbqd\nBZhU\r\n=OJwo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCdQwfz/wfbqNlbo0igoT5rTwsjuqpRCLwNCTkD+wWpFgIgMX2BA1edpKufgHt4HJWm2UdTLR/zNJ+5sZ5ZysAXAuM="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.30_1554447313532_0.9900541914656871"},"_hasShrinkwrap":false},"1.0.31":{"name":"futurosenso-user-mysql","author":{"name":"futurosenso"},"email":"dev@futurosenso.com","version":"1.0.31","description":"Simple user account management middleware using MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","license":"MIT","keywords":["user","account","login","account management","mysql","json","registration","register","authentication","forgot password","password reset","user creation","session","hash","password","password encryption","security","util","backend","database","server"],"engines":{"node":">=8.15"},"main":"user.js","dependencies":{"futurosenso-log":"^1.2.1","email-validator":"^2.0.4","password-validator":"^4.1.1","uid-generator":"^1.0.0","bcrypt":"^3.0.4","mysql":"^2.16.0"},"devDependencies":{"@types/bcrypt":"^3.0.0","@types/jest":"23.3.14","jest":"23.6.0"},"scripts":{"test":"jest"},"_id":"futurosenso-user-mysql@1.0.31","_nodeVersion":"8.15.1","_npmVersion":"6.9.0","dist":{"integrity":"sha512-so+c9YALdUWg9Caiiz9uZkZgbP4TuyW1fbdxdFyq1eacxiwzFBTqFkdqZhq1T2IvgJvAAgDKSj5uIERFBLaP5A==","shasum":"443ddf6ed93f580eecc6cb6cc090331dfb2239f3","tarball":"https://registry.npmjs.org/futurosenso-user-mysql/-/futurosenso-user-mysql-1.0.31.tgz","fileCount":6,"unpackedSize":135077,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpy2OCRA9TVsSAnZWagAAr7EQAIUaDQ+YgrxfovGAVI2H\n2juBrd84jKZisfKkDgr5caQhVqzcv208qceNoIX1C9vfze3DhgjMBkT/JPoJ\nP3xq1a6TE77T75AnqEKsWD7KU+gds/6sxg2xA7s28ifwWtE9U4sp5pyHfI6C\nMgaJBl0MzWyOpzWsYuA1JVGeKE1vMvn346a7nEg8+HZnnZTPXCdMiMU6/8UJ\nn6s7O6Hg6ONEf4eihUfJy/xUVjU3ZfX+cTeseUAoqG+xpZhXs1aGzlmiSu8f\nfceRwjmqjohYsb98d9YIK0kzI1dZ1L9alL8ZsSThuJNAMrpKKxhptqKFK6/+\nvJrmTcQSqF8szG/Vj59lwpUW/INXTChB1aTK545ODtdRh04AH4+N1hg4oXSm\nf2/ramHozgdLlg+qz1hyPmfh55NjyIKryn7/VXlFV2woBN7hH4ta+6TQAYGJ\nA/NTbvRHncCHdWL8jSqLESZc/5WuEE+apVeN/pOMV75DPHTA2nY1sstrJV98\ndPjabylF5artChv3YcsDEfO8wGsu1MD/OTpo/5VZoUflAPgGDUhYqlS2Very\nZSFSsZn/Oi2QTfSywTmAm1Cvs7TU8imMXnGffQXVpPAmDqoM/TqOlZ3YBANT\nXFr9cn/uRaPNllkKW079cX0yUB2MNoSmeyciNj9CHIzqx+Do1OpDj8Oh5zxs\nM+Wt\r\n=K4gc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0Lm13gHqoTZog14eR6QhnzUs4xFYTJpsBoceA+YirOgIgFYPAH1/BSKwgRJmlyKjw/0u+5QYoEOOvZu88HKhD2jE="}]},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"_npmUser":{"name":"futurosenso","email":"dev@futurosenso.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/futurosenso-user-mysql_1.0.31_1554460045568_0.08660172666101973"},"_hasShrinkwrap":false}},"time":{"created":"2019-03-23T18:05:33.350Z","1.0.0":"2019-03-23T18:05:33.480Z","modified":"2022-05-03T01:44:40.096Z","1.0.1":"2019-03-23T18:24:30.401Z","1.0.2":"2019-03-23T21:06:42.733Z","1.0.3":"2019-03-24T08:32:51.765Z","1.0.4":"2019-03-24T08:33:40.253Z","1.0.5":"2019-03-24T21:08:48.038Z","1.0.6":"2019-03-25T15:18:47.147Z","1.0.7":"2019-03-25T22:24:52.349Z","1.0.8":"2019-03-25T22:36:13.341Z","1.0.9":"2019-03-25T22:53:08.549Z","1.0.10":"2019-03-26T20:57:11.708Z","1.0.11":"2019-03-26T21:01:24.456Z","1.0.12":"2019-03-26T21:07:36.205Z","1.0.14":"2019-03-26T21:17:35.166Z","1.0.15":"2019-03-26T23:32:20.373Z","1.0.16":"2019-03-27T23:15:17.936Z","1.0.17":"2019-03-28T18:43:05.487Z","1.0.18":"2019-03-28T19:07:37.650Z","1.0.19":"2019-03-29T14:20:57.981Z","1.0.20":"2019-03-29T14:21:49.338Z","1.0.21":"2019-03-29T14:33:03.998Z","1.0.22":"2019-03-29T17:32:25.009Z","1.0.23":"2019-03-30T14:32:08.197Z","1.0.24":"2019-03-30T14:32:30.581Z","1.0.25":"2019-04-02T14:39:45.756Z","1.0.26":"2019-04-02T16:39:02.544Z","1.0.27":"2019-04-04T09:03:36.593Z","1.0.28":"2019-04-04T09:17:35.570Z","1.0.29":"2019-04-05T06:46:11.631Z","1.0.30":"2019-04-05T06:55:13.746Z","1.0.31":"2019-04-05T10:27:25.828Z"},"maintainers":[{"name":"futurosenso","email":"dev@futurosenso.com"}],"description":"Simple user account management middleware using MySQL database, It includes user creation, login, confirm user creation, reset password, multi-token for different device login, user data management as json object, etc.","keywords":["user","account","login","account management","mysql","json","registration","register","authentication","forgot password","password reset","user creation","session","hash","password","password encryption","security","util","backend","database","server"],"author":{"name":"futurosenso"},"license":"MIT","readme":"### Middleware User account API using MySql database.\r\n\r\n### 1. API documentation\r\n#### The API includes:\r\n\r\n* Connection to the database and automatic initialization and creation of the database tables. Calling the function init, five tables will be created\r\nwith the user table name as a prefix. The user table name has to be chosen with precaution to not erase your current tables if not a fresh database.\r\nInit has to be called once otherwise it will drop and recreate the tables every time. \r\nYou use connectToDatabase every time the application starts. Using tableExisting, you can test the existence of the tables before calling init.\r\n\r\n        (return bool) function connectToDatabase({connectionLimit, host, port, database, user, password}, userTableName)\r\n        \r\n        function init({connectionLimit, host, port, database, user, password}, userTableName, resultCallback(error, initDone))\r\n        \r\n        function tableExisting(tableName, resultCallback(error, isExisting)) \r\n        \r\n        function disconnectFromDatabase(resultCallback(error))\r\n            \r\n* Email validation to check if the email address is well-written \r\n\r\n        (return bool) function isEmailValid(email)\r\n            \r\n* User existence verification through email.\r\n\r\n        function isEmailAlreadyTaken(email, resultCallback(error, isEmailTaken, userId))\r\n            \r\n* Password validation. If just the password is given as argument then minimum 8 characters is required. The second argument is optional \r\nand can be a PasswordValidator object (see npm module called \"password-validator\" for the object creation usage)\r\n\r\n        (return bool) function isPasswordValid(password, [passwordValidator])            \r\n            \r\n* User creation with encrypted (hashed) password using the npm package \"bcrypt\". The email address is the login. \r\nThe user creation includes a JSON object to store user data. You can add the fields you need in this object. \r\nThe user data object is stringified in the database and stored in a text field. \r\nYou can modify or get the user data by calling setUserData or getUserData.\r\nAt user creation time, a confirmToken is created and added to a confirmation table if user creation needs to be confirmed (i.e. by email).\r\nYou can confirm user creation by calling confirmCreateUser.\r\nThe confirmToken includes the userId and a hash phrase (both separated by an hyphen '-').\r\nThe confirmation function will remove the confirmation from the user creation confirmation table.\r\n       \r\n        function createUser(email, pass, userData, resultCallback(error, loginData, userData, confirmToken))\r\n        \r\n        function confirmCreateUser(confirmToken, resultCallback(error, isConfirmTokenValid, isConfirmed)) \r\n         \r\n        function deleteUser(userId, resultCallback(error, isDeleted))\r\n        \r\n        function getUserDataById(userId, resultCallback(error, userData))\r\n        \r\n        function setUserDataById(userId, userData, resultCallback(error, isUserDataUpdated))         \r\n        \r\n* User login and logout. \r\nA new authentication token is created for every login and sent back to the client application. This makes possible multiple device connections.\r\nAn authentication token is composed of a userId and a generated string of characters using the npm package \"uid-generator\", both separated by an hyphen '-'. \r\nWhen logout is called, the authentication token linked to this session will simply be deleted.\r\nYou can check the number of login session the user account did by using getNumberOfLoginSessions.\r\nYou can logout all other sessions of the user by calling logoutOtherSessions which is useful if the user do not remember or do not have access anymore to the device it used to login. \r\n\r\n        login(email, password, resultCallback(error, isLoginCorrect, isPassCorrect, authenticationToken, loginData)) \r\n        \r\n        function logout(authenticationToken, resultCallback(error, , isAuthTokenValid, isLoggedOut)) \r\n        \r\n        function getNumberOfSessions(authenticationToken, resultCallback(error, isAuthTokenValid, numberOfSessions)));\r\n     \r\n        function logoutOtherSessions(authenticationToken, resultCallback(error, isAuthTokenValid, areSessionsLoggedOut))   \r\n\r\n* User authentication token verification. Simply check if this authentication token exists and is linked to a user account. \r\nThe accessToken return is the second part of the authenticationToken. The first part of the authenticationToken is the userId.      \r\n            \r\n        function verifyAuthenticationToken(authenticationToken, resultCallback(error, isAuthTokenValid, userId, accessToken, loginData))\r\n\r\n* You can set or get the user data using the authenticationToken by calling getUserData or setUserData.\r\n\r\n        function getUserData(authenticationToken, resultCallback(error, authTokenValid, userData))\r\n        \r\n        function setUserData(authenticationToken, userData, resultCallback(error, authTokenValid, isUserDataUpdated))  \r\n\r\n* Password modification and verification.\r\n\r\n        function modifyPassword(authenticationToken, newPassword, resultCallback(error, isPasswordModified))\r\n        \r\n        function verifyPassword(email, password, resultCallback(error, loginValid, passwordValid, loginData)) \r\n \r\n* Reset password request or request a new user authentication token. After calling requestPasswordOrAccessReset, a confirmToken is created.\r\nyou can call either confirmAccessTokenReset or confirmPasswordReset with this confirmToken as argument.\r\nconfirmAccessTokenReset will create and return a new authenticationToken like in the login process.\r\nconfirmPasswordReset will simply replace the user password by the new password given in argument and will not create nor return a new authenticationToken.\r\n            \r\n        requestPasswordOrAccessReset(email, resultCallback(error, isEmailExisting, confirmToken, wasAlreadySent))\r\n    \r\n        confirmAccessTokenRequest(confirmToken, resultCallback(error, confirmToken, authenticationToken));\r\n        \r\n        confirmPasswordReset(confirmToken, newPassword, resultCallback(error, isConfirmed))\r\n                \r\n* email modification request + confirmToken to confirm the modification.\r\n        \r\n        requestModifyEmail(authenticationToken, newEmail, resultCallback(error,  isAuthTokenValid, isEmailValid, isEmailTaken, confirmToken))\r\n    \r\n        confirmModifyEmail(confirmToken, resultCallback(error, isConfirmed))\r\n        \r\n* User account deletion request + confirmToken to confirm the deletion.\r\n\r\n        function requestUserDeletion(authenticationToken, resultCallback(error, isAuthTokenValid, confirmToken))\r\n        \r\n        function confirmUserDeletion(confirmToken, resultCallback(error, isUserDeleted))\r\n        \r\n* Cleaning functions that will clean the confirmToken tables.  \r\nFor example, you can create a timer that call the cleanConfirmResetPassTable function every ten minutes.\r\nThe function will check which confirmTokens are still valid by using the lifespanInMinutes argument. This lifespan is the time \r\nthe confirm token is valid. All confirmTokens that are older than the lifespan will be deleted (invalidated).      \r\n\r\n        // this function will also delete the users that did not confirm on time (lifespan) their registrations    \r\n        \r\n        function cleanConfirmUserCreationTable(lifespanInMinutes, resultCallback(error, cleaningDone, nbCleanedRows, nbDeletedUsers, emailsOfDeletedUsers))\r\n        \r\n        // these functions will just invalidate the confirmation link by deleting it.\r\n        \r\n        function cleanConfirmNewEmailTable(lifespanInMinutes, resultCallback(error, cleaningDone, nbCleanedRows))\r\n        \r\n        function cleanConfirmResetPassTable(lifespanInMinutes, resultCallback(error, cleaningDone, nbCleanedRows))\r\n        \r\n        function cleanConfirmUserDeletionTable(lifespanInMinutes, resultCallback(error, cleaningDone, nbCleanedRows))\r\n    \r\n### 2. Example using web services\r\n#### Examples using express.js in a Plesk system environment.\r\n#### Plesk includes node.js, mysql databases (or mariaDB) and integrate automatic SSL generation (using Let's encrypt) to protect the webservice through https.\r\nUsing node.js, you just need to call http module. Plesk services takes care of the encrypted communication if you have activated Let's encrypt on your domain.\r\n\r\n#### Add an environment variable to node.js called SetupMode=DevelopmentMode or SetupMode=ProductionMode\r\n\r\n#### config-test file \r\n    \r\n    exports.DevelopmentMode = \"DevelopmentMode\";\r\n    exports.ProductionMode = \"ProductionMode\";\r\n    \r\n    switch (process.env.SetupMode) {\r\n        case exports.ProductionMode: {\r\n            exports.sqlParams = {\r\n                connectionLimit: 10,\r\n                host: \"localhost\",\r\n                port: \"3306\",\r\n                database: \"testing\",\r\n                user: \"testinguser\",\r\n                password: \"fdetij!wE\"\r\n            };\r\n            exports.userTableName = \"user\";\r\n            exports.clientAppToken = [\"sdfls-fsdfl-2323D-dseer-qzlot-sgegq\"];\r\n        }\r\n        break;\r\n    \r\n        case exports.DevelopmentMode: {\r\n            exports.sqlParams = {\r\n                connectionLimit: 10,\r\n                host: \"localhost\",\r\n                port: \"3306\",\r\n                database: \"testing\",\r\n                user: \"testinguser\",\r\n                password: \"fdetij!wE\"\r\n            };\r\n            exports.userTableName = \"user_testing\";\r\n            exports.clientAppToken = [\"styfs-fs2nl-2333D-dse5r-ql12o-sge9f\"];\r\n        }\r\n        break;\r\n    \r\n    }\r\n\r\n#### Node.js Module file for web services using JSON communication\r\n#### The client application uses the web services using its clientAppToken. The client application is not a web browser but another backend application. The web browser application should then communicate directly with this client application.\r\n\r\n\r\n    const http = require(\"http\");\r\n    const express = require(\"express\");\r\n    const cors = require(\"cors\");\r\n    const bodyParser = require(\"body-parser\");\r\n    const logger = require(\"futurosenso-log\");\r\n    const user = require(\"futurosenso-user-mysql\");\r\n    const config = require(\"./config-test\");\r\n    \r\n    //// EXPRESS INIT ////\r\n    \r\n    app = express();\r\n    app.use(cors());\r\n    app.use(bodyParser.text({limit: \"1kb\"}));\r\n    app.use(bodyParser.json());\r\n    \r\n    //// DATABASE INIT ////\r\n    \r\n    if(!user.connectToDatabase(config.sqlParams)) {\r\n        logger.log(\"Error connecting to database\");\r\n        process.exit(1);\r\n    }\r\n    \r\n    user.tableExisting(config.userTableName,  (error, existing)=>{\r\n        if(!error && !existing)\r\n            user.init(config.sqlParams, config.userTableName, (error, initDone) => {\r\n                if (error || !initDone) {\r\n                    logger.log(\"Error occured during database initialization\");\r\n                    process.exit(1);\r\n                }\r\n            });\r\n    });\r\n    \r\n    // VERIFY CLIENT APPLICATION AUTHENTICATION BEFORE EACH WEB SERVICE CALL\r\n    // ONLY THE CLIENT APPLICATION CAN CALL THESE WEB SERVICES\r\n    app.use(function (req, res, next) {\r\n        if (req.body.clientAppToken && (typeof req.body.clientAppToken === \"string\")) {\r\n            if (config.clientAppToken.find((value) => {\r\n                return value === req.body.clientAppToken;\r\n            })) {\r\n                next();\r\n            } else {\r\n                res.json({success: false, error: \"client application token not valid\"});\r\n            }\r\n        } else {\r\n            res.json({success: false, error: \"client application token not valid\"});\r\n        }\r\n    });\r\n    \r\n    /////////////////////////////////////////////////////////\r\n    //// WEB SERVICES ///////////////////////////////////////\r\n    /////////////////////////////////////////////////////////\r\n    \r\n    // USER CREATION\r\n    app.post(\"/user/create\", function (req, res) {\r\n        let info = req.body;\r\n        if (user.isEmailValid(info.email)) {\r\n            user.isEmailAlreadyTaken(info.email, (error, existing) => {\r\n                if (error) {\r\n                    res.json({success: false, error: \"system error\"});\r\n                } else if (existing) {\r\n                    res.json({success: false, error: \"email not available\"});\r\n                } else {\r\n                    if (user.isPasswordValid(info.pass)) {\r\n                        user.createUser(info.email, info.pass, info.userData ? info.userData : {},\r\n                            (error, loginData, userData, confirmToken) => {\r\n                                if (!error && confirmToken) {\r\n                                    res.json({success: true, confirmToken: confirmToken})\r\n                                } else {\r\n                                    res.json({success: false, error: \"user not created\"})\r\n                                }\r\n                            });\r\n                    } else {\r\n                        res.json({success: false, error: \"password not valid\"})\r\n                    }\r\n                }\r\n            });\r\n        } else {\r\n            res.json({success: false, error: \"email not valid\"})\r\n        }\r\n    });\r\n    \r\n    // USER CONFIRMATION CREATION\r\n    app.post(\"/user/create/confirm\", function (req, res) {\r\n        user.confirmCreateUser(req.body.confirmToken, (error, isConfirmTokenValid, userCreationConfirmed) => {\r\n            if (userCreationConfirmed) {\r\n                res.json({success: true})\r\n            } else if (!isConfirmTokenValid) {\r\n                res.json({success: false, error: \"bad confirm token\"})\r\n            } else {\r\n                res.json({success: false, error: \"system error\"})\r\n            }\r\n        });\r\n    });\r\n    \r\n    // GET USER DATA\r\n    app.post(\"/user/data\", function (req, res) {\r\n        user.getUserData(req.body.authToken, (error, authTokenValid, userData) => {\r\n            if (error) {\r\n                res.json({success: false, error: \"system error\"});\r\n            } else if (!authTokenValid) {\r\n                res.json({success: false, error: \"authentication token invalid - access denied\"})\r\n            } else if (userData) {\r\n                res.json({success: true, userData: userData});\r\n            } else {\r\n                res.json({success: false, userData: {}});\r\n            }\r\n        });\r\n    });\r\n    \r\n    // MODIFY USER DATA\r\n    app.post(\"/user/modify\", function (req, res) {\r\n        user.setUserData(req.body.authToken, req.body.userData, (error, authTokenValid, isModified) => {\r\n            if (error) {\r\n                res.json({success: false, error: \"system error\"})\r\n            } else if (!authTokenValid) {\r\n                res.json({success: false, error: \"authentication token invalid - access denied\"});\r\n            } else if (isModified) {\r\n                res.json({success: true})\r\n            } else {\r\n                res.json({success: false, error: \"not modified\"})\r\n            }\r\n        });\r\n    });\r\n    \r\n    /////////////////////////////////////////////////////////\r\n    // USER LOGIN\r\n    app.post(\"/user/login\", function (req, res) {\r\n        let info = req.body;\r\n        if (user.isEmailValid(info.email)) {\r\n            if (user.isPasswordValid(info.pass)) {\r\n                user.login(info.email, info.pass, (error, isLoginCorrect, isPassCorrect, authToken) => {\r\n                    if (error) {\r\n                        res.json({success: false, error: \"system error\"})\r\n                    } else if (!isLoginCorrect) {\r\n                        res.json({success: false, error: \"login not existing\"});\r\n                    } else if (!isPassCorrect) {\r\n                        res.json({success: false, error: \"password not correct\"});\r\n                    } else if (authToken) {\r\n                        res.json({success: true, authToken: authToken});\r\n                    }\r\n                });\r\n            } else {\r\n                res.json({success: false, error: \"password not valid\"})\r\n            }\r\n        } else {\r\n            res.json({success: false, error: \"email not valid\"});\r\n        }\r\n    });\r\n    \r\n    // GET USER NUMBER OF SESSIONS\r\n    app.post(\"/user/nbsessions\", function (req, res) {\r\n        if (req.body.authToken) {\r\n            user.getNumberOfSessions(req.body.authToken, (error, isAuthTokenValid, nbSessions) => {\r\n                if (!isAuthTokenValid) {\r\n                    res.json({success: false, error: \"authentication token not valid\"});\r\n                }\r\n                if (error) {\r\n                    res.json({success: false, error: \"system error\"});\r\n                } else {\r\n                    res.json({success: true, nbSessions: nbSessions});\r\n                }\r\n            });\r\n        } else {\r\n            res.json({success: false, error: \"authentication token needed\"});\r\n        }\r\n    });\r\n    \r\n    // USER LOGOUT\r\n    app.post(\"/user/logout\", function (req, res) {\r\n        if (req.body.authToken) {\r\n            user.logout(req.body.authToken, (error, isAuthTokenValid, isLoggedOut) => {\r\n                if (!isAuthTokenValid) {\r\n                    res.json({success: false, error: \"authentication token not valid\"});\r\n                }\r\n                if (error) {\r\n                    res.json({success: false, error: \"system error\"});\r\n                } else if (isLoggedOut) {\r\n                    res.json({success: true});\r\n                } else {\r\n                    res.json({success: false, error: \"logout not done\"});\r\n                }\r\n            });\r\n        } else {\r\n            res.json({success: false, error: \"access token not valid\"});\r\n        }\r\n    });\r\n    \r\n    // LOGOUT USER FROM OTHER SESSIONS\r\n    app.post(\"/user/logout/sessions\", function (req, res) {\r\n        if (req.body.authToken) {\r\n            user.logoutOtherSessions(req.body.authToken, (error, isAuthTokenValid, isLoggedOut) => {\r\n                if (!isAuthTokenValid) {\r\n                    res.json({success: false, error: \"authentication token not valid\"});\r\n                }\r\n                if (error) {\r\n                    res.json({success: false, error: \"system error\"});\r\n                } else if (isLoggedOut) {\r\n                    res.json({success: true});\r\n                } else {\r\n                    res.json({success: false, error: \"logout not done\"});\r\n                }\r\n            });\r\n        } else {\r\n            res.json({success: false, error: \"authentication token needed\"});\r\n        }\r\n    });\r\n    \r\n    /////////////////////////////////////////////////////////\r\n    // NEW USER PASSWORD REQUEST\r\n    app.post(\"/user/reset/pass/request\", function (req, res) {\r\n        if (req.body.email) {\r\n            user.requestPasswordOrAccessReset(req.body.email, (error, emailExisting, link, wasAlreadySent) => {\r\n                if (error) {\r\n                    res.json({success: false, error: \"system error\"});\r\n                } else if (!emailExisting) {\r\n                    res.json({success: false, error: \"email not existing\"});\r\n                } else if (wasAlreadySent) {\r\n                    res.json({success: false, error: \"email already sent\"});\r\n                } else if (link) {\r\n                    res.json({success: true});\r\n                } else {\r\n                    res.json({success: false, error: \"system error\"});\r\n                }\r\n            });\r\n        } else {\r\n            res.json({success: false, error: \"email not valid\"});\r\n        }\r\n    });\r\n    \r\n    // CONFIRM NEW PASSWORD REQUEST\r\n    app.post(\"/user/reset/pass/confirm\", function (req, res) {\r\n        if (req.body.confirmToken && req.body.pass) {\r\n            user.confirmPasswordReset(req.body.confirmToken, req.body.pass, (error, linkConfirmed, authToken) => {\r\n                if (linkConfirmed && authToken) {\r\n                    res.json({success: true, authToken: authToken})\r\n                } else {\r\n                    res.json({success: false, error: \"system error\"})\r\n    \r\n                }\r\n            });\r\n        } else {\r\n            res.json({success: false, error: \"confirm token or pass missing\"});\r\n        }\r\n    });\r\n    \r\n    /////////////////////////////////////////////////////////\r\n    // NEW EMAIL REQUEST\r\n    app.post(\"/user/email/request\", function (req, res) {\r\n        user.requestModifyEmail(req.body.authToken, req.body.email, (error, isAuthTokenValid, isEmailValid, isEmailTaken, confirmToken) => {\r\n            if (error) {\r\n                res.json({success: false, error: \"system error\"});\r\n            } else if (!isEmailValid) {\r\n                res.json({success: false, error: \"email not valid\"});\r\n            } else if (isEmailTaken) {\r\n                res.json({success: false, error: \"email taken\"});\r\n            } else if (!isAuthTokenValid) {\r\n                res.json({success: false, error: \"authentication token not valid - access denied\"});\r\n            } else if (confirmToken) {\r\n                res.json({success: true, confirmToken: confirmToken});\r\n            } else {\r\n                res.json({success: false, error: \"system error\"});\r\n            }\r\n        });\r\n    });\r\n    \r\n    // CONFIRM NEW EMAIL REQUEST\r\n    app.post(\"/user/email/confirm\", function (req, res) {\r\n        user.confirmModifyEmail(req.body.confirmToken, (error, isTokenConfirmed) => {\r\n            if (error) {\r\n                res.json({success: false, error: \"system error\"});\r\n            } else if (isTokenConfirmed) {\r\n                res.json({success: true})\r\n            } else {\r\n                res.json({success: false, error: \"system error\"})\r\n            }\r\n        });\r\n    });\r\n    \r\n    /////////////////////////////////////////////////////////\r\n    // DELETE USER REQUEST\r\n    app.post(\"/user/delete/request\", function (req, res) {\r\n        user.requestUserDeletion(req.body.authToken, (error, isAuthTokenValid, confirmToken) => {\r\n            if (error) {\r\n                res.json({success: false, error: \"system error\"});\r\n            } else if (!isAuthTokenValid) {\r\n                res.json({success: false, error: \"authentication token not valid\"});\r\n            } else if (confirmToken) {\r\n                res.json({success: true, confirmToken: confirmToken});\r\n            } else {\r\n                res.json({success: false, error: \"system error\"});\r\n            }\r\n        });\r\n    });\r\n    \r\n    // CONFIRM DELETE USER REQUEST\r\n    app.post(\"/user/delete/confirm\", function (req, res) {\r\n        user.confirmUserDeletion(req.body.confirmToken, (error, isTokenConfirmed) => {\r\n            if (error) {\r\n                res.json({success: false, error: \"system error\"});\r\n            } else if (isTokenConfirmed) {\r\n                res.json({success: true})\r\n            } else {\r\n                res.json({success: false, error: \"confirmation not done\"})\r\n            }\r\n        });\r\n    });\r\n    \r\n    ///////////////////////////////////////////////////////\r\n    // CLEAN USER CONFIRM\r\n    app.post(\"/user/clean/user\", function (req, res) {\r\n        user.cleanConfirmUserCreationTable(60, (error, cleaned, nbDeleted) => {\r\n            if (error) {\r\n                res.json({success: false, error: \"system error\"});\r\n            } else if (cleaned) {\r\n                res.json({success: true, numberDeleted: nbDeleted})\r\n            } else {\r\n                res.json({success: false, error: \"system error\"})\r\n            }\r\n        });\r\n    });\r\n    \r\n    // CLEAN PASSWORD RESET CONFIRM\r\n    app.post(\"/user/clean/reset\", function (req, res) {\r\n        user.cleanConfirmResetPassTable(10, (error, cleaned, nbDeleted) => {\r\n            if (error) {\r\n                res.json({success: false, error: \"system error\"});\r\n            } else if (cleaned) {\r\n                res.json({success: true, numberDeleted: nbDeleted})\r\n            } else {\r\n                res.json({success: false, error: \"system error\"})\r\n            }\r\n        });\r\n    });\r\n    \r\n    // CLEAN CHANGE EMAIL CONFIRM\r\n    app.post(\"/user/clean/email\", function (req, res) {\r\n        user.cleanConfirmNewEmailTable(30, (error, cleaned, nbDeleted) => {\r\n            if (error) {\r\n                res.json({success: false, error: \"system error\"});\r\n            } else if (cleaned) {\r\n                res.json({success: true, numberDeleted: nbDeleted})\r\n            } else {\r\n                res.json({success: false, error: \"system error\"})\r\n            }\r\n        });\r\n    });\r\n    \r\n    // CLEAN USER CONFIRM\r\n    app.post(\"/user/clean/delete\", function (req, res) {\r\n        user.cleanConfirmUserDeletionTable(10, (error, cleaned, nbDeleted) => {\r\n            if (error) {\r\n                res.json({success: false, error: \"system error\"});\r\n            } else if (cleaned) {\r\n                res.json({success: true, numberDeleted: nbDeleted})\r\n            } else {\r\n                res.json({success: false, error: \"system error\"})\r\n            }\r\n        });\r\n    });\r\n    \r\n    /////////////////////////////////////////////////////////////////////////////////////\r\n    // START SERVER LISTENING - PLESK SYSTEM STYLE ////\r\n    \r\n    const httpServer = http.createServer(app);\r\n    \r\n    switch (process.env.SetupMode) {\r\n        case config.DevelopmentMode:\r\n            let port = 8585;\r\n            httpServer.listen(port);\r\n            logger.log(\"Setup mode is: \" + config.DevelopmentMode);\r\n            logger.log(\"Start listening on port \" + port);\r\n            break;\r\n        case config.ProductionMode:\r\n            httpServer.listen(process.env.PORT);\r\n            logger.log(\"Setup mode is: \" + config.ProductionMode);\r\n            logger.log(\"Start Listening on port \" + process.env.PORT);\r\n            break;\r\n        default:\r\n            httpServer.listen(8585);\r\n            logger.log(\"Setup mode is default mode\");\r\n            logger.log(\"Start listening on port 8585\");\r\n            break;\r\n    }\r\n\r\n\r\n\r\n","readmeFilename":"README.md"}