{"_id":"@aofl/middleware","_rev":"149-6a8d9015c28e3c9c3eb05e7b16f646d7","name":"@aofl/middleware","dist-tags":{"next":"2.1.0-alpha.9","next-alpha":"3.0.0-alpha.12","beta":"3.5.0-beta.22","alpha":"4.0.0-alpha.45","latest":"3.14.1"},"versions":{"1.0.0-beta.1":{"name":"@aofl/middleware","version":"1.0.0-beta.1","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.0.0-beta.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"d5f3be331cfe8b5da367dc847542d5523b57c48f","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.0.0-beta.1.tgz","fileCount":3,"integrity":"sha512-uNG5qbOac9xUgN47l6GT8yWdxgu43glrZKmvsog7STpQsJ4yQpWXRjSwvIthyk/Q74bArilg/I5IPRP1iww9vQ==","signatures":[{"sig":"MEYCIQCkwT35KX48+C8lvpgHnzNHpEenxv41gWJzqbjCWQToZwIhAMv9h7K4/3e3BCJ44dd64mt2e0kb5ejTA+dT4CFds4BI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2165,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa0WEECRA9TVsSAnZWagAAEFAQAIJJ8zK2dkoqSlTHBxmn\ntJe23QVGrRlTGt8tWY6La/D4PC3fQ763toU+1YKb0Xx1RqU1WCQ9r+SEsLaO\nUzeZ+LIZag+moAgvKhCLrfFAYJmTvF+m0/FIv4rbcGgTNvtp9NZp2uwzBKpj\nqxsnNz474DkCBaSsA8e+NeogLN1J2GPKkByN2r7FZG72Utnv0GIJD8pss8Xz\n5KpGo33gbKGmgMkhAodgyEg7dEMKUldp6tsQOfRWT5dWs1P2gVaTfSWZPUX6\nJdBG8IRm3cgiNWuDPLZTnKwcvp9/rTRSCtHvIxFIoRox3bFn4Inq6/UFV7RJ\nYBi3ccfxHD0FEYT9m91pb3eX0/Ooeko+pYN3IBQHLaJRpX3OYyRuwckL9Vkh\nAYDLp8g3f39i/UHXa7INgqtVsdaVHbGiMrHcViM4Y6Sy9PuyGIdWbwHvugh7\n9n8AMAlPU+2Z933JOHYFIQl+JiJ73Vj7Wgsht/SKQRcZD7USHXvSwOo5fCLP\nqXXDiGjQBpA+KAVeUomgJyb7XE4dApx7EQzcNV86q5spsy2g8xSARhoTPWfe\nQv0GnLzISLER/OyGDzrGzJoTq4j9b5TYKLkug8o4eRWEGORCRi+OdFjMsD2/\npWoulLQMezgvTgeG0rRhvTiNFnLtOLXdAuWgzPW7Dh9ItV7b90uyf0jqPhpG\n3UWM\r\n=I8l7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"_npmVersion":"5.8.0","description":"","directories":{},"_nodeVersion":"8.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.0.0-beta.1_1523671299752_0.8080379329136411","host":"s3://npm-registry-packages"}},"1.0.0-beta.20":{"name":"@aofl/middleware","version":"1.0.0-beta.20","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.0.0-beta.20","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"1350877eda4c2016f74ae7cc8aa2b0aa5c6b0330","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.0.0-beta.20.tgz","fileCount":4,"integrity":"sha512-QDRGtNXjmJnwmf37IcunDIZuENNX9zwIQwO8v+eJdOIEnmO1Uu/5/uHmd61WHSqCDiY9nDnegaaPqoR2DtBeeA==","signatures":[{"sig":"MEUCIQDHwOc+QIo8dAfHwgDkUxyeHon4sFODGYQoUKTbLjkNwAIgWZKC6dyZcfJ+OPnaDpu+aHEuPBP9QJzM8TQN8mnm6lY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbV8ByCRA9TVsSAnZWagAALcEP/R/obc3keY3aowoUKb4n\nPYxMV/zhwvzrgp8Lz/FdQDWlCZ5i2jVMYEwxUVlDiwIvicF+RqoTAtw+HJJs\n355GOfPRa0F9p5U5kXuE/MXwypO/cSZdHE0fMvfjgFZOYTq1lmdHOa/tu7nz\nJFbEW7uKG3s4YzTknKrK6tWquVsgL2Fhzo6FnQ1IzN8PJMjSzhF/8/Xg8PsD\nVsGoHcxcgQmofgc5dHvZcxSbAsRqH66gsuTY+fMbWGerxdukUGH6fMgeYCGP\nwujUjY2NzAZtS/10v0LKFnzOoJUob6EfpcAvfZFBOGodAVq0fmU6ncJS+p9d\nS0YAwOd2gnjPn8nRI2ymhtltC/FPJ9KL5STxs46VIkyj9nIVnsCKv0yXgsVW\nEKusHLpnxiApZZofZ/ZyvDLWs9im17Sq8lW+OpKVOEpCKb3RkXUav0uF5xtp\ni8m876MmzvIAbHPofG0g9EKowoFuLMa3EsdQGUMC0rmjV2DL4NrPFSXdDxxq\nzD1oZuUDyBN8TJZZYToZQeAAcxxWAX5P+AC/i9cuXoThU0FW28V6GojKtdlY\nde83DzL6M09ZE9+LGZ7AtTGu8pcMhj0iX4BNtic6B1bjtdJZ76ezGwFZloU6\nSs8l2HgqcHktk0WEXtJCbPnmHT4zMyc1uunQfdLuXhc3G891UY8d60QkPR2S\n8YFx\r\n=Kl9j\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"_npmVersion":"6.2.0","description":"","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.0.0-beta.20_1532477554521_0.16022302987357473","host":"s3://npm-registry-packages"}},"1.0.0-beta.21":{"name":"@aofl/middleware","version":"1.0.0-beta.21","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.0.0-beta.21","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"43114699731e29d5855ff3b267da13b487169380","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.0.0-beta.21.tgz","fileCount":4,"integrity":"sha512-rlxac1sYiGkKZJFXXTGHse+gTCrhL1qsnbHPYYqHeSIZPVmeODDFW195RKdqKZy58+3vtA+QZpDAEbmiYIcZlg==","signatures":[{"sig":"MEQCICnWd+5++xZlXb2hFYRlnEX/zQ6Z8OQPYi6RCHZMIAHDAiAxTeeJWPndDY6irYl9jgtcSEQ//lN4L22bHnhvR2ZJyw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbZqmeCRA9TVsSAnZWagAAVNoQAIOH91DaqpHhaTn7prCn\nUfDRHW9sA2NjIlmZlj5ezPEhjitAPa2xrh2kAXDHksS8vZMpywBlcZdXRsBX\nrNGHmJ6kWYuyJSaOmOifDmkn6mXYDsB5jX70/wo5P6K34wcrwY6Ju7ZDFws2\nU5EXCry5Jg7iZkJgcwTKygw+hl7hybOJv9LeTEDZ+KP1nJgyNyc9FeJ+jpZY\nHksAUX+q+6hH5bO5IQ/g6uIDPipV3mVrl57ej1aIYrUE3omLwyi/V/D9bw/X\ncrwg4opkFVeLJxkuqwBTUToZOTGUMcf5FgbUwNGlePBU3oRnj0fR/YFtMnyq\nLPO4pJxYyd+QZUoeVBWC6XuTCPyKVITHLBcry0A6PWzFnZSoI/iY28IXh4il\n0iWhlbHhxDTiO7fCzA82Ll156RGZwiLqBPbt6ILeoZ5gWGBYPhLCfI0qgXvM\noU8HB0IV/Xm0+NFNB/1XfiWnhqD1ul9r02BPlUpdav+4kHKyy/KbNyWO1HV4\ne8SdR/Uivc52hy5VvNlyYN1xRICzgBFws8xrNUycIJJYH9Z36hMbcLHFbNll\nr1fqxqwONJ/cq1njMulqSXbA95+h/9iEq1D/J+6SDRuu5G0hns7lVw+wwPyP\njoacfKYrd8eMDHqW9EMzHOqYknrQ6AauK/Ah516apTL7USqQhRzvuk1DS7qt\naoHd\r\n=sLAx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"6.2.0","description":"","directories":{},"_nodeVersion":"8.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.0.0-beta.21_1533454749712_0.13470264997880288","host":"s3://npm-registry-packages"}},"1.0.0-beta.22":{"name":"@aofl/middleware","version":"1.0.0-beta.22","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.0.0-beta.22","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"2d050389be2b66b37cd52e649f1e438d874a7c7c","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.0.0-beta.22.tgz","fileCount":4,"integrity":"sha512-XBccoIfv3nM+DdbbIOaZ6hbrKeYfLjzcwpNIcW5YOIDVm0/LidNSv2CVQikyKRnYwjDE/E5H0MEQYDaLqQguag==","signatures":[{"sig":"MEUCIQDoEfXAJPgdoBMh60Gh0JxYWZs8I95e5O/SpYcHRoQbtgIgeNkYNTraGlv4C/FO8IHULtj17anTuiS4rps1wL0b0zA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbbeZiCRA9TVsSAnZWagAAdmkP/RPLktZZvU6cmS71YTdE\nvV7IYXb3zUFO7oh66pOCUoQ0/yln1C20rwzW2TxK8liYpbyH8M8wgCtgy6e9\naClhDsfMJQx5/Vp0vMGP4rDgSO7RJec3wMYkq1NzWNrnXq9sAJ1Uqi5pu7v1\nr/d2Cs9NodMOHZDlV1IRHTAgS7aBTk41FISmWsUdnatg08CO0sMWuVsnpzWb\n8E6s2h5AQHuh8nDSU+aeiS0WU9L63vEV/g1woS9O6jol9yLMkKp9Dn38uliE\nDqSeBVoit1aSc18Zo3mw6VdnbbDVhZegOV9dffRcoeJLrc1KxJ50BMbcaFyC\nn5z/cYzw71oQt8F3uIjB4Rm9X6bi4TSCTDhPsBmREZeDf1xGLto/noqz97WP\nSr633DMmunIxdsyOariHR/anszzoXP6Bi+4Cn9DSw1Gayx9eMvYHiaJK60eS\nfW0tIX18xRIdJBT6BbvRCHIpwdRzUb3BL143vovndcE9NXgZPGNxJ8J5UrbS\nLcID6W47MFsYhquxzU1+xXJhjs8jmKmYXZ+phqyt44huDmE/xdNtY0Lxpw1W\ncnMsi7epN+r76j272TzkhWX3+bR+TLw0E46+dt/zvrEiOCsaZ1j/Zfnz4f4E\n12LNRo5ji181Hepzgnwp+42Q3epmYoI2i96dEIPGOCVwqn/TSvncyKjFK12q\nDwa6\r\n=7Qy/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"6.2.0","description":"","directories":{},"_nodeVersion":"8.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.0.0-beta.22_1533929058382_0.16947187063515123","host":"s3://npm-registry-packages"}},"1.0.0-beta.23":{"name":"@aofl/middleware","version":"1.0.0-beta.23","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.0.0-beta.23","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"92530edb2b39373a04daadb2c577e68d181d43d5","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.0.0-beta.23.tgz","fileCount":4,"integrity":"sha512-g0joY/nnVoVFBd35UFVo3RRdlUFmOroFTd9rWPZ4LhllCFVEEFACb8Pep4myCxCcNNNcmfRNqTeJHw1R4FsKRQ==","signatures":[{"sig":"MEQCIFa5eJ0m9/soXqfxPgvdGVHkEqHU64o+fpvFBVN5mwNEAiAgVw9En1c3zBuu3fKpHc45ERZpDHiFhj+qvaHGU4Brsw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbde5sCRA9TVsSAnZWagAAuOEP/3fyn1/7TdIiOc19Cq0T\n5gHA2089daSejbpmaR6Sy1z6bD4Mh1WcYlSAd+YfQYxtSUXoyb10q26gUak3\nOLo3mqy8YMKcHxAdzK4IO+wjgr//thvIh5bclcr92leMc+9uST8jchTb4oW8\nFrBRKd9H2uM8r8HUqoQz4PFH7PzbS8u+zozoFYCf4DLmsrAQrXuw7/v5vHaP\nYlQN0q6Zq928CM4AF7ukmIpgVk6RuKToXALPkU3Bbt/1eeD7+tRToNxVE0Av\nXBLI2CsU9Bkozbey31CnTE5nPmvtFY5BgpB/pDWTX6Un0n/lkH5mGLCa8h41\n4y1Pef6f1nlhnWcG38DaxKfoR4spWLqggObVbqdfFOpnc4XgTEM3Qcw1q8d9\nV+KmMdVwK/Qlv8TBN3P4VZ6NSeFHE5+nXb8hhbCY2IdrIa5Oi5SgGCZi7bG2\nybxykehn7RZF7dymf+PHmEd+c5v3Uc/SQgIhDU22GODxeVT4WTIQf55gEnSi\nIghlwGUEBLzotZp+2EJrIyZcFhGtUx2aEWQN5tvsqRBmGsIHHnIzNQg3I+0v\n3JGQnrGUW7i46PIiNDe9h/47EAvkRk1AzmkD8ocw/xdcLyBsZBhOAqkbRado\n2e/n8RPvMFqHaJlW5FYTnjR3wfVR8wtM3dzL48wHxK/UJKFrrHqAthO3eWg6\n0IRF\r\n=S9yC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"6.2.0","description":"","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.0.0-beta.23_1534455403496_0.5934523214922991","host":"s3://npm-registry-packages"}},"1.0.0-beta.24":{"name":"@aofl/middleware","version":"1.0.0-beta.24","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.0.0-beta.24","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"da3ca0db4dacd524452d22450672c762552c17d3","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.0.0-beta.24.tgz","fileCount":4,"integrity":"sha512-NYKfPtv1GQ4aBhVsV8/vj2Mhdnc9lahL/usGbazPba+WOV8fRsXkrYyQX1OYYu+kUpSquAWLAloRXoZzezyI1A==","signatures":[{"sig":"MEYCIQDAvTI05BnMo7xFC17BsRFGOdqMpMOMHv2aScjWBzZ7nQIhAOpdwXEy4w9BrTVWnGpygSVbNBH84xGw1H2Dl6gcZ709","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfeRcCRA9TVsSAnZWagAA5D0QAJpq0uYkahVGmEjgRXcJ\nXvLzF71wSapmc6awEPpRxeU69P6c+OSR1SEm7VKghxdwAbAdBBN1wQXJJFll\nIRWUdkGaY6WnkovzIBGIgKi98QP5FqJ4h+SUK0R6O7wQgPuB9Y+Ki6HciqCJ\nhiOebQv1RV1OeH2ycMKF3AwDkv26qO1gZr9hSsScMeeSfYhGm1q5S48Ab5YL\nTiSKJwzpgcmbPBM8btBGsiOJiLf4tZdaLe3Xs8hbDrk7qSV2c2fSuR3tdkFA\nKUfxEW5X//1RfeV5pE6/vPVkmR3o/sxc/QmjN9S7W90vB2DaE9vqz3kR9Ybz\niSNBR5ATYsYBaD0zNRKgL7O2R2o1CMtdzKvWTNdihq74tqR50ZXLE87zHF9e\nd3hb4hBJZPuqKlZpGjoPxlIaw3OMtx/rAtvzuKfIjMQUk4jcHiQn05L5p+a9\nbtrvW5ofHFnHc7b8+Qx5B7aeXLja8SJsrbxA4vC1loEi+NJ/keDVwwdC8ppJ\n5wLSlddbUk5os+Ltsxk6xczJ0GhIVDhL7yDYAoQzlnX/+uV9IucZaWAmzlAk\nHe12F/eXL2B7KVfvq6UQXGDDiLmcgZyXS5X6mM2HNSkL5HtZIrYWiFXalvc7\n3PWN3SfT39Sc+PsP0YKH2hOjBAN8M1v1Cgr0oqX08xwD/PjMQaQEmItLweFR\n22lR\r\n=YnQT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"6.4.0","description":"","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.0.0-beta.24_1534977116521_0.07619534490818425","host":"s3://npm-registry-packages"}},"1.0.0-beta.25":{"name":"@aofl/middleware","version":"1.0.0-beta.25","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.0.0-beta.25","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"dist":{"shasum":"28e60c1c0bcc4836206ccfed00919c9c5f910295","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.0.0-beta.25.tgz","fileCount":4,"integrity":"sha512-hOhk2f0YyffjMjB7pI0xQYAj/YdQlnf71GInJguMwygSy16xAzYh0BMrjO4PwjCCTU4pjXNXgg3+mILIDTtRfQ==","signatures":[{"sig":"MEUCIQCo0FvHTa75dB7lDbz8Lum1Bboj5/BBmlSggk4MhjUIsgIgFGtOnkyLPjXBMWZXsR8pWO/WHOeEMdi1Kq5k4is50ek=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2766,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfwq5CRA9TVsSAnZWagAA9oIP/RBCHyj7IuAjifBdzu27\niermaxY4T4IJOWTOlLBvkweOCcFpxTGUAN5BjIX0OMiEkfzXuoDQXSX8lmp8\ntWRE0T46WXwEeEB4Aw5PZU2tIYyLwyJ9M7dDK5czG0s0HjEif9XqSc7/8VGf\nntsUd33l30AUcFO0nnpNh5+/WAjg0JxLVayLj32tYVeLMoZ83iYzNj/n/0Ap\nPPrUs6du0LOaATBdmybHwa2/jsMlJHisinfPbs/imz8cZ76MLmNpylOMTiHt\nGe5mIRUtwSfWf0GTTkuhS3Cwdromkf3HTxJ9ZVmHUtlf8Qc4Vgr05MpYXAoj\nXSwaWqNVIdOBRuGVEP/0dDD1kUVzDdIrayiVsx8fSbXsYE3rxbEphX1gdhIj\nd+s6s/1EwLNeMa+VIkgDiCEnz7yXsIdC2lITsLdRBUlGK2mmfymJ0Uz20Ccs\ni5QQGMGxKCDKEVbYR7+RnCC9cnooMGvmvD3tSM1hUtVWla7GH+PsCAF9d3/p\nckUe8KCEGlFcQU9+87YwqfgZkwEhCKGxEO23FSw9vJrnvkQ569pRG/rX6WTr\nYlsmIq3p5LPAL2Zt61q89kpFC+gankwYN1pSqAAArZFHh8dMNnqTAIa8EzY0\n4ImA/3HYAHvmV0a4OY6NI4wPzx/TM92k6ha6T1d6RJEZubzv6J8cVzx9AY8x\nU8JN\r\n=ibIs\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@gitlab.aofl.com:CoreJS/aofl-os.git","type":"git"},"_npmVersion":"6.4.0","description":"","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.0.0-beta.25_1535052472694_0.6711640218380941","host":"s3://npm-registry-packages"}},"1.0.0-beta.26":{"name":"@aofl/middleware","version":"1.0.0-beta.26","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.0.0-beta.26","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"399e210b295d8562723166bf5f3eec2934697ba1","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.0.0-beta.26.tgz","fileCount":4,"integrity":"sha512-ARTIaNL+IeVZCkziWg1nMd/Ijkqwschym7Gtp4uTL8MHI3Vl7EK5ZrJ36lODf/W2+BgZycMPsWN+zHNV21806A==","signatures":[{"sig":"MEUCIGEghq8cU71uo6yp50row/l0atNfd5BTHdoshf6ytmLwAiEAlVEsYO1FIas2LnTa3XyvJSPI9FAR7Vep+uCh7g+Mbm0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhEDtCRA9TVsSAnZWagAAiwwQAIcMi/n+5GFl+uZgcJmE\n8cZ7Z2HXxB47ts20j14q/pxyp92zRbKOobZKIVVwd44ne4A7p3ajSXm9/t6/\nvaZFnpuOmS9662UQWJ+qPhx/5zvdcTNeAcnMIER/qMgIKxaQ8MfD+tHx7ICv\n1UZQQRC74RaMofu3+WWL/dCxvziJn4f117OOKsioTI6wzaYgqvKjCyU4eyQi\n06nukwOAXwu5C1uuJ5YP95uyqUReSyOu1nInopYG8cmPytMRP0R5gQ4HkuE5\ngEzWrGcv5BYg6yfJBjhIoXqmWU9EFOl8Qhl+sym28+BVKgfw4NfyyHELV4KD\nWU8uG1Awd5XLRLEZkB0+0TQN4I4ZJenkSm/7qOVp4ahKBmRqjUO9mMqjcZIF\n9SAq9d97rK9jR4Sxran9Os8wnSauwVVICd38Lcsp6WFE0WnGoibPu++fnPyW\nJT+7peQEj38gbREX4PoJxnek7KNZnp9OD+bqigvMirWK+YrlE30ue7Mc6MOa\nb5qZwYabgVTvxjBlQas0AftCtsh6O3rUk7Wk5f1ItQkrCPlwklg09SI2/LTH\nMPfPQmwtZEM/Okvfucu08hn79JkB1w9VtSCCSUnFA5kOwRoclPJ+WCHCO+zZ\nEZxViQE96rr3FjQdX0KIiu/oDCrd4JDqaRcBD3S8lzFAAv1cIiEK7na/ece/\n+ADa\r\n=wpn+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"ERROR: No README data found!","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.0","description":"","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.0.0-beta.26_1535394029148_0.48883035028641375","host":"s3://npm-registry-packages"}},"1.0.0-beta.27":{"name":"@aofl/middleware","version":"1.0.0-beta.27","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.0.0-beta.27","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"09a03b65d4320ad766aa0947547c8479461acedf","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.0.0-beta.27.tgz","fileCount":93,"integrity":"sha512-bxhYtKtsy1XR2G8V4t4o7Vbrakq4HSCd0eOMZNKqFFRdw2Mx5QRO7OWFlIh9dxJT/GEhuoUwjXJ74LB+Qa79qw==","signatures":[{"sig":"MEYCIQCXc/UMnoGUkPblCYzLG4Z3/l1cmWWtCWOZTYeistXbnAIhAJqsGZVyyjorstJDhZepLS3WMvQoXnIaAzG+X1M83HTl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":412428,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJblwWaCRA9TVsSAnZWagAAVWwP/jUVR84yiiwwWS5kK5e/\nsG6xZLX5wdu8LWz3qMAob614UVCAXzqIr5mkDzsk3iZpGAdG8IFjvEkWyOCY\ny1AQfnoSDiIJzziMF7Fzo0zUdCsZutUbX+3oWxO/GrAZGdGMsKLyzttZBiGe\ne2GXIjtPiQ6Lxzptk6t1GxqBIvvFZ1czMn/R5G96CIp905l1piKBIf6Fu01q\nOVaR1Dk+ymsmrPXjGhKzUIi9nqYmUAHeEjugRUYLpdzKR9OLZ0N48XkfgbJA\niG0qCinRKsw31ATvVBYNlwghdwUjyVa8RYrWv+2JFc4IG67IeHhV6/zAQwKA\n7IOkVa3wEpbIGaX4zl83Qm/WX3gJnruKBgJ9SokqxkrO70Dg/7fnV1e//bIG\no/MRjldxfErUEqKhcOEMTKGkpHaJbPg84S7FMcV76E8DTAHqJNn/Ryr1PDI5\nsvdilWyf7z6pP5A6qiaRdfw1ehuTup+wxHZSPHgz7a1RBDk7ippQfP/OrhbO\nwwJVnher2XZr3pwv5iDG/aMieYhUIB9yzcZzNUCF9+wM1o80kkJ95YMkbbI8\nUeZPRrkkr9h4OWSbe52JcNJRvDG9BOC/9teyjFgHrcIqHfSVFG6lDJKDrXbN\ns/A64SzEnRUiw8ImBcG7OrRMX6H9c1oym7YG0Ezxzk9QWngnxuzefALutBi8\nrnGw\r\n=Bfah\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name               | Arguments                                       | Description                         |\n| ------------------ | ----------------------------------------------- | ----------------------------------- |\n| use                | cb[Function], hook[String]                      | Register a middleware               |\n| iterateMiddleware  | request[Object], hook[String], response[Object] | Iterate middleware for a given hook |\n","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.0","description":"Simple base middleware class.","directories":{},"_nodeVersion":"8.11.3","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_1.0.0-beta.27_1536624025245_0.42891855156722447","host":"s3://npm-registry-packages"}},"1.0.0-beta.28":{"name":"@aofl/middleware","version":"1.0.0-beta.28","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.0.0-beta.28","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f5e9a17d429bcd38379326a1144b18499ef26aaf","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.0.0-beta.28.tgz","fileCount":93,"integrity":"sha512-Th/qOTWofC1Ldg9DIu9TrDuvkeTQmP+9ES/mrOw6iHeU7818WWnKdPbN582oKi8suYd7N4ydIJj56xMGj9BVgQ==","signatures":[{"sig":"MEYCIQDVReXxBAQh0XOzXy02YaT+1QnjYmlfGREOgNb28t7vOwIhAJ63Z5KOyyAT1wMv7FCLI2lpJAvSQaWeAN2nGz5x6MRh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":412428,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrXWSCRA9TVsSAnZWagAA2ioP/2E7ZIDcO4Onnx+Jz/zM\n7yCO1zF2deTYj0kV2Mc8/PLPfSqM5pvaq/QRRVbsY803/FJkjOG8HKXgo9Ix\ndPUbiSUL9j95s+UJiWE0vNAPvEQGmkO/Cooq/L1ud3sGXGlUIuHUP5WXlL9I\nHw/PU4J0EEOVBXPFVBH9ljbqjKB0p+BXjQ17ouoae+h7Yh15qI5E79wWBkSl\n8IsRl3XndvoXOoDHqD+Rg5Rhqq22ZSG/JDHQ369MyDT5nUTFtIw2ldzDVYsV\nS2+C26s820xjEyC8K2aXiN4Q325VRUv61rrrMgl15ct01ttcpzyxKLY8BVAu\nKSQ2VxuIhO/Avw5f3pz12LUD7wQWZTQWMq7fIgxmGnX7/iL8ZTeseF5q6HXO\nENPqA9NLBKA6Q0DhyOr42RU0rGKZM2KSUWiX78bdvHASIoeIYT7lNgKNATTT\nfQkWmMDZo+f0m76x5GqVlMue5wjidbquC2bKbRTSD+wEQ6cwJmz/VpQAbY7m\nilrBDbln0aGEcobyZk7GOfD8LwCbGl6kc1r4DPSKoMd7wDtv0rbp88S90+yb\nz+1bzxaLgrmNWsdP0iAF7ZcMU+wV4LyUggWrUVEzuDDmiEI/3CzPb4icztlI\nZkSLvcCHS1nWHqss1kqQJeTnEA74OOgxcQ3q0jS/ksou6KNitd+DcIdl5/TS\n5Rb1\r\n=kCp3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name               | Arguments                                       | Description                         |\n| ------------------ | ----------------------------------------------- | ----------------------------------- |\n| use                | cb[Function], hook[String]                      | Register a middleware               |\n| iterateMiddleware  | request[Object], hook[String], response[Object] | Iterate middleware for a given hook |\n","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"Simple base middleware class.","directories":{},"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_1.0.0-beta.28_1538094482089_0.7477750531926548","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@aofl/middleware","version":"1.0.0","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.0.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a2848c7fd601e718aeb21f5dd20e5912ff4d1797","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.0.0.tgz","fileCount":93,"integrity":"sha512-QETNOPs7Y3Ah98yYwvlShcE8oa5YYu/FgnAVxcVitLKGHBMMbQ3A3GIR4wjb1KQlLJ7/yseTDm8mQYqxWhI+Og==","signatures":[{"sig":"MEUCIA22pXdsMUGpq3Ah1V+m+bXcwx6IT0dXwFZblSjsMVtSAiEA7nsMCvB8L+KHHmwV/7skltrprQ1pDcgpFmi5DRwwfZ4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":412417,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbsAR4CRA9TVsSAnZWagAAi6QP/0ZuKSoEC1vFXSbDqM5S\n5lZIPNwC3Sh8saHbbT1wam9WQDvrtiIps1xW7L+SXeXh51DV7IBGe1M47MQO\nHzE7NCHRUhpDiQReMdk4yw+jr5LUc1TV4dPTWsP7H52XB6wrvLI1Y2v2pqr4\nA8CGgKgF/Ji/qniohYZCSIzK0nFc04SqMpa9LLMBUBPr/TGvQcOMijmApSMx\nvFUZHgGuLKcJBw2mSRj+xF+01xIP1j3AlzVAE1u1Z4r2pZzTjsX0RXau1JdZ\nGkrvz0aotU5Zd0TeULuXBFfmkIRJ3Yj5vXdjhcfIg2pQyuP+FfllGt6q97lo\n4JcGnZoI9GXSJiREjluX7knZ4B+0u6y6iWhf4puTmVGEhHXhdO+vO/IQFKuZ\nQMlUxOuOrHj7cWoJuKvWm9gKkGSC8ZQRwsxb+cHUDZWFemmtP61bWP7MTCHD\nUzyO5spYbY37chJpwSVxg/bUcR566kCe/tTrsxV1sARjZKBdoBVMDlOy7dVG\nG5st/S3lSYi12cVF1OHYIKnasDSYaF0URFiqsr3HzBaFo9E+KMhmiMftwsV6\njxRGTJqOk1uYxmSXQ2kPFTpGDbHi2eJdEGkAC00Fu7wm545CDUlmmFFseH2T\nhHpmdTrV9BEnqy1KpvT1XtyUJcKPuYKQ3b2q/yKTXY29FF8hMZJ/Iqq6ucKb\nfR6L\r\n=RsWk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"Simple base middleware class.","directories":{},"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.0.0_1538262135604_0.1839249684695652","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@aofl/middleware","version":"1.1.0","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.1.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b5edf4f0e590f2580ed20111fd4dd18c1731b4d7","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.1.0.tgz","fileCount":6,"integrity":"sha512-pSNkzCIhPcgsSKM08VX45UZWUvFmpAOPVLc0x/a9S8DFLyBGEsEgOrTAzRhk+8pvy0rWWETxq1j6gbqok6e5og==","signatures":[{"sig":"MEUCIQCEb4n7wySh+ujCLzhLA34lYClDY4GCvcXfmBwGmK4U5wIgXX1Es2MUwX+2B9c6l8kRMBFKPh1zjSYXVrZjS3RW2NU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5532,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbx7dxCRA9TVsSAnZWagAAqAAP/1yHhQNFjvwKF6Ev5gy0\nSLFA9qlhGSsLFbwloWYpEodKjSu+o0ycqTy8ur9TW7ZKuSgvAInKB2LBB9pi\nBlVBINPGRFwCh5+X0b+PV4kQM7qa6pe8ZNFiHDfD+MbP9CF/7R/KWrfiacE3\nbpIlEveGAQ0nuoLSVisbBh+4VBoFdA0/rH/UYA7JrFrWcNaBfJALJlon/rMZ\n+ALp919SMn0hFnUqcRSW6Bt/PX3X2SOdkLKAEsa+lnoXkXAoeYoY1HqCLyu4\nZnKICCsbZrLi6R0ZDc0gq3hnSAacOMVPmlSsSDJce2HwlHkDI0U16JVRYFZY\nh2l71CNkr0a7ky8VWBvy59aXymO3HrUKC1ly1OfcbPhRcqZJL1VyEuV/F4ny\nyXlGuHQe/vfYV5V+YiTXV5c14d9J6IQmScjX7Cfyx8ngKmPUEDspvE7aTwmo\nVn27bWo+IIxGsqcW5kQz/ct9ut6Bd0DP9A649eSqV5vTAyvUaoCUz7aFjpBL\n8bQMFBZaD0kfe6pfoYxS3E6zk56zbUro7B8Hub+IO1QsrPMNi2mD0kXLtqqq\niB4hSXr9m4NFLNziF4dFHff15YBqaqqEILwfEaP4Dv1KD76PeXTFXoW94UdI\nMCMbdE3OgGclr5vmSJaXK0oZWeKoGR2Iuu5lHJQUjI66IWqGwEWixK7Gk+6T\nRMWs\r\n=vMNp\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"Simple base middleware class.","directories":{},"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.1.0_1539815281044_0.5109000011332472","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@aofl/middleware","version":"1.1.1","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.1.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"02239de6a5512127340bdabe8c0e956644ab84bd","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.1.1.tgz","fileCount":5,"integrity":"sha512-FAJDeAW4t8ba1vH6IYEWyMfUnCw1nHifHr1kK8mm71jSgLjQdBKynNjIy84wls5WUcBXJQadGVkZ153RbVIVjQ==","signatures":[{"sig":"MEUCIQCVqkVkCwAiAu0r/xV9VzidRMNikncN0l4AS/Oc5wwQTQIgO3c8TWoZdwDbMXhofZqGeHGAkQ1kpzk1pv9ZiZvHtZw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5028,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb12DaCRA9TVsSAnZWagAAkC4P/2rUonbFgBerPzgzAXSi\nj8OfFYEHmvHBbT5eytfq63kmEAXL0IjsnLz36GGnlvb405jKBf+XA63AGcK8\nE86C1a5/1YcLIND0boIb4NL8149Gc86Lx/ru9KdiV4xcN/G3xxu/K7FibwGo\nNyZrbMOKPti99BJKqr28mnFLyIiSkHI4oJoaqa4l6FulZ2MUxLqod4WF/rFy\nBejqgnYohRL7YYounXSlqSopF9Onpps9FQ3S+gcWBb00Lt7ApNeZyIpQvMXu\nje1OGQ6AzLxeLDjp8YOXAaHlUudXRQmWLvIGVsRUOAOomyoUOjWBjnXx+8+Q\n/Y4zmC1iLvABT053PImz0pi0vlyglfy9WEIEuOnGj2HKCUBjH9juYN/YIms7\nt81jBTMhAwgg+rMrhvjwVE6hYygPwjoIDXWmAxAWlhHaK4TsaS4huniqWkTZ\niKQcdHcfsQODzxulHrony6YfXvvfldh+aYWkDTygSUqEgafLZ/4I3O45X9qd\ncRs1uYYODFYxXGqCK/wf0YbQX9i8k5VGW4WaOcXRj185V4XsSb6Z5T7kJo7x\nACpVXubYsJ6Zc4E6EQkCKD5C8rLHzhcPcHW1tvFghDiUj3R/vfxhHuBzx/vJ\nUDzEHcJrwbBPvlEO93sK214o1DJGkXkiTPMgqdiRYQbM+Ptgs2jhXZ+dVSmd\ni9lx\r\n=+Z82\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"Simple base middleware class.","directories":{},"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.1.1_1540841689623_0.3358728285520838","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@aofl/middleware","version":"1.1.2","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.1.2","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b212b703578a22b5817f541df3379430b7ea2143","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.1.2.tgz","fileCount":5,"integrity":"sha512-G0NnIxsfxY7JCyrU0EMkd7Wy6C6sZPQEejfTNQ6eVVrNGOMurocNtKrLyWQfytPaqo34PQmohBQl0d+2ehSfqw==","signatures":[{"sig":"MEQCIBmVlgd44K1EyByU8Rv93NKFyl4xr8nATNmYwVkRVWm+AiBTe6qQzTwgsk7t2cuG3DRX7pFEUDg2Nig3FkkOVjLF4A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5028,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb12DiCRA9TVsSAnZWagAA6JkP/2i3dWTFU//F8H0v5o/f\nJRKS1jBLm4Sg4BALgQKhZ8StQ01ijWs2bONHgXl1soKXMBECaLz4EsbpgM7M\nGDbxG1G7IKJZSmf0S6odzPKjEkxj1n6YsPaWRJo+ceV/XuzWYMcBHtHnj15I\nCTKG5Yxv0SAg4lTdSmiA3CBM+d+RQEQ86tyd5q27bp+zYzjufwAhkgShKt5Q\nniHGgJmDLVtmj5XIEwoT8djh7H9IBsRm1n0CbVW68pJ+44WUXgH0bDuACuKv\nfDRjPQ4bdC/So55NdkTiZVh6MPlU3KlkS9p4LHPX1kAuoVkYWsUhxyRkHDfP\nZ/PAdjEoQMmQPn6u1cEQGS9k5/mBwGLLNOWc3hj3a7HuLSIQ+FSqXuc2RBeW\n9Nx2DVjEAI7+J6DGAHOrbed+06z4DN8SvnUU9B4V1AskWANlhwJTUXHxQ1jp\n8LT7w9SX8w52COE3lAz8MJZngPQo+/5DJjWZeDOd/yy/yjrjYChuwbvtrX31\njp3A1xUUHD2LNeGi2hQBzFnjIukcYCzsN7Yc2LkbREB6nBIx10H+WwM42I/C\nj/CBMSMEtnI6PFYhmRl4J229kZb4OuYN3R/NAmK7e57AizYKt8AYVJGLiIPG\njhzrVcQI96Nw7KMNPN3TmqGtwaF3LLBFcs2pVoK5tODU/0BIjFh3GZ6lemwo\nslKo\r\n=Lvnk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"Simple base middleware class.","directories":{},"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.1.2_1540841697995_0.45164986576358546","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"@aofl/middleware","version":"1.2.0","author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.2.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"fe2b684d60e2060d4dfcc8185cfdd0740e03c3b2","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.2.0.tgz","fileCount":5,"integrity":"sha512-ggXV9id62Gu/UerXBA0+QlVUUSxv+i9dkWfN84iku+2mRizUiSSdvm5UFgiYiLCA304ACAMHWLKqcudog5b3mg==","signatures":[{"sig":"MEQCIGtoDWNqTrjQyt6e0X1J9v/IAyCEDgcOtgatpnndG9LjAiBz02JX4BqIQLNropLnP+GLQCnSR3MYx9x6wPfjmwmnWw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4996,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb4f3YCRA9TVsSAnZWagAAivMP/ioUZwSx7sKUJDALr0Dj\nCN/Msw64LKrpeOxPm/QDMD3MJ69I+QWk2dY4sCxXQw+1dbTud7NWy8a2PiTX\nsT0je6B9x1hOreoMzzfkOV28gpzbQod5DXamn9P0G0NnMAM5zkpWDb47x7p6\nqdWj1EbOO6oayjNbXXehhaUxwZaL93O8ZmloFHtPyL8IIeGj0xMyZ6gvQXqU\nUFRzfCUdTIcHp7QG5/HHJc9id3fUVHH9YBKAHqOimKjMe1UxHh/QQMzci0yY\nHbRJORmJmKT/YWyZr37uTELzqXjzNLgcUkpqHV4/SE9E3gnFHpOkbs2DITVh\nCMyOUSgiCCZtxyx1can3aYKTQnXaYt/vu42wU2/j2jdrYbKWSji1YCeCGFRB\nDZhiQRXzs1vWJkO/vMRKPRNy4ZI2XtEiNs/6cXaUV5s+145OQmalGi0PD1BF\nEyztP5PhhQd6pmiR6Qt1TMIrwKsxwRqvIZIYmi5zQ7SCazLGbhsv8LSctfkV\n2hQdodektMyA1QFlrRhPnzUeWNndUDMUmvNWm8p2Idrm+9m0BF327JLC5yLD\nB8V/lsK2t32XGYFV81uU8boRq5CwZMdk68PGaZpe3GqvXSCTcRXTILs1GdDN\nT1tXqdj5MskVdCz5L2gxvVOdFoohxBlS72+FngciDcvV6a4k15D8G1R6iOW6\n+qQ8\r\n=uVAO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"Simple base middleware class.","directories":{},"_nodeVersion":"8.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.2.0_1541537239610_0.37974541970577347","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"@aofl/middleware","version":"1.2.1","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.2.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"35cb5e1c92fc9072499cf5becee3f26a2b513c40","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.2.1.tgz","fileCount":5,"integrity":"sha512-Jls39ODX/lUxkuPJ5P7KcXesJAX2UqSN3YOhkH/EiSEq2EBq6tHkKqkW7EBvm6nFtgOUifEUsduihMwfakL36Q==","signatures":[{"sig":"MEYCIQD1fj6AGpHOU6biShY1PDxUPOZhzTSyQNJWR1D4zVjrSgIhANIXjmyKx9nwm01rgdZ2puRhwjw+/OacORwLWLfn4S98","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb8dTGCRA9TVsSAnZWagAAgaQP+wW12LI9YD1ewUfvhVBP\ndviAvippMom4oaoQen34ETX5PA8tjjAHPaVvmB+pqmtxJgXDbuzCduBluSx2\nXfK0LWEHEucqLcxZojRg+zJCg61hzxCBa41k2nMuqKqgB/2rNR/NpcD96dFK\nU6NApT/T0PVjQh/Ri5j2SaWnCoZXjr936UyCo6GWRJPC2fF5kIDJxBW2se8+\nBK8529FSA86VLIuXgHq+dJyAVDkLnCFfIin44pvE7eA56zIXvKL341sDvZ8z\npqIW9tQjjuoO6Js2iRV19q3R3RSdiuYxF7fbhLk93pAbNCLS8e7jqTMxnP5J\n0OzGPmTglfhrBDsE39nKlCT6appDBuOPVlrVjcXkMcmgVRxYbqNbqOZ0IceO\nY9g02FP/OCPA40aD4H/A0MA9UwXU/sa9QqtrVWvSU4i4A9pZXc8WrCuQwfbh\nv8M1epIhuXm7OtQf7f1O0bYSqeLEr+D5PQyx0jynb46s6W0/MbStMxogm4uM\ny/ecR6jbFexePGi7In4aF+gg2zN2i8bhiuFbTlPvMycY7dTAhxDhDrRk6DKt\n0ZkGArYdz16AGTLICss5bzrR2XBanMoRzPH72CXcwU3h5k4jGiSpZH2Ihch3\nwIRB7lMZsLuRaJoZUzOuPtagVv7TkarNnogrqPfHW0gi1y28cKQClBiOVy1Q\nfe3c\r\n=aFdn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.2.1_1542575301446_0.9060534386423165","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"@aofl/middleware","version":"1.2.3","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.2.3","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b0be2af1b8786c411f2823de6d5995b5ebb0b021","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.2.3.tgz","fileCount":5,"integrity":"sha512-7mQW0g+2/GsStTGmwbLx8zz1+PY1glK9LjIJiHFeDVzDr+5+4mBC1K3jNzsjWcSPv2ydgdZsABH6sg8rATiL/A==","signatures":[{"sig":"MEQCIEagUJacfCQzcV5SPq3XyiDFpvR1bNkXSLHaHGFlnGHRAiAIpylRjCZqYAYRg+Oc+L8DbrnHE6gBd1gG+CifhR0W5A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb9KL/CRA9TVsSAnZWagAAXWAP/1ELcM1/6E1u1rzJqQtU\n07UZwBHQYC+vACoWrIHMzwzp1wEeT+YtWJ0m5XQd4L6G0U4+Lgmf+afBYeRH\nYSxzGdgKYvnUUq/3PKacYflHM5Ycld4sIst5+lCRaknOuunl6lMpBoPMllsO\nQTCexgdvlm1BbPkN5civH1bsunJ3Ez7OdrQKJYfOVicw8spG2+H1UdGFXUQ+\n5D3+SIEFheOfYRYYabXpAxPxIcpUxVb+6j//uQjBBCLJT1bB9dn9U28iYwIh\nt99sbYeXe5sUunZxcimI4lvA4svb33qzNj6v0/fa585o2eYy5rLSm1n5OwyK\nW2iefTKDD4sf8hcqesHHXq+aqaT/1PiZCh6l1OHWluNZ7JVN5Bng7wvDUciy\nQOoujSIAAfevhNqs8fyoMZFVOrzC8f38KPczjXfFJeYoEel9xhi4CiIcTCeK\nI30nji/btK82f4e1FqD13LFQyTCJumQ0vq7Qa7fDp+EAdRi7c8tjQb33mFAl\nXwqGrCR6TtqqBILUDZDsSgkR3nxR06gr+lX9slw4moQWFsuBWsbFQ2WLJqR6\nmiyURWqzaFssVAmk0gSTWoG2O6QgfQZ9kXzYZNn39CgXe3+mtjPQpfKtxyND\nmAQexhiyb99p/duXCAiya+wpB5pGDMIZyOIR4lpNEEiZM5u+vX4/RBElahKs\ncTfA\r\n=wd5H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.2.3_1542759167360_0.8884635504524059","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@aofl/middleware","version":"1.3.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.3.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"c2a905e86e17b855efe9acbb48a2b9a29ce2d9b7","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.3.0.tgz","fileCount":5,"integrity":"sha512-zjz8oaJu4yKq/F9f607vY+RafuWLM6I7momA/MEcpSvunecX88hepCeqomGpEJKkn1SATSCClA7g2SDjTYjRGA==","signatures":[{"sig":"MEQCIGRHeWmPMblZoYIDmhSlhkYy8M9W6dUR5F2SwR6Gmee6AiAy/rYmoyi144oMyCm8BuDdunkiItc4vCFICEJvpmRrdQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcCYyeCRA9TVsSAnZWagAAlIgP/iISya+btN1MgO3G05ro\ns2c6oZmi1vmJeODY3hGB22WXjWW0vhDQr+fJcznASOdu92L+0nrkXeIYZfQb\nbmmB/7e/+bBQe2Vc1RUdmq2B9g8BTJWBW1XuahB8TgCHRZJ8Dqr/jxFiDFlS\nzMAK8BZ3jBzvxa0Ksuc0D1a2zxqVtFko5nTjK7iAEoveuTvF6O9BdpdoqKtT\nBYRzfgeRSfqn3/Xv8EQlpV4nUTfjs2Hw8MTfWMrX57XnDr3kvLg9IaiQpfv1\nhcFJnqch0ReAwsUCCvrbim33lefyvC67gEYNfKEg43SC/CSQkSu1DdAZwhKk\n2JUuIvVqfG+JUbbyNK0010AiHTj2SSN85gML3lZ1lcpMcnoPGl5+AT8S26rR\ndQlYCIn/xUe2WUp0FrpiEZo/L+YqvWI8URBYA6Eth3jLszBOzIYVI/oB8Sd5\n3H6TZYWJYwzbohTEoVUNBisbQ00A3UPqeD0Ha5+Cmv096S52S3YtcBHQf7Hw\n10QH6p2VNZAFJHQdrdkHiE5qqdNrC63KQKUq9PJR9LonMRvN4uTSraoaJoAi\n7U7Ygvu0cWAm4YpW55Aiuc1z8m3ZulB0cr+Df1RCGqwKOoNHGN8ptZ/UlC7m\nqzcdOH86qmxaQDhc9+pOZ4uJIF4CXpLZrZa+L+MhvAJiAJ3x7zD5WCGw5bdk\nRVnQ\r\n=FsY4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.3.0_1544129694178_0.1349268975608633","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@aofl/middleware","version":"1.4.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@1.4.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"67180b3d16c9125cd9f04db96baf76655f481aab","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.4.0.tgz","fileCount":5,"integrity":"sha512-iWTJkuhoM1/z7tJz3a32EOlIjuqEoX+a7RsESCtR/SGTWeTjYfJQ3ByHh3wjHnuzdqjWVdW6M4iDJSGPZmkNhQ==","signatures":[{"sig":"MEYCIQCYSeoMu5y0ZtLF5VyBuxJbiOyatrQgAGtD/X/l6tW7EgIhAKxSyYS7/PcGZaWtRshSlLktSR+0/gueligpNsz0ysRy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":5210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcJYzpCRA9TVsSAnZWagAA+iAP/0Rr/MNtya+TyzUyF3Yn\nqDz60nzYEUSdP/0f/Vbgf8itQTIEDlCcx2E8JT/UmOY9+zOYzaFWOy8H5pcB\nkOH41g7jZKuon6wojhFOQlo0ohGKFramF5buaALlRol2Y6luTVzZgK9cEVAu\nfR0nRnnhe+T6oSrR7B+E2/WKL9Z+B+2VwBH4V2moHxl1GNZGFUT8/ADW7czA\n9xwm7txahHTQRtekuBT0PdooJdjxUakg7TOuTBZHyJaMuCf1b0fwHgIkjYGT\n6Tv0Ca0bfOCWn7r0Invhho2pw2POybrj6e+U+4J+v3NhAtbPO08P37vqb63H\neztOrAhTt4TWS7M78iAWbhW1cqwmgReTAg6kS0fsSomgVkZjBZZ6N9jElyWA\nvNOiEKWpbLv9bXAtkuCdEYTyhkHAH3VhEBev94R6RELAjwoZBqZctfp6yTiN\nRIIwIADukBaSJEkgTUPaeZnNBPfcqKQ/QCwqrDEcUYTD4/cBSJUOJY7JtUdI\nkLwErUnnG1JDNHQPM/4S+UUbm/jHv4uUors+EgGovy3AeZVzWBi2eZacv87J\n3iRuqtL08nAAR7UwEJZ7bpBiGRhDwWCdx6L7wqB/OCfZ4bp5F4+T3iSXKVVz\nEpaTwFeT4B8Ivw8W7346TA+gTna17jAj0pLfj+Gt+IQwhk/8qvH7dfpK9wTy\nZppT\r\n=2Nwo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.4.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.4.0_1545964776748_0.9423334777218173","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"@aofl/middleware","version":"1.4.1","keywords":["aofljs","@aofl/middleware","middleware"],"author":"Arian Khosravi <arian.khosravi@aofl.com>","license":"MIT","_id":"@aofl/middleware@1.4.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"},{"name":"bill.salak","email":"bill.salak@aofl.com"}],"contributors":["Daniel Belisle <daniel.belisle@aofl.com>","Micah Blu <micah.blu@aofl.com>"],"dist":{"shasum":"121fe95ebfb15990bbc3ccc926f9095a32e0048d","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-1.4.1.tgz","fileCount":6,"integrity":"sha512-Ce+SqilxvW/CNTsn1WB6zU8Qsd6PRctY8Nw7lKmWtg37KK3ckSjcsRJ73d6S+oRpk1wySkIGpwn/jlWuUjKwTg==","signatures":[{"sig":"MEUCIQDX5Dql+4hM2PyEGJJT9nhgxJbTxXP5ISmT+SCNaYnyxgIgOcTMN3YOm10WKtX0ncaE1n/QW9MKkUSa586TnV4z2wY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcM5toCRA9TVsSAnZWagAAp40P/0Z+gMCcRXg7VBa1L4bj\nz+LnEElMKXs2j+zIbHtZC1vTdqOo4QulXrFTIyTaW1A6Pt5fnHDM3b/HxRSy\nopU7qAoDxtx94nAMgdOypFX7zUO348mlSOxbjisCGruJhUIjw9gYOG5tc+fc\nyGUqWOitzFHsyOKHVwkEoBNUz2mog9XKWI023rNN6lbOWIcKYTjuY83FA9V/\n4QCF/SHcsBIRPFnDPIZrkWGH2vVrmQ1pV21d1JthoW4ExJ84OU3HKcK+w/sw\nRf+aunTw0zipC2bUdAboEwoUylKYPIIvKlulUUc9axP+MdFlHFVF8ZTSgFOx\njaXuyp3MJM0OWwUE2Pk4I72M8VU2/bIBpxeHwCQ6ogfltujXLr8mDQAIA1QB\nNBjjC8p+4VV8Sley7E8052SdS1WpM2LIEQKZvmMOI2Iolr+vGu1JTfLeDVFY\nNMKLydRoUUnDkvkrYpNYikwbZ8xtY7cSdpfe2QWgLZxSY/xtMV/h68S/e8Ws\nVu5xgpBiazTFuSPqYMMCXpkSZo8+1u25a6gSrzbTHiP//6RXtoO5fAEtD1uF\ntl9bNq6LcaQS4ptZy3vEvHz3wyF+8+Q67UqrxwhzKMchNP8YEmw6tciU+rP5\nOO3NtkWnZ7v8TyAOGKXqlH8tY7aGp/dvNkZgjhs7bO2FzdI2rOmaq2IO2NM3\ne/mA\r\n=n4sJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"60297b316858cd061ea1c221a7e04406b910ef38","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git@github.com:AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.8.0/node@v10.13.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_1.4.1_1546885991819_0.2830422319675945","host":"s3://npm-registry-packages"}},"2.0.0-alpha.5":{"name":"@aofl/middleware","version":"2.0.0-alpha.5","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@2.0.0-alpha.5","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"0ac9bf00c5efa02c1693e8d9217f1e401c79eb21","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-2.0.0-alpha.5.tgz","fileCount":6,"integrity":"sha512-oDzWNcZZm/YlyvZlJbKUN+tchJuiMSJFHgaiuSS/hswQR/Em+0Nu+1JlG/imdsG1Lj5UqLCSLFY2V1MTigmpuQ==","signatures":[{"sig":"MEQCICDfPmGHzOqanhqeFnNX5GdNchC+3570n/UJeoisnL//AiBIZWxt+BQxTiXbmp+tkiQUQO65VTbabJtJY7nS/Dy/dw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6356,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdciHCRA9TVsSAnZWagAAlm4P/2IXhTuoR/3dx9iqlzII\n2SrHZNpVj1nRst2wV7y1+ptbEURXVJXaH1SjFdHh10+vDrilVnL2a9q3HY6z\nV+wE6PM7KEz1hl/Qe0DlW1a3BUq2fdQMVGmQ7za6mdrOAjkQcs15d0T1+/hT\nv6zT5op9XCSBWNYcAXkurcMWA+63G2VYDoZdv2p+2x9ZgNulLRTFOi+9K1Qs\nU4B2zQAgKR9lQ98UJfBYq4OQYnFpakHq8GtgbGaAe67EFU3D7KaiN1GNZxEh\n3nK8UeKJHc20UCk23DXr7Rx2KmQz2cu6Twf3YxSFZD+n7vioTGXJK3tozSD1\n4ZgLS3eeZRRpUV+MVDUTFFJUFl4SIEE1XiHSN7tVTYzTBkDotCfbBvtH4OCF\nv8VHTamJJDLWEgJf5GgNggnh6f4iDqGBi6b78oXTkFFY3r7bkt0D4ukW8+QW\n9/rk9MacihbuyJgqoBsYMMj6FQfwvpejQhDkj0U0Ps6HHrHvifGfJXswAENh\nt8PR7EgB3i1rSVWuWdY0Q0K/PKQfOgTAXrY+2BCR65KLAmfHjFvqTlDRyh1b\n5KboOHRH8pVHH+yujz5Fe/boCX46HRAD1/tznB4gmh4eo4KRUZI4fLou0/3F\nUk1KiVKi/9h1tBQzAkVxKDzfq8ll68Di3fv0drWLt+fy3tSfDELImooex0EE\nbudx\r\n=H4WK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Examples\n* https://stackblitz.com/edit/1-0-0-middleware?embed=1\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name               | Arguments                                       | Description                         |\n| ------------------ | ----------------------------------------------- | ----------------------------------- |\n| use                | cb[Function], hook[String]                      | Register a middleware               |\n| iterateMiddleware  | request[Object], hook[String], response[Object] | Iterate middleware for a given hook |\n","gitHead":"00d91514e0c953e8cd998150ed5705b87db20b39","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.10.7/node@v10.13.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_2.0.0-alpha.5_1551222918676_0.9238324228411339","host":"s3://npm-registry-packages"}},"2.0.0-alpha.16":{"name":"@aofl/middleware","version":"2.0.0-alpha.16","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@2.0.0-alpha.16","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"7b93583def456dcb144e1ea92602b83cbde844c6","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-2.0.0-alpha.16.tgz","fileCount":6,"integrity":"sha512-QSmbvdBN9ujLh3wdF1/2pLXJed+tB8+k9AQrUKE9l4O89TFVzG6/oo9RQr1+3stkJRwJLG4OXBPsMzQg5+xYlw==","signatures":[{"sig":"MEUCIQDrlbM4eQ4SQzMME2xCD5x/YVYonY1YUMg6NcIw6MYMGwIgbVG3XoKiKUctR7/i/NaaDMBUfGzYwuH4GIDbEDtoNdc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcwhEmCRA9TVsSAnZWagAAGw0P/275HneEToWai1WOIoCZ\nMegPEReLZUv+q/VGEFUMWSTvWGMlBA99QBRUoYuj8cxjKTK7x4pUq37w0ipX\nE9hI+YZ4gUNvfaw5GQDrBXq/B8Are9JCcqN2v9jKGUDYFvK1hH0IhAdMqHQ+\nE+6F+TQUl6aotzXiGFWUucKlmdXLe8PupFPFQGy+X2xeiIn9uaJG4UHNfVyQ\nR7RKhVipMGOAxKW50G20hPfk/5UA2l6v1+aALUno/JDM7tTcgqxtc836B5nS\nIEfMruTPPsNR9oMLiV7w6tsSPh2nOPZGWqVv+bHQdW4Vz/y5llUT6o00Xldz\nwXQtyjtZja3LipxwoOJp4HKQF1EVRvGYZKoTpezv4YqnuikO6t4NHtcb+sGl\nHwIiEOiJrTDDeeM/0rm8hHLn8VFzS5hMuXjAmvoHn+GvjdvUIvjfqMt5UbHe\n8qOlP89W6MR71q0t2Z4kmW9zgCKucCSwY9x3iDQTf9Wb4l+sIPpdJlTYDDcN\ne7Oz/CXiRDnR+P3K7y9golTalMDyh+HPwIF0ujUmRDPnxLYHdqTk6kuvkX6z\nNxWPPVPi5iN8ofYsbG0sgYDXi+FeqQoMiSPQ6dSgs2JBF9pgdLa7X0+TkPNj\nejnEGOe8aS3wV8Eoa1aCKf1fjXG1BB41ApqFssXV7d9Dk/85dXUl28r5Kvy2\nLJzu\r\n=cN9u\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"0b6aa717a40d408713b5b981754243de8a8aeb55","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.10.7/node@v10.13.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_2.0.0-alpha.16_1556222245471_0.2064155850595646","host":"s3://npm-registry-packages"}},"2.0.0-alpha.17":{"name":"@aofl/middleware","version":"2.0.0-alpha.17","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@2.0.0-alpha.17","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"597eb14a123620a38651c73d9402cba8201b9368","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-2.0.0-alpha.17.tgz","fileCount":6,"integrity":"sha512-FAvXz9Ak7v/RXQj0Qjdqdj0X3g9ItPtwfX/v5bHjHlhezCbLp4Oo70ZEpsMvotH4FjnRj8BVxJJVoHmwzv/PCQ==","signatures":[{"sig":"MEUCIQCJxh+M8wDMWl93ELjewnFashZJ2sy7SAYEqBpoQRdLzQIgHg/Za7VKBz/7FqQWOIXtgbznRLG1bp33L3cB8GgVfb4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7601,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcw0+FCRA9TVsSAnZWagAAtiUP/jyf/l/1VcToAhnenmhR\ndqJcFgvgAbJZlJ+nJAjww1C0uDrsaMtPfMH6mvRyKOsC7Iaml2CBnEnspZ3e\nlQJBO3IQdCgi3rF5I0lzsYumOOxa0lRAPULNbM0tLgtWBSX5zlFPtFn85c/8\nF3shGaXSdsBzCw5XaXCHDSjOV1yF0XKMlrsRTP5s1o/aBCt/67w7Va31tThs\nVP8qq8krJfl7AM12+pe13tPcKbHtxLYFNmZnR6cBKvFFGn/H9dJ5izVAHu1A\n2cebqF5qvd2XRmZbfsST+xLx3XvAQqqGpjAn5cD1thy/Y7vqSycTq9hB44rn\nCBzCaeiDNUelSwRCCZdKcFty+qE5/0n2+L+Lwbz7ECZmLD1Iw3e8mPZTQnmI\nW2A9fQwYqyLAwRwbJxLtXirmJ23rL1klDhAUpnrOplUJQ4Anggp/UPIlzXZy\nkG21GHksllhfSgNxob3w8RC30cMsZEdNX121D1U32lEjriL9II5IlOZTJqd0\n8QAgsCfwhxdnBahGrZ//Fk5iu0XDAKvEGEg9zmNht3Ev8/+64MLXz+kV2fPU\nf2jXy9vFR00Q/V6huLUt6fqMp8391ws7es5O+CrSJuQRzejBnNibuoNcUiKo\ncjAK3Y7XM6Ov4+mLeUPHVFnkiwAIJFF2OmJ1FqoXKZ0qaBKLxRjCzxShMVSZ\nmA2k\r\n=SHO9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"6a396437dcb380ba2269ac50a5b3b88e54f99027","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.10.7/node@v10.13.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_2.0.0-alpha.17_1556303748792_0.6823942291408027","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"@aofl/middleware","version":"2.0.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@2.0.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"4aa69c154753cedbb48bfd3e7ce0d9fa3163a4cb","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-2.0.0.tgz","fileCount":6,"integrity":"sha512-s1ZT5T91m03yFt8Hgfzq7egktMphhspKdzgRiHVSDsyRo28HwUbZRQBZOHxyW4HmmVEyzNmknAlYkOpUNAuArg==","signatures":[{"sig":"MEUCIQDTS2GdJlT6oQPl5zE1nydHUV3ZoHME16KlwyYsPRyxnAIgUG60cJx9SCg6nP2nJvhHa5US4ujr1uJj0iYeZtLkuuk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7592,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyKKfCRA9TVsSAnZWagAAp5QP/irky4tpuJucD7U6dIEp\nVmh5o+EwjY0xr64u6xOH/9UjW1BBU3KkU+l8n2kDL1OzSmIVSXg2CeLLGUpb\nnDFwhCivObDNgXPKboyCJVlqx3XanXGlIe9SryMjskK1MPdJ3fUEDETYEA8a\nQLHyQxgSGwh7C+CRvbqVI8UdrraiUt8boW9YXfUItz2CyY5Mze1RmFlvtifj\nrEP1znEootU4hgUKSUbyyjyAZnZVDaFOfXGAmh2mUlrUBRhtMG2cgpU6QiKz\ndgC94Aa93JL9lVhbYGIO8xXha5VqYXRFhyoxEO8N18OuicRCFQBrbikC05xo\n6CDZbf96yoFGq0LAvsZ9PL2CclnYxjME9bxjBulYVeV9GEsTo8mXwCajvn80\ngQ0c9pqGXIjK8jkmH16zCa4US9o5WErNjQfpXw6UK90C4/1XnJSP9av/pEng\n0xiu5W1HxgCWVA0tmDL8esY2BRbPbhV7d8dnIC8bj38+T0A9nI0iMYD9xXMi\nSH5OiDYAdn2J4WKCxRfNV1XZV7SDUFOx5u8dwB7w9rpY94c6G/6a8kAaq0a/\ninx5vteBBJuJZUwh88/86N4uHCXQ80A2CL9ZHNIqC5dr/iO2TmtlbZxNWOCq\nskH8fz0cdrjLbBlckW/tn/Wu/xFv5RBLLuFyjmhaMY3hoppXoctvZAzL8KD6\n3idN\r\n=chN4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"91b9b3074f7031a51ce7afa9b542ff5dcfd64997","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.10.7/node@v10.13.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.13.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/middleware_2.0.0_1556652702900_0.22391388924319466","host":"s3://npm-registry-packages"}},"2.1.0-alpha.4":{"name":"@aofl/middleware","version":"2.1.0-alpha.4","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@2.1.0-alpha.4","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"4a5fd5ad1fa1073e8a2bac4ab527299037c4e4f3","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-2.1.0-alpha.4.tgz","fileCount":6,"integrity":"sha512-Z1htrmxAn7YPETnML/lhMRJhMgXIka+MpQtITY7M3h+4KXH45obXm+IR73tW5VNjwNe67DAaAuogkS9HlbFIcA==","signatures":[{"sig":"MEUCIQDQ5Lcf0RhLZXPyYH3KVWqhRYeKdCe2ylM++dibyw+ClwIgDg92CrGOaHZ5JXGYCfbveBu626cv5KutBiSEj8NlbEc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8201,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdN5PgCRA9TVsSAnZWagAAt+sP/A4cUB/qsnmNvgEkKqFS\nmjXv9+B/+76i8AqEJhOC3/GYPIYyxX3Z9NPTn1W/rzuPFN8mUafvCGQRwbja\nlZ0Z+4WMMvuDaoXUOF60pwSet7UQBrHNBnAVixcatslxXsrOSAmFGzPPf4bk\n1e5JIWManvaKY1WATm1FqF0AN8v9btzY01rnXTegTTXsGJZSt9wC7qeFwRLF\nBPM9de75IwX+JjItbmuDW1IL7jTTNlUnKuKjA+TugMErLSvuBftJcCjD8ifh\n1xFLX6biySV4cohAvnkB1Phx2KnV/VLRSMRo3cF7IeBR5I9IfGKB40JhobCS\no1guUXZv26IiKkAizZSs5RuUzpSn0opM8uYDeH+aXADVCKKpDtTDsshxqeCQ\nixkXtsvD9F1JgUtKd+d4lRssBbzJsAk+NLGMSYawez9XjcRnw1IbdNjA6Kxx\nUg7I8PSvQ8PjTJxoopMXKBkWQe2NOnrA8C/5Mukw7YdKVl5qSJ96Kr4M9VA0\nKuje7IPVuHBYbjMnY+7/4/UfhzmS29fKh/jfK+lCqVWUVyEhOJem42lcPoEM\nrosRdV3MhmRw9x9U3u/vjYc6iyR6b666RFzLtxaDxMFVcHCKvm2ZLzRwE71x\ng1E/95m6A5sd0GOc2+gpiWWBIaKEi8bZxdmt22cNRTaN5i9QBg35nP2BPB0d\nX7hC\r\n=U+Bq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"7c4ae57824ce8cec4984c32b93011f7fef10e1b8","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.10.7/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_2.1.0-alpha.4_1563923423970_0.11065199115023105","host":"s3://npm-registry-packages"}},"2.1.0-alpha.9":{"name":"@aofl/middleware","version":"2.1.0-alpha.9","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@2.1.0-alpha.9","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"7ba1a3e4abdc53cdeaed6cd70aeab02d25be4ed1","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-2.1.0-alpha.9.tgz","fileCount":6,"integrity":"sha512-YDC9CDb3m+mGfEsF6af02215n7/YyW9xjNZDBvtAawKQGGgwEzTxIkBsLa9HhQU31VEk4By1/WarD5ggl4KcEQ==","signatures":[{"sig":"MEQCICp6jLgQZvfFDh4T4F9hr6RfV4uICmtPSg6yesoze3P6AiAaUHL2LkO8ECvVhy/SIdO0pw9oUFKjOg5SMY7TmQlbXA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdWO2BCRA9TVsSAnZWagAAXAAP/29DAL+xvhJDH0iSRVzU\nzhDRQOBpntroIQNfVOzBepjb2skgm6l19kluGAQL6PloRZlmM5rk7phHjAR/\nyZuHVvhu5Z0Kv3mWTbtDfRlsWSn6uqYI8g2KBP7YA8gXj4sQ8VNOhR1lBkQT\njxGPY4WYxyKDYF4O4Q3ko34irfPBNtQWDkRLIONnBzccHOALf6cjB21sJleN\nz+BSKTW6J6WthPlTaE+t5kuUHoCteksFDopcuHC56H7aQoglsJIOMGX5VwtD\nuKte2sJAKeMjLAPP6pH52VZqmOmK8oj7rnlX/CLay6t2FqxRKmqKx8EcyOxg\ngqF+5cwqOunpX8qyyo9EtAkDEdfHXvLYLwQHPVlQpCNHVLeVvw96k9hGpzff\njsWKlYwGsBitsbrdvizhkiWf2c8JIzPzRz1evyDbrn0yWt85Ub/4Zak3pT36\nAvvQrTJ7g8re1HStNNeqHSGbDnb4TwxxX3PVdL3HGClPclmzUXZF0HvhO0AK\nVA1SjghDac4onjIE35hkN8RexENCITkJsKxW6dkjXIjHEJXqiLYgAQpZ/6k6\nDRrhayvux1jGDEyasnTTEjrUbF/1AypllnPRrg7uh6pYaMoSwYL1IVLuh2Lc\nccUy/so3FxqO77krApIuckawePNgo3RNMWmG4AO98YQN64mUfCLK1fok6/QR\nGyhE\r\n=ar5G\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"9dda0de8d96eadea8f7eb7f19f4eab08fbe611b5","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.10.7/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_2.1.0-alpha.9_1566109056597_0.7561392088406886","host":"s3://npm-registry-packages"}},"3.0.0-0":{"name":"@aofl/middleware","version":"3.0.0-0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"01537c32891fe09119761487d1b2a7113f73d200","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-0.tgz","fileCount":6,"integrity":"sha512-4zA+LgN52xBiNuJFGOq9dQMOpF8N7G3FuYHfLezNdJ51Ok6NnjQMdbT/v4iCSPVFfTWQh+LCtm7DGL4CDU8DOQ==","signatures":[{"sig":"MEYCIQDU+ubGj1OT8G3PZqih+DFRLm7ugMcaoAAngtnzf3NI6QIhAMKLYogr7YYqMIZtxM14vCYFN7NR0slQXcq0uAqc9/QN","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgG1xCRA9TVsSAnZWagAAr68P/0ZHiGWdHdxItd8Yw23L\nnF6NwtX+H5rOFB2xoFmlTzyhsaYVMAdm/KjpgWUsFrs6Km4kwXDT5Veg7PWu\nmfBPlH1q4+WOJ9ce0HGhj2YCZNRD0HPjApH8tcft6BeS9UMUhW0lWvifauoQ\noRjuq2LPj7mDevek/uzQL1MBYluG+ryADMPPe7y0H6lNrQT7cuylSpZkZTqI\nDcTHxC4CRcGeSv1sO1xvejgF6t3mb0qXUEyblmUt0CtXPZ7YShePiNRelFec\nrsG4CtH3f6dZFFqJ5QZke4+hdJDWnaRqqYR7FVF06eUy9vhC6ypMVp/kWfiD\nub6VhC+SdpTupI8OutAZCps8MF0HUh04OLTIPebnheQYHX6jdSAwabIa/J92\nru+Q/3dCblLfbo06WDl3EeYh5ccCQn6vFTGUcpjzCcrWg1EjZxGArLGcSZNB\nL0Dta3DDYeyWi36rc2zaAwQ1e1nXKdtTP8b0EmFM7XdLuB/ZIPGBwm6gBzmY\n0yK1ch24rfZ0WDYJWmxlwy1AI7v6EFdQ5b8QrSive1VUSs4uzaHz/kX37uaZ\nxI61oWnEOcFLC3Z8eUrwnvW8zXqGSY0Eb/Qf0+XisJyyxGJJxJE0eplH8mlW\nKI5GqAfZc8/DpKfcbPr6+2AbKVR+dKwQSOQk8vCJeQLT5NBqXx49OVbphtfs\nNIzF\r\n=4tg9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"68ed707a605f1a3cb02ab70ff9ed8a188867028c","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.15.3","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-0_1568697713241_0.8377885632999305","host":"s3://npm-registry-packages"}},"3.0.0-alpha.0":{"name":"@aofl/middleware","version":"3.0.0-alpha.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-alpha.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"defd6cb846a10ad36021979633452fc548bbe5ea","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-alpha.0.tgz","fileCount":6,"integrity":"sha512-Fraa4gaCUemTLk7c0St30FX2hzijaTV6rSn0Q5xSbvvmPP7LDzZGZBQEdQh27M5CcFRoxsSu9KCYW64k2o0P+g==","signatures":[{"sig":"MEYCIQD/s/d14yHDmoyRsK6LLOhS6Sx2CkcUrJnIEb0/OQB8bQIhAJOnTQKq8LMbklHIDxFSEAj3vW8x8V4rhlXLPPc8a6Yj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgG3qCRA9TVsSAnZWagAA1ScP/0I5g+bEg8QPYE1cMd2u\nTcH8FZhrgMhTTmP99QHgSbByLUVivX3LIB5G8w9wOxo9IzH+JzZ3KgVPIcCC\nsRtdD+SC4Ck3ZtvjEe+wmDKsRS9vWQbNB2gp84GJOXwieDCgf99s9dOB6xMA\nhwMuiQtSfY3aIJze/2d+hocnjgcUY1xiYh7/2lKPrB4vJ8weMImNXnMeG9jP\n3SnYOje4FUXT6fA9IQqsuOHL3bQSfOJZGK/DQywoDRr+IxK3SSz1K5Xh8cRp\nQAa9C9xBrYNmhwtM8gw90sbEYB9Zg3rDO6pBIEUAJ/V3FcFYuTBdrsqeZZo5\njU/q7QOt4KlNs3pRR25VnvaogemcJPG0q+ZUCSipActdbGlQ3oJnC31z4K5X\nW/PYK3RZMy4D2H4fuK4cHFwWeKOTRGL6SzRC7zQ/8VZQpu7+Ip6cJCY7UJGV\ngqOkqdxP0ijRjbj1JHjtY2D0fN5cKWrCMYQZBpxExcgRnhd/FyKA2DXDCZiO\notW4X5AVRsDga9fGGO37+4NeCRURNNEvkBKk1+gx0yrTgE9jgleNlEKSEtZm\nY9M0UJ+N+Fyv6nC82Bgz917dwnYcOrpC1KdovRdL7EoEf6uY3HghqPC0J+Af\ncjksAku4u3Gl6JzNO6u64yySsGr6EBHpBX9SseY8pqpv6BOJ/HOikb4nPiJL\nM3kA\r\n=DnrS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"c6c4d16f33cbd321585e3e7c86b1aaaeeccd3627","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.15.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.15.3","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-alpha.0_1568697834028_0.25496688580030913","host":"s3://npm-registry-packages"}},"3.0.0-alpha.5":{"name":"@aofl/middleware","version":"3.0.0-alpha.5","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-alpha.5","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"5f0a3b9ae95abb6ffc2b62ca8eaf5105d360a3c0","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-alpha.5.tgz","fileCount":6,"integrity":"sha512-wT4iA9jXkql6bufZykKDFlSK7wAsgJ+fF4uTB8mA38F25gE1voz4c73KAEt7zdqbXO0iNgOGBovJWWbg3A0gXw==","signatures":[{"sig":"MEUCIQCLl34/n79enZJhDJBthhxyVxUgFjvg5yYpiCKlagiCgAIgHnloFR8+tDinGOqmC1uNPw0MXr40NrBIFVpEq+FJbXU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdhHKCCRA9TVsSAnZWagAA5YQP/0Q65KOr6EiwAnR2Pfa/\nqnSwnKy2qH4LikaooSBlDZR0ZEOU6EPOTjR03c8ocX+OAtgtKLhIHWBqJH1/\noes5cHyvVjRg2cd6qmYs+rqry01fj72kVJn1BGlnP1jvoQ5vgXYGZ8T1NxLr\n8DH523a6D2BdKrLRJHqsushoX68bJA811OTkQnudvtSd2DB0sdj9Z9wnxB8i\no2/DnUzDd8G3up5SqZ3QexwQ1gnHCFi+4TFtLe5qlCCZla9Ht1te6qSUijH0\nULp7lqWmKEfcnXRCw23JKGpBY8oEMf0OuAjTjGV82xEnECecANF5lMYMnM7b\ntmAu/xLcLwtqK7FpHqnMsMMGLWlz2pd7DMOeFv5nQMYupuP1IZTw37RN1YeK\ntmd0RBVSQpzX8OtMfEmvFmNJXuToqJ2FT7Z/7tSL+2q3fEj7XzrtPGBddoTS\nTTNVqOdyYkjN5hCUuP8bn+hSgLPkDa/ZeHR1MujKNpEhPuP1N/zL9Ss61FuX\nfon03pR0h+J/lSvHMv/NWU9eflCg1Rc5V2OQIJ61Ez8EM8OAisRmY5nmPh5D\n9TzWE+NRZDkSX0nkiIkgCzYm4DbAWO6h+2Ql1jacHWX6AqAhEJ8DLhZXPPMp\nxagLLRYQda8Y+oYC+IERs8zyQGFVEwIhp1yHlJOxaumkv9RprMAs+zJKCt+b\ns+OX\r\n=sc40\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"09f43882b317744481f4b6845b1cfae0461775d6","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-alpha.5_1568961153539_0.09355244139788699","host":"s3://npm-registry-packages"}},"3.0.0-alpha.11":{"name":"@aofl/middleware","version":"3.0.0-alpha.11","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-alpha.11","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"0fc892ca19634fa9f2c54d0bfe8223fd1d555995","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-alpha.11.tgz","fileCount":6,"integrity":"sha512-+UDQ81NL+WijX/Y5h3ijF0wGXoIXcSmp0q+hIj6Q/pVzvUZYaDV4R95hWx9ZPf0Fbssp+big1zuUTeufAQiv1w==","signatures":[{"sig":"MEQCIBSHZoNTOBkJ8u1qjfXvo7SMR7w00338F2lTClx1q8l+AiBtY2r+x/Ln2Jl6W2SR2XIARjMO1f9I17O6cnZHRpBRog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdjbDwCRA9TVsSAnZWagAAV+wP/1qnLEyAbmZeF4p0HaZn\n2hJvVpUguoJvfGjh/1TE1QLWUUQ16ztqIV/PodJmUkJ2XceBbBcD7s/Y2MT3\nGOEXrDOn+YiMjlOm14StXILntHr2sTO1GCuEdDN6RRWHF4/PwWDtiM9n7pgc\nmTs5dU7aBXewmmBkHVOfjuqUC4cwJP6ZER3Cog32rvBJzmr1IdFVAnyLXm3o\nciogw5UjQIfA77hZGX/KpMYEoj76H+hlpq7mU9uH0xhZhTPHcSSbLwXR7mo3\n/lo+ihPEI9z0ixZ4zb6ETPhvUzQpauKwNRMAZfRKI6jyDdCXqoKaeewQlBJc\nUNbCVdh4G10D32IMZhGNe4mFBBSbLxyiSrQhxfvA/ApMQHPdc8cBoQpNh2gn\nCJZieKF0TywrFXgSHgEE+XzuIwlRZc6nbgoCatQIY1BaA2m0bG3hni8ECitx\nV/URtVfG56fcbqpgwWNBPdjYPavjsLYzUD+jRgyi3emSCqEDMqvwfl3AjPkj\n7wUIDd/4e+eq7voaKI6kuYaebBxVD3vJWKrwQKppWgTCVwTAqQbkedlbUoSh\nBWCbbNjTPeKiPjF6oZ79hLZxYfRgBKYBJgI9noyOKLLqg1uiBQfH6/a/YyH8\nPO2EmndLdGbD/sYVUoTYonaWsmxzu9XBRdeg4fgSZZ0j1P0WcE1zNjrfbKU1\nxmXN\r\n=TV81\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"ecdfe7e68c95cd3ce9eca2c86626275d1d4559fe","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-alpha.11_1569566959841_0.41397537763105197","host":"s3://npm-registry-packages"}},"3.0.0-beta.5":{"name":"@aofl/middleware","version":"3.0.0-beta.5","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.5","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"3eac41a2968ebb2625ee3a7e36dc3016bde269c5","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.5.tgz","fileCount":6,"integrity":"sha512-q7/p8F3BnfWt+5HRciuo9Rt04ZDPp/6jO3dhLMW2T0LmYjhWLiO+gh+/RMFwHnzhcWNh9IUTki3w5THvj8NeEg==","signatures":[{"sig":"MEUCIQCYY6F5U29V2oJOtffaGEme95yW+f1ME06vWnqiUfQLZQIgdNeFtUxkavRlvmh+xOFMiwv+NjcwUlPCjB5hhacLhv4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdmbxZCRA9TVsSAnZWagAA76AQAI4rreb1ia0PllOToVX9\n0UcPCmsXFkZAT8CZekV0AOtl8+jJQ5B3nbCCdF+o+DugKebSzMc+9W65ZYUj\noj37CehNaZOh9pxfExtC7GCJ8vJ3Ikv20vDsh0SZaoRg29E5X7QTeSsVeQdW\npP2Eybfy1ZjDmeHgarm2UK5yDs/cOg4OVBek8CprQOgtsfwdtlAq7K/hnXNS\nEl8ImedTTWrD9207P/lcFhNSMbZBpYdqDgogCsbNDdUqUJOJPRGKp9Zf9Fuw\n+wcnx22mCGwH4EMCgnZE/dE2incH6bdylagsZOgGriJFy4m+QZEKu+VfVAvL\nK+Mk61Aj4QJZtpD65OQG0/BNQ2Sm+h2oKwg6xozNnk1fJp+D2S8MY92bxkiu\nPpaawYJopuGU+3CDw60Zp4wZU0FIEgK8d7kA2pfUA2SBvCbwjBNu3pl7WkhO\nDxAC/5PSCVm+You1zO0bRjGT6QiTqf+khYfAk9swyPYZkQGH5I2sUFVZdy2d\n6qmQARoePEI8ncviwsWYmfd4g8AOu8Z1ZpvZEPqXxjpbzabcLaIU2T+Q4RDN\nroPO1gBQEXvIiW8bv4kvPiCfoRmw0Em2V2xuCxJxf0Y5shlSg8hEf+dsL/xW\nMTnMMxYSJA6cW1nIyzxNJXmlV71taWaM06VhpVlRReBgraR+3YOgX1Mz9eUH\n3lzQ\r\n=APze\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"6eab96d111f1ebe9e5c5cff00cf108d46ac4ee19","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.5_1570356313115_0.3251214377982521","host":"s3://npm-registry-packages"}},"3.0.0-beta.6":{"name":"@aofl/middleware","version":"3.0.0-beta.6","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.6","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"7a59887060d73dd46b6b9a705854607beb948035","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.6.tgz","fileCount":10,"integrity":"sha512-kk1BiJv9sH2Ge+LFUoT3XkU9lFhOI0fBJTkGXBHvWJhOSuoBQq+RpVQZM+sTlRmqfVeWHI5sDTbtDsfnJDAZXQ==","signatures":[{"sig":"MEUCIQDUnynaCf0WTiR2ly47K5hgLuiTQV7juU8GqLfPjSXdhAIgQBOaHD84OFNce7O9dCL3vzcRpTFntJhCGbw6K1xMFYU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19884,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnBVnCRA9TVsSAnZWagAAbTAQAJ1F/dbkvWF8Z0Dgj/lg\nsjZ5lSXOea+Yjn3SP2dZWZqNG6OiYw0NpEUjuQxnRnfprJH9znDm7wpY6Wyl\ncJYbY9VGeyTYYOt8nFYhthdKHwBQOP8KaqyP1w08CMaImsK1sK7Gsj/kzWz4\nJr18WYDNmF38i6mcOb4J6qETlXdDciCE3oJ/ZnpYlLC00qTm6qs8kcx/+VG6\nES8rCYu/wOVhcZmiOoyAgbtHC7DQCowWeJY/9qh/XwFl/IxGXK8FVPV53Z9Z\nwB3Xv0/mCjM3EID1dpJ7iMCl+tRAHkOtGLWa6GQ4VEDmJheSOyy4qxtExn1T\nmBY+ODGxRPYpz7C5yC9mETnEskhZeaoIKRSCDYTmTGumO492yjNLCvt5BvnI\nsjqfkmxcG4GySrmUs0gzGtz7VWKz/t6rHnSKeY0AEG+KHWgSaFvN2MU7hdnx\nslXQANMh63ox5nIDggd1eXzcJCyNvW0fdLOzEsEUV2sJF+CROpcBKXCe3kG9\nU5lpiCd8GlwRgKPlcOGgo7wUrL7KKl11vkbLBLmSC2/7gspTMMdEaCs2xfbU\n5/TEtuWWWykf19BieNWRzttBKFjPYQzNNM3GmT0kY9/PL2FS+Qb4EINjfeYJ\nBdM77ZNg3r0DqQdYMdWbESA4TGNkIq+gjYYVKVX33mO2GLWzKuf9+OkDM44n\nPWAO\r\n=TfqA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"23e8e9dd00e515c9305baf320436e43f51d7edd3","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@aofl/cli":"^3.0.0-beta.6","cross-env":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.6_1570510183233_0.11458569098403615","host":"s3://npm-registry-packages"}},"3.0.0-beta.8":{"name":"@aofl/middleware","version":"3.0.0-beta.8","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.8","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"1b53c7e08d2390ebaef66f6af9ee7410061b007e","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.8.tgz","fileCount":10,"integrity":"sha512-R/xy1ib9qaKACH0E1Zt+XRqEXwJ6dYg1rz+7EztjHj7irL8cPiGglgXk72KenxmMJGjZpW6RCMJ3plTgAPWKcg==","signatures":[{"sig":"MEUCIDY6LWVEFeCkyAHMYAX5dVrIM+Ryi2Dh1uTxmADw6EgvAiEA89Fq09eFVfp5sP8jSAtsAyZ4aUf7xsNjyKZ62fL2fNM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20891,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnCMhCRA9TVsSAnZWagAA0ekP/RG5le3LSVemX1qg/0/v\n07n7cEKITmui7bu74ZewnDLltGe0oMQGvlerFCpEf9A5BzUbUDQrTy+74eIK\ngO23o49aeVchH0zWKbSOduSry05BzEjJRUIHbCXr8Eo5M21MXcN/IpPxdF4e\nN0otwuaCE0Re6PlqoK8wN+9dzSyiTVwYCZcmegf0A31i4mwx+5HZIj+lfsgx\nA7xxlt6BlpCvhd+xIfHRy5kzGLzwLasmfM9uuUhPj7EH3jzNNVbz2b3LACf+\ncRiKyTXOcYWgtSaITMkbSoMnqJSsoT0hYc/Xucxz4i1EvNjW5MEDXFAzKuCD\naJ7ba3wpFHMUBVCG3Pu2z9dP2uLwgrWjQvsIMijgIq7qxHrtQzXN2Bqt+ODa\npPnQg17eg6IFbUYUb5hw9+8SA48mPH9OD6+P36ma4TmdM2xdwnfjaGxF0ohH\nXH4rs1P7C4/+6V5Dj9XUJytiXgnCeYctj6WwOU5gTivWujffWMqXc52E5gAa\nxRYjIcytLj+6SLq02kd4/C0xw6X7BCJIL3mzGQUg4V82MHs4ZB+PY9De4r2I\ntB6rP1faVHzXrL8mGzSFzadUB3ycoFq53BfpG/qGMRonyD0Fz3eSyOzQhgVt\nBqIe25hRwblCjNPJ1S7cRV5fO2QGL6M9RcfeEDCSCCJLuOf8wg3VkAdWz/vt\n+lQp\r\n=FpcI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"31f766f3cf621147bfa1530b863757cb08e5fc10","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@aofl/cli":"^3.0.0-beta.6","cross-env":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.8_1570513696640_0.5025412506264737","host":"s3://npm-registry-packages"}},"3.0.0-beta.9":{"name":"@aofl/middleware","version":"3.0.0-beta.9","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.9","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"aaaf8737bca52ac3f008bf057ab7d3ada1790b24","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.9.tgz","fileCount":10,"integrity":"sha512-Rv6ZwBNJDdM2pkMBj7hwW5FQE7zSV9ztBDMV7dRMNvWeYF2iZqsQfdcv3O4QNSDvRI+jv+BV/3ichc0Xl7Q9ww==","signatures":[{"sig":"MEYCIQD/Xqiut/dT07M6vF3IeGMGbK13r0kUvkiknQXo7j3LkQIhANwh7g/3MlU4K6q9PZ3MIiwWZ2MHjcspfb27wJT6Sc9b","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19885,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnCiiCRA9TVsSAnZWagAAwXYP/RCmfpYPRL2KdggI5vQt\nMNXrNklUS7PKdwZrTBumFvKAknVXsxqvFr3UWzPPCnAKhwuQ8sMm8xtegijY\nzA4SC80TJqxBAlMLtE3EtjLSVPtNC8hh4Cg0ULdw2ls38/7Wc1emuYzS61Ig\nhgd5oHCyG2xIIrq2YYXLpV3JPCmludTdGe5y89rISc4n+bkznPdlITrCtRPh\nPQioM7WbOAvKdWuetkiirGbflYzJ0mrS+LQdZ28jFCLya5jp+7ZCb0y1IJww\ntuVBx8q06txC5APd2C3UtcCnUBYqbTLGwElVZ5EgFwZyWdahn/vK3X5kaxJy\nNk6d8M/r4BG/uS1EcW6IeS+Qt4Kn3kSoFuaziR37c7VgBZCSzlgjZh27GlTb\nOTCZwD5aLu+OtefKH8IrN61cH9/fgpcyim9I7y1bFEIwazY9kPX/LvX1hQHc\njLWTqcYWjmfsVjln3to/c9tJalKSO7LA2Wohf8TSqSfKrSSVbv/Set5buX/V\nYqBc9ynMSNuujZlm7xYK3qV2zX/JGdSjN5qPh7qMn2C3HCnwzB09FQCtIur2\ndwE/6OxgGIQW/AIkQ1kr0BaRapqsSBCJA+00SO6RfM8bASQeqqM5OjHbuA6M\nkG3ajKHAhmi9C1VZrnx7440RMFtaslS5b8FJRMcdmnVDAA3xa4Yvnl1vx2Ow\n1OhQ\r\n=ERmj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"e9e6bf24a51611b9b997dc99e770d43466ba063d","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"@aofl/cli":"^3.0.0-beta.6","cross-env":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.9_1570515105495_0.7955133651270923","host":"s3://npm-registry-packages"}},"3.0.0-beta.11":{"name":"@aofl/middleware","version":"3.0.0-beta.11","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.11","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f490dd88001ab16b5dc1e4b6099fa1a9f092b4d3","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.11.tgz","fileCount":11,"integrity":"sha512-t7Q8RjfDSa8pVDfLXaHJq1ziiEVAJJ572BPvU1Wy9hJza/qSTNkDWIpdpMSL15AYONLwhGJ9UBiB/lgGNnuqvw==","signatures":[{"sig":"MEQCIDsjGmMunImE0Q0EyxyMlRcyCIB5Cwp6P2m64QtW0W8DAiApj7VuWamyioYBz3Yrak+/ajvPyu1XbgohO8xVZHB25A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20054,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnFoeCRA9TVsSAnZWagAASz4P/ifxD+JQwXRBVSRYVeDm\nBS8e7v2/VV8VnROBBmXXDkTTtSKYD+M13aYnWxiIvFmKra3FqBTdYSsGCx0T\nX9HVud6Rp1rB00Fkq9XJLN24/IzGUqdA0qDoVr7B8Yz/nMgFn6rn1YWQpt3a\nsy8JB3vt98OgLylhmaeCvqYuZhY6OktwDVkBdjFICElwuvKczllVcmqBYt78\nnwjK4KeSCkLqF+l9V2C4daFWOQ3DHzDRgHxfdcWxvllv4fA7FU7LTxlVNTHi\nMtl01rJ7vKzlpOQ8l+547YnyINOzB3Ri0iozJRj2TUzr8aAWj8Xf80vxYD50\nz++mSkr7LW1cb4Y5vy/SBWQfuWiPKCQzbZ7Ii4BdJpAadObWuR96/IuDUbV0\n4ezqW+fqelF4vggxgaI/MuqlxGMezJh/8k914RbRTouaoR5wTAba/NfnzAuZ\nC0TxqzUOH8gmCtrufUVPLe+wWk/5g3oWevwmShbeSafYgXXOYD8c1detJqiN\nvSi0jYrya6SinJ5YjjoaNf9NG3GUrQpbDq9fIquZe1E28RUQRWo3QyCWcJ/v\nKBp6GKAiqP92ysCUwDtYCReJMJo1pFR1pLeTaZ9Qzd05SHBa0IftZwM5GGQ7\nTo1yyU3AmbfY4zetUpgInMwUFqXs42WuKD7q+Tu/4ZJ9rlwXG+MA+QgFyDgf\nnZ5R\r\n=jAnU\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"ad7cdc30523ea031f8d1bf5c62440f80f75a7308","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.10","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.11_1570527773519_0.9699356237331938","host":"s3://npm-registry-packages"}},"3.0.0-beta.12":{"name":"@aofl/middleware","version":"3.0.0-beta.12","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.12","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"dc17768b6a66c3aff407baf389e0e1d19dc946d0","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.12.tgz","fileCount":11,"integrity":"sha512-CTf4VKP2byCUO/Qmqj52PRRMHIw2KM4kS0A92vkhi7tIrCAaApC1y4JGRSK+3WDti6jr66rGrP7ZxiEApfllKw==","signatures":[{"sig":"MEYCIQCWoZWsvfA8hzwXD8k+O1Fk8+UK5d9mQBeG//NCWumyNgIhAIChJO7YzgB5l4jYk8zKj4g0Ba63O5ruiLqZ29pjQNLv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnFynCRA9TVsSAnZWagAA+BcP/A1TQiHLhYnGF9UUk0sO\nznx4dLBL99UfGXWZn8QAsq+yQxnsdVUxRtdx50rtBXio4JwSwKuFkvMVtzxh\nZShtO9PX7Ugo++dXbWfm09Z9s3jreg7wU/1ppnfpxLBG0AC4Ajlh5RG8Fexj\n6AVIJ5m3AoM/b2B1Isw18xzlmJrUL48hFLq2MMlCgCAJZjA7bcqij1vmCiJ9\ncpBc9XxQtDLGQWeQb46wWlFxSjQuWwZvGyUvE4hbWP5I0+wDFoTr7iymM1lz\nwwbCYpWNQPEhCoISa11q88m/TEt54eAcpbyE6tDgbtn/FqPT5Uka4r0IaIjY\n4fUsXWn/il9EGMmlm1vQOyNGibbRYUdnSK6lAzs55RnvJaQLFBnnlK3GT0RK\nOcniyPHNoByHQQDSRifwdrnvPssJAx72SvSDE04ZJsL2mXrZqH42Hi/1OybF\nlNTN8Aez6555m5EGSXb8xl/bmDy74nUiaUAax10jybPBlvnxZE7Jt/oSgBOr\n0FGKPYb+K2gI2OyisXgB2bUzKxcN3hs/NlHrYFtrDcyzwlOvaSFezXYebQEM\nQ5BFeKBGMTluZyDEdbPVJ36angwTdPKN7PZyx9st5fpIsikCU/9l4zKklkQ6\noNfdT8cDgKlk6j+83Dh4cYswJCKA9naPvUEp9gtSq4l8fnQLR6NN6V7EKOtK\nY4PZ\r\n=trAc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"7fefe74af1885e7b807b6ed3522d9ae661e52645","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.10","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.12_1570528422453_0.5703674625534569","host":"s3://npm-registry-packages"}},"3.0.0-beta.13":{"name":"@aofl/middleware","version":"3.0.0-beta.13","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.13","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"68db25803e9c84256e9ce1a52e518d26f1b46a1d","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.13.tgz","fileCount":11,"integrity":"sha512-evoBx7rVduBAyoBg+/IaK+RRgoBtkulzDiVJAPWv14lEVEhEo5/t1GHlowOEMtcG0Ip/3tHg82X7FuvkyiOk/A==","signatures":[{"sig":"MEQCIDdq7crxbfeNi6YbRo07PW/SV94sbaNT3f2UZhII7RGSAiA1cV9G3gZ16EYo6DHNLnryEN/A2H+yEX2awMct3oikBQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19640,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnV5nCRA9TVsSAnZWagAA4P8QAJNObkkGK/gsr+gePCU6\n7g9s1TYGLcdbiFs6mA9Pfas1d+c0AET4eVHGsm7Zf+16gaK92oKpAmsTXgYz\n+I7r6X8XHZO/WE9/addnFIp4jgDtS/PHKF9CpUAVd+yb4PS3trjQsqAL4Cvs\nN+C3M2JYt7Vlf8lEAkeLV12fvMXGq2ab6cDNbuUq9XPagJ2pnr8ghgtvg6vW\njoY/oqIyvCQzzSxxTnhgyCRsUdQT8MPPfwWAXA0qYdoI5lWdhu1jv7VFGMOZ\nMoZH1foIG8ZhI0Wndwd9AEXTOlq8uH7MDS6K96Pu1jod4xZtxNL1yXTvfMNF\n5oL4K57aBW02DBRBlMPRdH3tYcDiZJVtyHUt8VtGSX4BLYj4bG3BcTn8qRPj\nVBvoIFjoPhqLvHzmQ9736VsxoK4TFDUx5quFaW6wypUeRh8ALAbz/gTmi8mS\nvkqcCXxPy563wI5DHJUz7k4zPYAgPrSWQE2tDARYeqXEEFXUVEq/TASCzpFX\nsgxMh0FiAncj+AO7iBM3VYru6G1Ae1LH3CS10SCv+rJkAmupoC3lEi5HNUWO\nlyDRYkxLqJNMVt6tnv+2Hoz1rhPS7ET8BU5gQH3umyFl/E6bSam1MaNFW9wk\nvSkQTzH9631PY82CWOtBAcknQuDJqOUIo2b/UTNp4p0ueFrZt8Tei8LmTown\ngjKH\r\n=c5vH\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"aa2e52c46ae9451fde097de4734398430f2127a7","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.13","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.13_1570594406552_0.7767108299583654","host":"s3://npm-registry-packages"}},"3.0.0-beta.14":{"name":"@aofl/middleware","version":"3.0.0-beta.14","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.14","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"4df0aede330fc18d28a862e1907efd7f639ac4d2","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.14.tgz","fileCount":11,"integrity":"sha512-0qYSTxzx4sUIMgGES+VtsIAI/qdOg7qAvmQNGT7Yyuk0Y7pIr3DW2SGiEvBoYILfJhQc4k1JhDBxs/uYMZYl8w==","signatures":[{"sig":"MEYCIQDIqx64+rB+B1zlf3B3+A+GoNNyeW2TKY9ORF1HnoXGngIhAJqYB+Po7Db9aQGi9/ZnNhzUnHEcD1rO5eeaaLaU1mC6","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnWMFCRA9TVsSAnZWagAA+fgP/jHz7dVdX3QQWZRQ6ajr\nT/X9cSYcSZT8tUQ30z0Hfn0pyBITFXpLYxAlbFOs9Wm7cu3KjYpzy1oLLX14\nh2cab1cUJhczUyQAv7mcrZDV9lLlzgODbnHVyO593XvCnDVCv+a4hOW9oIsq\nKv3ZBm3TpvyVzm8xoyHiZCGL0M/WDQckhTSLlarODbxfz8seqBDBUrIdFEPN\nJIrLKscow3Q2i3rkXUTZiG7Y5fRvLzbEFf8ONwUmlHG/QyK2vxAC0z4bEUbl\nndJ/MHJTDWjHxlXQoi5XXhcdYt7fFO0p3BT4YTG+wn92oK+rwjpEcSLSR3xC\nws2SFiu50SPiDVemhOF/i4HCB7qwtJsmpLND8rEJjq7DieneieRw6fqftw8L\nqv4ZxwNeIhNyTdujgYjssuXzpOWDO/fd/Ztab8oIgQHzF0CRVuBQyV8bw90k\nA829wSSdSC0dZNG5xl1CBIEqBf/CbmCO1Dv7QgLRyfDpI+5KKwRyIIoXSmvI\n0FmcTstpX8MV73zhzDHUAeBFxg6YulrBmLLga0Wj5Hq7RWEGrQiyLu+fesdr\n++6dLeufZ8+ud772sOgg9O2uayU4DrrCOu3eCd08MwBB4csgtAmXDptI8BQU\n2que3v5O8NdLp7uQ5e4NIZ8gvl8Bomw0ofSovXLbLyVaPru1SjLRfq4XAm/M\nnTEn\r\n=478N\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"80c0c882f3af67f4584dc8d38de8a62ca5632c94","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.14","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.14_1570595589150_0.6692455347258177","host":"s3://npm-registry-packages"}},"3.0.0-beta.15":{"name":"@aofl/middleware","version":"3.0.0-beta.15","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.15","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"9743ba57c15e374519ed1f3cd8a0ff93235b7a9f","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.15.tgz","fileCount":11,"integrity":"sha512-nirEKLIh3UUQ1NRKUgdmnWmQhkeYhIP77Fk/BqoT+RlcolOkR/W1lC8joVvS2Mr+1pN/IPLAhPXRhl90hajXug==","signatures":[{"sig":"MEQCIBKXecugRudA9GjkxJxLKBTWdHUQLDgIkTp+ZXljULrHAiBQEEiHu5XzDo/cuoa5Ql0KuPEeg7zO6fPEHeVSLGbobw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19665,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnWcpCRA9TVsSAnZWagAASKwP/1yy4kI4hSK0+HRkuaYj\naKjr5EB9XrRdC0QkwqGWRl+qUPGU2RnRbYK49Gbs3zjMIS/aQ/nnrKxaMcKG\n8NSR6H9Gw5ihKpMe9iefWZg+XwS7KyOn30KKXpsg7FGEBItQQY4X7CnxAcPX\nGye3P2NnY4FyzFrLeSJ0c5O9OZ1vpKdyYZieV7nRU2N3+IQGCZPlkyI/xXr8\nPknu3rDYFnRsuQ8UjjKGPSGVxU+c2iThOTXlOt1iTxoX/eOrkV9SsPzrwFY+\n+XlmBEOrUOuggGIdmTaQDQhhA8VCuGjD604OdblMw6/Z6B54NZEf3dG2eR+l\nS8d1gJOKKGzodYXhISl3ofvY7KpQcGnaX2pmTtkpgJt4lVVadjSooGMOvXQ1\nRduVeDBcOtqMOODJm3FeICQKAutgO+4teW6zQA83jDYgy8OTHr511VsTygWB\ncE0i1I+fonYtVtrCZI8kAn7oYF/6C7x5cd6hCUsxU3meXrz6NGkZLAQZ+VwM\nzMRxKEH6gUZT6AHnCKgvQ15zYJveGziF7XRacY9vIU2h3HT/tHqD+Yf5w4JE\nTG5HtYo2XxebNsjjnBhkNY7cRJg+4U0e6UQYRuGeMRbq9/Sr8GuS77pcUovt\nGAICHrJS73ddShoKR71Xib6qyp8biznC7kt5IDTafbng7Y29/iLeEF4jZyUb\n/2QX\r\n=LVik\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"0fab45fd3f4a1789a3683dbaece87d579e9de597","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.15","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.15_1570596649313_0.25581463798419946","host":"s3://npm-registry-packages"}},"3.0.0-beta.16":{"name":"@aofl/middleware","version":"3.0.0-beta.16","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.16","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"8114e67cc59ce3225ac867298f4660e2edcf1973","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.16.tgz","fileCount":12,"integrity":"sha512-bS8vV1VoJ5MJlh4/DpIFzQwfzCkti/WiCXaVCgnLrcWoMyg2iZXBXLC7SOZ5nV21kVi4rQhgqV/NLeTtvYxKsw==","signatures":[{"sig":"MEUCIQDSqIFGbEvKXJd8uS4DYeEAx8MJeOkDzlh+aznJvMY0SgIgN0ROrLLd+lxwafwCcx+5AQJt3/k9Q0fYTl+E+0J/eL4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19706,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnWq9CRA9TVsSAnZWagAAtJYP/3qdmHjJQXzzdZufygdj\nqiuKCbEmU3dDS0f8lPfJLrtSWHf8a0NxBiejRnJZQX68qLiqBag533zD/ac3\no3IpcojROJFWGthH0bK8R9OcKZM3Hj5tTJWpxGbbfQd8CllaYCz7H/4W63l4\n9ZLgCa83ksi3uquHpMuC4Vkut9Hp+4xGMM/RLxNmYjLsQvXmEJbsVloxKQpV\ncu43m58t6qvgWQ7nO4ua5BwyxpxpbcuY7kvWnHAG7UNDe2D6e/BqNSVZaOW9\ntd4ANkLALdiV5OV50Q7Q+mMaghYfgULCNxnlikXvlHZ9bb+iak7Ib7QMcZZt\nQ48ddBeuMPPvFGqXQHFag4XUU7Uk0eZfgoRrjARxK/UAIhWEY+gzlFNvNuqV\n2NYh5R/Qrl5oIHIKXEW4QrUxDfJweghdJ7Gmw1JdYs6HMSWVgP1KDn56QQdE\nXAOeAZMkYuMUUfKNnQILJB2X7wK2yTHIn5uIpHgWiqm59sXN1CoDhIvlTtvD\nXm8MQzupZmwiWfEeg+D9O08Jri72GCZaOdZiMXZOR12bk6OSyC3fCxbzBhgP\nuOkJ4d7egj8LQzsVHnFsH1X/CxMSJTSU8u9mbnu/gL6BCpWmhhKevxMZ5lvt\nLjeKXAIUojq3nKFwWvo3MOeXyZ1DE4tcfwGqTWp72pAa/vAZznvLmwnQnL1w\nNhy/\r\n=wg/z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"32c2f889b64c30fba2458f8704f7c135b47c5b95","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.15","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.16_1570597565482_0.5294998384356053","host":"s3://npm-registry-packages"}},"3.0.0-beta.17":{"name":"@aofl/middleware","version":"3.0.0-beta.17","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.17","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"bac80c915a46aac74fea775fcc5f90875a6777f6","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.17.tgz","fileCount":12,"integrity":"sha512-faBat2q21gRTyZmQh4scIFzNfZe0++5Euz1ghR49eOBiIBPVE2PhUqXUibXoXZItgaJVsZP3vVNTVoruss9KEg==","signatures":[{"sig":"MEQCIAv+1NlPJ0bf4wnvnyf8Z5kvkcuiEeJ6E3omO3txQtlWAiBS78Srdqkc2d4gik6dOvBIrMg/B4JouD1nYHbJ3NyYpg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnW8wCRA9TVsSAnZWagAA1PEP/2AtQk5pcAvkqExHrTve\n915lWi3kB0I83HrvXmw2A5F/u7nmjAas/uWqXwYsQx40VyEqY3sOzFDT0QdD\n4uzt/gaHRZi2Xzi4njaTyTHfDAtmLaQwSbLlSOMPkTU7kuuJWne7intP3SFW\ng6DSCA90/vdDP3vOmTqK9GROqyv2MFpXmpSlmypefMgjSFC0gadEuL24reej\nnvmciF81JjiS+CnTMMtYiTPPg/kzsx1+b6f41P0iMOMachsbpw70R/ogumsX\npoj+YcuKx/WnVQqWirizp6g+DWfSG9ef76i/oLokQ6fkeYd/z8SdJxizdiSk\nrLIjWHL4Ul/+HWdgOUm3N7BthtwjgEtTMD+w+OJ6Mqb/JlJG0VekfaypjHa8\n1gzWPbeIZef9H2QdWvBnwdkU43wj4pAR3v7Hlh21+FNDVwxMU/jjbzEX0NwE\nPEVjvuS30bT4HCtfRFhyiP7Y85urhPZ0/zYwHdp17K3tmdb+GoiNm3EoD2Jg\n7pDpW4qPX51dbTcYjZeKiNUGPatkSZBC6ViKqHedbV6lk+iI1wYDIO4pwrWo\nJDCl0fZMbAyNAnGQC2wHJV2bBzwMsmRa8ZSNIt6MOoy2NRpl5sZTOZt6GNhy\nV4vbhaJ0XJLRhM+zioeYInAMezaf8HS/zNjK//nttI/rHMMwN3CugKmUV/dd\naEGT\r\n=EwuL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"1a9a0010d531b8a6ab7287dee07687c312379976","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.15","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.17_1570598704147_0.8462242340145054","host":"s3://npm-registry-packages"}},"3.0.0-beta.22":{"name":"@aofl/middleware","version":"3.0.0-beta.22","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.22","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"61c7c763d46221da3bc53adb8ec1ca12492e5ed2","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.22.tgz","fileCount":12,"integrity":"sha512-Wb5fgA83MXZUZBotnt8TOivAH6VtEKxwj0xAs69HoN2hivKRNOMQfr4BYKVlPfdsHVe5bUMH4WTTBH3pIKy+9w==","signatures":[{"sig":"MEYCIQCMHWmTsUjO4n6g5RyYOT45YNsGEdASUCgzizbNG1MvtgIhAOdk5PXhGOCY/fTkCo9eXtuLs+9BXfQUohLILuyL23Xj","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoAfWCRA9TVsSAnZWagAAaNUP/AjtmO5xUG0AFzscDHUv\nfc9f9RRguyFmg4uvcH0JM+xoefcQ3VoB6Bvs+XQO74YKyc5CnEZ0YnIE2+v/\n2+6qRV1UeJEo4rXlGDyx3/Es3TU9JP8+hF3M66BydOgE+qWJRghBqTJo8RbO\nSGES9iQbRw6aAt0QX0WHiZ3bPMehOnt3rMzxLuQeKkMhvQKu25BDSWFGJWrY\nIVE820tFbQ7z68ibDHXtg/YsrCEACVmW4ER7TSvo0PiAQCHCjNX2GiwdNsPQ\nT+g31/vX+TM2k1WpnWrXTdnYtBcNL2satAWy1eW4KU1fFO5rNf3U2WatkYSd\nxcN8Ox3II/ynUFgng7zTa7FTJjkMOjrTE47uxIWwtq/GlX//Cnj3QnvRMyme\npLoF+TWi52SpaXvayKeFJXYDK8FV35r7K8CVDfr2fljSEBBIQBwpzVH4EjZr\nRuTyCuT7rXncx6QPmebfUC34nws1yGz3aXgXGZ0SP/W+EhBnaXd6wVW2trLo\nsEcn4SNsDcAOXXzOG1UwsQg5LIvwmQDdGrrLQf567qLDdsHz4tG+TzJHwuOC\ntLqZZRPfhYxKpfdqfyiVUNnnm9KgYldwci1gx048evhzhRchl/hbPpnLAzGq\ncVCuapWZEd1R/ieV0S3MZ0bl9E2fEPsDAOAW7HPUbBP7s7rERSSr+2kHdWl5\nF2Ry\r\n=c27D\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"6009b3c38f31f159b65265ddbc3653c0087909be","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.15","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.22_1570768853483_0.13818189699016092","host":"s3://npm-registry-packages"}},"3.0.0-beta.23":{"name":"@aofl/middleware","version":"3.0.0-beta.23","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.23","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"83a7f15d23ba53fc217c8b9a3671d5f91f9c9b41","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.23.tgz","fileCount":12,"integrity":"sha512-LZaXlkQ0gU6ooghrkkk3f7QkmUqYTM/jVOr1bOeNxjLoojZ3QBu47FbTYUFhGkMRM0HaevUvcuSYyjNZEs/HUA==","signatures":[{"sig":"MEUCIQDKkKUXuIQHXW4be+Ub5vYoSp6RTXu9zg53i5Rz3sNniwIgK0CC72JG66LMG4mST5UFFyQ2FCWqCQ8aCm/2Umpcp2I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoBWxCRA9TVsSAnZWagAAMz0P+wSdIkgYorBZqNqHxObz\nlOOHqNQ7qkV8J/i4a3UDM1m6wn2Bl51qKpK6VeYu2e9wj50qmDemQb/VY9dS\nEm4g+GEDpHRd1D+YQOMY1rwV97jCLoYxOlb68kPvVDn4Bjl+FI6YQNl88oVu\nYs44O+ygsNNc+78i2nCvLTCjCBCz1u5Zi0l6lPEqpb7H8bUhWgTA2GVyQijq\nbCoijBQ3QboT7R+Uq3iYGQ+XjXpmih3SiHUUsmIdRHJNT/9Qujau8eJ3rd8E\n6TZxDWvUkvFFXC20Ip5KxMJrcwzKVzZeB29XjBsFc+CjhqVFHbcPavIuaiLQ\nKr9YXqq/KYcoCcMWkl9we2J8+au7d5+ZOCP8q73oU1mQhiHi4Qu3kiQi3eeT\nEMYsi8wxkK0UcZfbvMBSh/pNI2rZbyWMsH+gRzbQj8aTF9e4CHMovNabDNKH\n0AdaTop/+Mi/tN6AhWaLnwWbvTJonjJxum3/FOPs43lO06HUrKQqTjHUHoYT\nLZB+ggvtPZ5aIUEP9Et+EIJOa8zhYylRtHyX5eGnt3lxJ2fGbtCBTlaZgpDn\nHLgzAiottUiu9MN7LM9G3gbxzQkX5z2Rx6zSO8S4iThnySYtcn+riMjxQWUP\nmP9w+0xCj6wdw8yV2COJ87xj9cgo+jp/bfmym1kpPLQ/qsG+Nubrl9X3KTS5\nyJuK\r\n=1GGE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"35327a525c0190a3c1ee36be061e25eeab73ed33","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.23","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.23_1570772400595_0.688952115647963","host":"s3://npm-registry-packages"}},"3.0.0-beta.24":{"name":"@aofl/middleware","version":"3.0.0-beta.24","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.24","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b5d018ecd5afd88e7122ce30a7b3ba2d4fc96ff0","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.24.tgz","fileCount":12,"integrity":"sha512-d+3pORvyiQ5JLl2v/rDiEHv8JyiWUqG741135hMyZIwvOVYyfDu2yHBwrIwmjht2mvr2c8Zr+/LHsfCdIk6tHQ==","signatures":[{"sig":"MEQCICT1RIubPi/hylUPXRknbQLaTPUNoFfBy5Bt46wauaD8AiA3TXPSxyjMmKcJCHLEUkmQcRICpNhHiYdmvgQOO5dILg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoCKKCRA9TVsSAnZWagAAO+sQAIXNkZcozMqm9AuAax9K\nItEct4wZ7Kd3r4bJxFd4EQEbxKKcU+CwftHCIOxuNbwo/+1d9K+PbmHNGFDN\ndkb2szouHEcJUhEQQ0XNT76r5gd+1WXqfHVWkmbu0BZ20lrRmC6nMe/AvVBI\nYrE1NbNn0KFd2Y+wP5Vgl5nOCt6Ar7RCmmmYPdURjn3jThuMHM51PB/LRUou\nl/ezH0fI7MoatVybtnpe1AvCVwB5cZDrxLU8Uh+sAyqbansGUIrGCUqe4SvW\nLFPaF/tkugdVBaA2c3aj6IIvbPRlZ8PiwXI8ZXTfiR7LYBV7g9CerkWFAtlt\n+hBKiV1/n2DsPg840tnS+XF2J7DGPZ1LkNzub28Wtmwx9dJHnTZr48oB7x8K\nINnrLzG90aBX8bJBCXEIU2Isgl4Lmw/17vj/eRf46Uxb9SqfE4K/UGasV1xl\naXGn4G7SQ5AOhNgxn4wfo0RvtvYAcGFl/XhOMGSOk2mAs4EpYS9Rt4AMTXtc\ncAHVFEiAEnuARgG1XD8kqymXE4QL5fmUSs1h+yXk4KZpzg26G8TG3IBc9CrV\nVLruO6nmyO/hIJXA4tdeEIgst/teVspet4JcEgDR6pxVjokCm6R0Wx9X6x/U\nosEuq8zYJlLCeURe9saBJYJsY5FQiQKFvDtaFBQdAQMPlJo4TqBQYSPXBZJ7\nYyEa\r\n=UzXx\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"be81016959caf66748582258c92f8c73471a9f67","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.24","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.24_1570775690016_0.4609044441612049","host":"s3://npm-registry-packages"}},"3.0.0-beta.25":{"name":"@aofl/middleware","version":"3.0.0-beta.25","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.25","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"4e50c56c717ad4f21fbf4b6ef2a17e7b4f4982cb","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.25.tgz","fileCount":12,"integrity":"sha512-cm2qoaOcpT8qdBL/oIwB7N4YLUApqlSzkcSdchhqr0IuVoAULMmbFOIjqQ05/ZB++YbS3UMH2GL2n1+XcYrwlg==","signatures":[{"sig":"MEYCIQDa5CKrOZlEECEhnd6DRClH38+yRSGKfYyPt11yNB8LdwIhAPqvJVilSLsJfKGulIN9uXGMmhPgmVVsW5Vm/BAu+e/A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoDCbCRA9TVsSAnZWagAAgNAP/iAjr+iQU+zWXtw/BMcK\ni2oXD/5RbNCaRIbVioNQUjEAhJwWSD4ui+urAGYnyQPZbPIdxDvTEmZxFyBF\nj4JF56hkXblIFcqjeK5REnv2/WaG4hzKni1uaeg+fPPrdav5VluXOxV+0u54\nVipXB+iVTQLh2wsSi8hO76IUtzfGJJJPrNm2za6Yie14bQ8Zw11pRmL9H+Kj\nnag00UvU22iZfQi3uAiy/YrxT27Cs/swowsSpJrLe27LoMfkdJPgzJBMA5PQ\nh8KG8Yjv68IVB89uWQCHQiXaTu7jyi89H+5XfkSgPldws9RrlM91Y32FMF67\nlVGM2oF+yMk7ocQ2wRB3V4/hYHYMxLqHWV0wa47r1ILbvVeW1f6pqLaq/8ef\nY4yFPJVo6Zd5gfI8ikRNgXfWTWT9mzvzSQ3KMY0F283KZqX7QZvQ6/cr7jGZ\nsUJkJrFtdoE/r9X10KqF5JczwtOfpf+WPCpunKqRrjf3eX68RsEWb6lM19hO\nN/Ze9kE0rotF0kRQzDI/Okbu5ZuqET24qxfz9iKx5IBTJrxqR9TZSdFF5YDP\naWkq/FyVoxYCFW3ARIj36W3UPzUblEkNpAcJtquvv1dBVeDO3anVAk+6jaGZ\ngzVo/aHzK/PViWfyvbK3V257Tu2cR1/6eLvYPj3olxICicUQ9l+BzUfdb9yG\nNFUU\r\n=52m6\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"658a5f60a694ddcc2ddc62e8db80688cc6b71c68","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.25","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.25_1570779290575_0.34160187286267174","host":"s3://npm-registry-packages"}},"3.0.0-beta.26":{"name":"@aofl/middleware","version":"3.0.0-beta.26","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.26","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"12a06f20a6567a184fbc6865475bd431e8e18f71","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.26.tgz","fileCount":12,"integrity":"sha512-9Z7Dhrd400pr1EwM2apo0E8uc+kZKSI2SmEKesm0BwAiFvbMPSG+2pq5+Bgle/r4GX9JtLVNvF/kD8E7me/FPg==","signatures":[{"sig":"MEYCIQCv6lzbLEMyOlJxkK6dMwQxk+GOHTDxJ4+APjkLA0EUQwIhANZQFRPCyVKg4SEgAMR4EIxm5VOVKqtP1y5SwI/VdtT0","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoDP5CRA9TVsSAnZWagAA3VEP/0uQ2B/+luoZ9fbg+BRT\nidjFwLbifeLmJW3Q5iyE4USFLqeq+/CLZQF/8B6WSn8qeDQFiGJP6xreGzQb\nIwPP3b5UdSt0oqfZOSLFvPeaAAxfT2gCotgpQnxkDcN72++T9Cw1sKCb33v4\ncGJOFp1QbjTYGdmupiSoTNc6UH3NUltP5r3eOOMIhLyFwzcRbfctOebiRFM/\nQmTIAeu+09rqnft9vAb5ExMHRiAhAnW7rag+icABsJiOMCZIPixDJd0L347R\nb/eoqhpv+CWg1MfeIxrcGxzmHJgjiOcII/zlu6MKmbppmCaKGfTOy7A4nHB7\nILDi0fUiq+1hLBnisXb9KbEhj0111D7eyrQMVR+ygATb3WDzoWUsrpXdb/Lm\nsuxD5Uh3ajiAVq0F9KfGypsO+9/+QY4EwFsYFYETz90HsFH8Nq07S16RoPv7\nil8rYHj4PvbYoMxegMcmT6aTsavs8mR6T2YsWMlPrJiKgJ4O01oEloyYDVER\n9k/TcyeDz+KJ78FYcb1TekoweyaK71qrx6zccwFa57oiVxJnbuw7fBkPxuL6\nOLrQhKHpDoHj1y3fG2KDsndV5BDNQbcIiKem+IOmY5C64wuKrQJaLOocDMej\n6t/OQp8073zxSdKaCKTkWrn56o3CdHv8FyaeKwaTYIs3TI98NsGKFNa8bIHF\nVKR3\r\n=YIeG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"12fa62b6d27f95d1517f1ec4707c284b865a7081","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.26","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.26_1570780152857_0.665178210342618","host":"s3://npm-registry-packages"}},"3.0.0-beta.27":{"name":"@aofl/middleware","version":"3.0.0-beta.27","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.27","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"c0a2d94363269c9d0c2e4f61e9b68520b8aa447c","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.27.tgz","fileCount":12,"integrity":"sha512-VjUIOuBuf41rmMNZWWqEDllvcbZ6+N7aVaknre/z453ce22hfm4/RkYBVCsCO7LMBTh/rvCf8cFUJn2jAaLtFA==","signatures":[{"sig":"MEUCIH0k0nELPylnGDOgPgWqvsQFtos9CrKhV3/l7P/JUmSdAiEAt5etWTlZiv4whdxR7Z42uxATmbH+3zsz5sdy+pXg6RI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoDUcCRA9TVsSAnZWagAAgLMP/AkbXv2MqcbX0PRGm8I0\nCpbbOcXQPP2f0uIFqfOG9SmIyOhu5n0JM44+x7Rj6vhENntdyzYIQf0dsd+L\nJgBRuJCFpRXR8rlMZS6it0Dk/JnhJKuRfMzqj32Z8Cl9aVEFTwh0pivOAMBG\nUmxOf1L9zKdk8Rtq5er3GQSfal9JW1bk7yuUBCBWDHOc/lLhUmsee+6lPIV8\n4DlxHH5oRSkjDRRpADNko8B5UVMIPZ3RxGLaknlLuAoj1T5F6M+jurTOON9N\nAGjGGva0cbhfDUbrVgvzHvmFi0Wf55Qxra5CtXi+eJbcnfXaTXIQDitp7/dE\nnTPBtI+ZaYjmSWaSdFeGxsVzlBQN/CX42Q3nzCeYmE/Pe6J/GKdyMeOyPDUN\nQfk2l5k/KsESF+55UnoZOBPkuDb+irF0dSwoOJkwAH4x256kBONzAOzORV1V\nvDZUr2+Qb4ZaRKFA1TubbMn7BfnrJGhB8hbWHrQ+gTJbzhZzNXppmO+U8xer\nEPhbIJ5U5DIuXk2LCuFaXehz1m/kRXuVTNgT1wA2PXFYJYm4jwpByig3FMQP\nDW15x6M5AnaxhzTjQObuz4ssm7dVovJGpelaz/VpRiJxyzy/025wmvOH5g4c\nO8w6iuUDTFIsH7KZJ6eoiTrQYRpNg+MgpObJsX+dwyg7aHsOGi6hWdZZwn4L\nY9dO\r\n=eWfY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"de2f0be87aaadfa43212214d4f491d68930b2495","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.27","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.27_1570780443942_0.702180573741076","host":"s3://npm-registry-packages"}},"3.0.0-beta.28":{"name":"@aofl/middleware","version":"3.0.0-beta.28","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.28","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"15264cc31ebac45ec16779e788a76dd07283d6b4","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.28.tgz","fileCount":12,"integrity":"sha512-1CYAw4Vd2YuMCL9U1GQ5iMZUzVqSrfKgHng1GFFRy3S1r430EkP1aTeVdrys4DdCTi6D+v3VYCpANB8eqNil4g==","signatures":[{"sig":"MEQCIGlzyMDkpFISrSWSgnD90GiN1jsX0sCLw3AzjY1Q4sdhAiBSlwygz+127BWaDHHMoL7aw44B9yCuMFGGkzSw2Ek8ug==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17084,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoDbFCRA9TVsSAnZWagAAVbIP/3Oym5UP6TuWrlLOfy97\nEHWyo3LvWGL+2J/wGE9Qp/o80K2T5nmnWN5ip1+PuDNeXpexpTVXWV7G3uB/\nsu5HWhzXadKgADkqoQUn/RdG6/mqVcCFL/s3va6SzvxqWA9vtyxJjc2GxGzt\n+48tLSzmqGTN1kkhba8NdOck/fQfAlNUt9mn4tZyM7UNc34T5gstj7FoHHkf\n19E9QUE0BWFz/AbCOuwLOBMaC1KiPWOKK2LZ/DsCZvfvWcY03ed2/7La4Hhv\noqOOfbi2kJwwNdM2OE01FFOBk8peVyxfbkmnQy9ZlywmfcVlb9W1h7H1K7RC\n3RmQqPCfB9fFEPNv1E+ZngVnKXQi/AVLbHvaQe5nr2n2eEC4dbwbLyXodZLE\nm8DX54JmjTZiusAtePaNu0l7xvUGBKAsqPOYq2NRJW4H7S3I5ePrBr7srV4Y\noHfu9GpoUt/cjFgHa7+oSRXfevR2vT2lg6nq1YYCNrabNwMDMvsj5UpAoFG8\nZA90KobTekrQO2aMRbK7u7SKR7VxrQ9SDmH5NhgmShXGGXpDc9keNe3C2g0l\nFxnwrYbYV2O4ZHzebVjhpp5u07dO3OcnXbMiDlL6Oyk0Ex9lSFM2i3ipzeHe\n0/sZfPBld8+sghWHrGBjrBTLVvEi7AHBzJ0A3UqY10c1QfF5nWtv0EuIN//O\n5j7J\r\n=pHQc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"dbd14b0bd931ea76999d514d051dcd0a3ef6a8c0","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.16.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.28","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.28_1570780869222_0.74341779114102","host":"s3://npm-registry-packages"}},"3.0.0-beta.30":{"name":"@aofl/middleware","version":"3.0.0-beta.30","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.30","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b8a800e118bf4a06c9b0ec1723dc1b687cf12b94","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.30.tgz","fileCount":12,"integrity":"sha512-PzQh5dB+/t+gxlWwG7nz7NO14Oo8knFJR9IhMgNnlgt3FkGHjRGn8P7QxuvBHeYabq2XwUibbpB96Rhl5MFMDA==","signatures":[{"sig":"MEUCIQDqa3ANU3GiEiAS4mZ7fJRr1KSxshRHMHUY8SnmH7vV4gIgFYThbzDdR0bf+hMcllOONzaZa67+UFyvUZJevzVJbsk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16906,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdoQkqCRA9TVsSAnZWagAAbUwP/jTcIchnvAI2CwXoOOJV\nSZOas7/NezGsqMnIaF5QQ5hBYDQ8C9g5ejtNXueCZFGE5oy/STeXH+/IGoS9\nqCunhRHP1ZaeYlbWY3u5cBbqdxn6vM9yrUwsr9cSoAwY522HWvFUOjlZCWfa\nsLIq7m+m4wjoegc6BrLBggMG5evVg4ge+bUbIzn4XEaFWK0qb3AG1CKrlvCz\nZWy2dZxax1vdxW/wPisdzgP9mFfv1o1tuy6lcNBOxYZu/4OzdJzkbpTMg4Ea\nGRkpOdzmQbkAoEcN8EbTkbEN11Bkp/5PiPux3gp804yZECy21Tllf+N/ya3x\n/uEUAOJoRCjU9+9oEt9mAP1aNwd8Mz997OH9lKJhtbgtmMQuQ5mZzsl8BPER\ng4Wx/eGgwHkBxvlCyQO4CBpza+Eu5acK3tmMaPtPtmDlMzfV4TAoRck7+L+5\nZDEn3iHz4hx0s0Xj/8ONqf0qZXQz3oYa4afYMK8T/7E+gFvWRLuPpRiFAgKd\n66h1VOzz7tOPTT9QP85EMyTJcp/EiauSsOWKLwe3f174ds9Fw1O4XQbJ/bB5\nPOHVr33WakUOz5kzmDOVIdkCCx3szZRABT2y/3dNow5mLvgs+MLWXMvb70O+\nLXB//1WOx65KHb6PMn+soXuBJfXDRZV1jMdvfqZuznMGvL3q6gMd61khfAta\nfni5\r\n=MqoI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"7bb6b9b6e2c1d77cf7e65680aeb6a4c60e0300f4","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.17.0/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.30","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.30_1570834729926_0.3203831276660667","host":"s3://npm-registry-packages"}},"3.0.0-beta.32":{"name":"@aofl/middleware","version":"3.0.0-beta.32","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.32","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"4ddbceaa457dfc137d210ce81e67bd269c6569f9","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.32.tgz","fileCount":11,"integrity":"sha512-DoMN7inWHVrvy+Nj7Xy6UFakX6NB6MaJ00RDJkancp37SnX4uzbtjgYTUoAZDTpQq3uFf72+YFvzHzuaOk3AFA==","signatures":[{"sig":"MEQCIBy5z/eNYux7lPIfjoU7Uylf9ibFwXSgIQCs4SWhTamOAiACi/rMl02Cntx7y7XHT3MLPM7SN71wiQhkUxN4fNN46w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdo8o0CRA9TVsSAnZWagAAfK8P/RHke5GeQ1SzUm0G8en9\naKEmoESIGG/ySYEk9iubH2c1bfmTPpQG5I/6SeMgq/vHRJbEm3Wu7SoX73vV\nAeqZ0oWf51twrbYEr+K24Wvehw23TChVsc1t72aqXmzryunW7yKnIFftPn1U\nDE5e2ECVTJsimqC1teZn2YvRCXHllP/AVKMLs0oINbcjnf0RA+/AyI9sAKDI\nsBkbQNuESr47A84Wc20hOJnvndllOZF7goIgTtIzPQuicsPyFJ50KSHHzvNi\ngkJhgjEITlUe8ui4DZrUq3kgFbvfLtPQaIeJAQMbosvbtmiTnxwE16cOFp7x\nMSkUFq4SG57HbG0SuKbaZolT2DwR5vUrGXqjkH2TCqqbow74lkH9crN+hu9L\nWJazk5LmhU6C/iSGNyHRSEDJb7/FJzjcAOdrUWmS8xa2zXS+I0yBHPxNfhAH\nkyPcqMFcUjj5RCv4xe7RbSH7qVO8xAP52AwUNLUcqji2k6qWVygST6V3K/L8\nR0jenUBTr4XlcYyuaYWpph4u97AnnkiH/OrXFokZI0ptyT7A5/NpJhSLgH51\n6/3Ujgj8BHY3ruLc+dhGYKXOSxXRS00j71qjWKdq8db3moY+AJUYhLd06F4L\nc2xiBBxPH4OayDRhGtGFGkeEMUPCuBJRbTF0wj3B93WqUYQ+b5W+R/hEjb0h\nvY0p\r\n=vXqP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.11.3","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.32","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.32_1571015220204_0.163082490185543","host":"s3://npm-registry-packages"}},"3.0.0-beta.35":{"name":"@aofl/middleware","version":"3.0.0-beta.35","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.35","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a7aa75d6e04d39a28e09c9095f24a484524bbe7a","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.35.tgz","fileCount":12,"integrity":"sha512-KQnozZ+S7q94K1ORQvtAYi7qibgsKIZj+1c3WxBMsGakjdxVAdYqY6MZ+t+NgKBz64su0I+01W2qhxZhUDdMHA==","signatures":[{"sig":"MEUCIQC7gnG3F4Bkb32M5GLQ2722MOwZQ8r9i4m6Q8g2XDBa3wIgWjLtPmB6CmUGGvAinirva7HPgEcemNU02qwl3zTel+c=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqWLECRA9TVsSAnZWagAAowEQAJMWzWA2d33kPEhDOyfz\nvWowdmkIpmv9d6uRJH1g8Lo6gYTRX5fRt4mLRtiZIJGu9cI1/GrBeIj/k5YL\nMghvGwvT0wSKasJf/dSi4z51416q4MqIBVVy3NtYromyRNz9qZLuudxqQRhj\nx1p0c4xONcDs2WMupI1iuTEy2ywNyekAQ3yFcNeKciHR1CiYkC5iFj4zlC8m\nYpcJONiNtBDbsxdLbkRHO2Svg8SHfBSOqGgE7chdKgoViZNYyCmZiDEDiOIk\nqzSt5hfl/tONvzEpJFuiuTzYSVkwSswghHBLZiyQGg47Mc7Qmx1q2sXdfoDD\nhfoOSRV43Cu/c0BLz6DGPNOemaVO9kQLNvMqvTCbDbv8z62xEdv7gzwNAUSX\nkJk5k38Uk/13GkBU3kxLwKwaMDndI93xQttoRvC10Xo5gHvJ6+PByt+tJNB8\nT8vyKerEmfz1S7F2+35wey5HQz8xlWq+rUGEpHGT9djMO41pORNkj3xRPGgw\neZCndnCVI5s0hEIIppv4EGHDdyU7Xxq6Xogw+62LvBJPYDBa1TylL2rCheW+\nBLN1cNtg2n7UUP31EjIlEAQXUBXfuGwWCaUrJdGDX40jWOjuMkpCew/nxgYl\nno/D1JqDapdDek7bhwAMAqnCjTbu+byZiRWhX7ci+78vVibURB7gqXPY8T7q\n6n93\r\n=VaiC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"6506e91bedeb6cd9a30c22f437603e14e02a3ca3","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.1/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.35","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.35_1571381956288_0.6020245391633814","host":"s3://npm-registry-packages"}},"3.0.0-beta.36":{"name":"@aofl/middleware","version":"3.0.0-beta.36","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.36","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"7157ea1fd7c0c5677b6ec278ff220b07695f0201","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.36.tgz","fileCount":12,"integrity":"sha512-F8gcm8K2+6Sxt2k6rn0F/XWXNm/B5IOSD0/8gMfj9j/OEmv8q6lxt0YjKr4XpKcbk/6gxQk/iFS2MCwduCJGcQ==","signatures":[{"sig":"MEYCIQCukSGZY5H/cpRZGXiewME1ZTZMQLt1jeyz6LyDHul8OAIhANvmIhr4Jz1u3/wPMpWJFBOZWSYhO6R7qybyzrDQ0DJh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdqullCRA9TVsSAnZWagAAlSEP/Roi+uZz71rnbH4JGEZF\nNnm1mPySRprRDVZTcUGD/eRoFyNCWiTHTBmfohlwUwKVjKxHtpLtd2uX67MS\nawjEct+bgVWe7woY7B6XniW0puCOdOJn+UEL+lp466Wu8NypPybPEicY2pqj\nYFXiBBtji+CodTHP5sF1v9jF0YSxJrOeSUC4wHdflZwxzXLs+h4R93gtst7E\nY+kmpofIH7skx3FN+cjYW1SE/Avmn1Dbrx/nZJStM/pEFg5L8Gj7sIWRg6JP\n7kz0dSpxXYmiMsxpC+zwtcrtFSuX7U7/0AvLjJenzdLStLWA+NUVPREtx4Xw\nk4/eXOXjESLt2h0OIvUEFQjoeb6eStLL4HmbmW6y3mnOgufWzlvE3OWRgD09\nvDNA22mJxxpkHiFzz8soyMTP2VqiIvzGV2PYD7itqsfyklB760m3e6IQYf3n\nDjX57jK43+jeuCGKPGmTbMxaGQBJV52OuZV6AlV0n0fdJcdmznYY1ve04QOZ\nPzZ+tkZ1IzInPNhvaPGyfM8krhBCgEHoQCtinE8rRdHn1xOAOUSmI8Zf5C+7\ny7xh6U90W5NuqkephwdTao9BD/npq/aB2XNrsiCAxvKiYGjqFEQdJfpnfOzP\nUQWM0Zpx27C3wBKdVFDL0fdpHACb4Iu2aScv7bNlXQ1DbP9ixogn5bpp3ywS\nuOmK\r\n=XTjo\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"9eae9fc87437b61f0019ffedccbc3df7c8e02a78","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.1/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.36","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.36_1571481956708_0.7340133221134759","host":"s3://npm-registry-packages"}},"3.0.0-beta.37":{"name":"@aofl/middleware","version":"3.0.0-beta.37","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.37","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a66d1d49f5d5a222b843a037abb9972b01cce3d2","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.37.tgz","fileCount":12,"integrity":"sha512-+bbP2X9xo/XmB6C5lLIuOWLC0jA6Ppv+5hr5l+HSL9cjYe58vKVrs0nVFwnQCpP+noHQTytJ8oksnbLg6xo/gw==","signatures":[{"sig":"MEUCIQDIaRNTb41N+3UuhiHS2F6kqUiceuitiIrhlInCLCIqmAIgT3lB+IMYNzUrdQ+aD7+APonRNB/1ovStC/nWZvt5+js=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdsT+/CRA9TVsSAnZWagAA7IEP/iYBB86IsCWo/+SJQ5Ub\n8Fn9YdZTs6VGsdFbm8BE44EgPVYzIA8M0c/knvcEDG9iIJBXQ/m7UnTeF3sg\n6NDuFVcT2o4PDDpsjWgAU85XaKXREhuCtdkjIhaPaY+5xZF3uOqYtcIBwQY1\nm+ALA/imSYcVQTVwvbVhTI01C6Eazs+z7+rYIUOZqkHv4wl+6nyTsyk0OPI9\nayi2SCMYyj/OUthEOvuhEsLKrLDcvZ0g+t1dyK4S9VKvCE35bFflr7Tpcrza\nhd1LwBfH2hO/PF96VSCypoilMLy1KJE/pkXG7q1JR+vKxC+I3h0pN3k553m5\nSKcDh4Dr3XmLnpKn+FUuNj/3hizr1krJCUTXUg88XkiR9JtGCHl665LBXdjv\nPEHmFInlYalJzdiWvAX2XnZ88ZbtoVu6YmcpzQ8YCoMkoe+lGM7w5dPzQ7ek\n+4gH3olIDJBq6mqrX9AkGN6nZ7u9E/gOi19Ae7Vzw1JhcOlv9q1NfFQy7tjf\nyJiIJkEA5zDMhiMHEKBB65owwInGwzjzwRYsQ131DBpKNGojlTqvHDgw24kU\nAEu9TZ6/rmvLkh45YKZoM8qzdhqqwFDsur0+HMXgj8uk9jOOF4rO/GxHkDVH\nCWCGM5LhSgViiZ1RwPfbB5a/kG9khkBlq0l0xzr4naKEwW0E7s4QVnOGoizY\neBwV\r\n=i3g/\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"90abdfa3f72b91bd0c98e09afbd59c21621fe846","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.17.0/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.37","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.37_1571897278705_0.018025661749968336","host":"s3://npm-registry-packages"}},"3.0.0-beta.38":{"name":"@aofl/middleware","version":"3.0.0-beta.38","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.38","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"7cf40b835357a1093a968441cc60bf1056e0b035","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.38.tgz","fileCount":12,"integrity":"sha512-RuksLkUfny4LGw0OIkeIb1QLJ+I7St6VJbKUFyuZws8xapHL2r1HB5ngisnUaC7yXn0fQc0yvJHEc6vcnzd8oQ==","signatures":[{"sig":"MEUCIEiHWtIVBGy6V3l5B6r9piimCa/KRNT6XS5xXXIKWYxEAiEAq4I7+ObDDwJTzELzy9YiQDjLOviyEK7C+UfOlvOY4Cs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJduhQsCRA9TVsSAnZWagAA0RUP/ibSV+Mo0J5L7j1FX8S+\ne6N37SNivBZZqbqtm2ST+fyl/kVi1hJua7bDpQ42eJUYu3qj1i92npzcdRoO\nvmCH94iH5/+jzxwTPjBX2U86xU36F9SjQP/wRMhEQjQlZw+X7QUbrGhpJ5YY\n3f9zKDCpF0d+MO/8d+IoU3bbPYabmv1utox9OI2gMiXhkKVjWC3sP0Ndapmp\nHxFufZnSoy+wEQIiN9E9eWAIov8HqxtqJTKpM/eo6dRMQO79Rw9GBi5AhG8M\nAPu643QqmZ2IjdCF9tF3867vKMHqzNQMY/hDioQcbUiK35WYZKfMAiFSvB5m\nxdvYTIJLu2DH9R7vtQVCRuE7MjYOVfVTpCVAI4LkE+CAMIiX61b65TOzjhTV\nHP8R6qRMrCEva1v8Zq3u6k0e8mpypUWz2wzTZChy5P9gxRWT5z21NH8aQl0T\nV/jjZvRg1J+udB6vp85zlOPT3ILE2LFlOPJU8/ZktpzrMY30oTLtxiNrk0Vf\nIAfb5WRDSYHArZLw3qyN/P3UgASd/njncIx7Fra+o7P2J05zqOvlMiL3kSFr\n3dhgb5DrTKI3UDDuqQNOdnqZ+PkWoif6Cer1toW9hWZJVtnTUoUqSuOVZZN/\n7OsBNyhv1wkJVf+AbFXe37LOWZJ+q5SmEbWIeIUh5obit+ogsMynFCT0i64X\n+A0K\r\n=uL+4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"9fff03a99453d439b551d48a69e5d642b9957854","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.17.0/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.38","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.38_1572475947797_0.9378685630807067","host":"s3://npm-registry-packages"}},"3.0.0-alpha.12":{"name":"@aofl/middleware","version":"3.0.0-alpha.12","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-alpha.12","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"37cf29363c096e77d02485922b06bd351257d10b","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-alpha.12.tgz","fileCount":6,"integrity":"sha512-S7S/WkDnJEkX0KQk17TqnOReAkKu7I5kj+Heskz6N2DlGGF96dg/Mf1rkuFJwmMinnk6Rrib7nej4XnDpKtJnw==","signatures":[{"sig":"MEYCIQD42+TQacDpU01FIkuIJw7I+g4NvYKSvWBGBH1JVNnaogIhAOobn42aJpJbLNWCFouIaIi0EfSu2K6RO7X2CvJwYEpu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8216,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdvNfICRA9TVsSAnZWagAACWwP/2RuueXaVcgva1C9kxhH\nTdPpeukvUlBP05lPqyQrcGhWE9qPGaLAvJlBtwBCv43j2Pzk5UnJMd5ioy92\nYQocAf2qooKmhLCF1IMjVk6iM5cQqdVubwoui0QYbiysyRGR61eTpQvOxCOD\n+23FBchivIJWert1rcvIjiCn/COaKDWdYrmutEU5kbyVMJ9ByMjAnehEc8mo\n/LU9htcSkRwGNoxboFRNWTuxSx+iI+JVILc1QCu+rD1hyxEp8+51NXSm951c\nq5krpfD/Mf8Dcdaj9FQHeSadxDQNz+3oOH2TlhESFxYPjhL6G5siU2fhjJhM\ng0Zk6MyKoeu1TGsXEqou+l9e8m6VeXMYZ4dRJ1hFBUpLxv8HsF7tJ+IVYPYQ\nCs5Celmnrkh7PZqkfZGoOJLFgWZEd+fQ37sLOi72JJxkwMhNQcL9CS29Htsg\ngEB7fI2V1WJY2vldHCsSs5agwXa79sOHpJH8u0y2EVPuz0Ko7KASEfaJ3yus\nwFp3KVUYHR59oeoFSBT8WlDMSTgztZBsYs4unvT8p2Ua/KmV7bEzPJReIM4Q\neF/Ihi9+8/nEDLPOh6OBq2kBqolMJ6Vze54sky9tifpIUFMufoGPby3hK5Ca\nbpKoYOT6DX5gkbAIhSt8md/oKtZVSIo4QbW8Yp91oHBOH+VVfLQqEN428uSm\nrJX4\r\n=6M+2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","gitHead":"e76c3cfc8d75ca087492088254c9ef0e4010c0c9","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.3/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-alpha.12_1572657096012_0.9716504308181639","host":"s3://npm-registry-packages"}},"3.0.0-beta.40":{"name":"@aofl/middleware","version":"3.0.0-beta.40","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.40","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"5e7f971ac35a5550f80935cffda2354af1dfe934","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.40.tgz","fileCount":12,"integrity":"sha512-iVebvEEk6OQyPYFab+QJx+SG6q+hjVzMpM3mir8IABM7j53MIZUWFlMnlJGPUuhzX7uzev+UCP/rzhPNr2XVZQ==","signatures":[{"sig":"MEYCIQDznV9rQVpuGzpW1fIpoShzlh4nTYPYvwWhTUbKZ8e0pgIhAOW0NCmOQhky5nb8QcT0Dw/d+xN6MawXs8lkIjJZNtSk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18089,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyeE6CRA9TVsSAnZWagAATJoP/13QL1yVdODeelxYhAT1\nxMcvdisN6CpJfCrHa0OotIIS8xN44b8nbLg/OE8I7WlgSAGmKP8cc/I9Lhqk\nCfa7/dwyQDznMS3ivFwO1p+d1tnmIbd1dO5QAGWCZYYkIoDPmvUr6wkmvNp9\nzVhYNMm/adO4L0ZLEfGPU4ppdLbXxc962FX2y8ZDna09ZV/mHB/4xpizCkSg\ncPSI7jTkUImgvFMGBv+io2IcZNu0TdC2PBycWZ9YZXrtefH72fSXaEdKLh4K\n2ih1eNjkGrvJ69AE2AABwIr2Ypd9906i3f/A0lH2mouAcrz3giaBielOtg9v\nlbxKjpR6S0lUstvKd9gseLGSxtzG1LFTOB3c8uHrwSxTXItMFa0cg6R+N+jX\n1cFAhfIjcCsUlYdCOwt8Q5SMF4v4FcmXoxnlzYFtw2C0e8Jsu1JqGPDogkMy\nuKAo440NDmtPj/Svz1JlzZ9lQo7onpIioc9FBV+tOJm/gP7+pksJZICAnJXw\nRMEjJytfu8V7/SVfPWYmSJYcexfIyyuiW6PPQWEORPD+AFttckTmdTcAoXGR\nhUjqMjeMCkt/JDTwNMcs23+S3THqlqPBe+Vayv3LloJWFvULzKBQKBbNoO3E\nq6RfRraXZuIbfdNgKxBsiFGFoaVXRo4pkBPku2BOi7vx8BkFsJW7UcFZdKnM\nZYTI\r\n=bgNT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"0bfdc05f0d4406219d0b432a55fe53ab1726f4c0","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.3/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.40","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.40_1573511482352_0.3079982461131656","host":"s3://npm-registry-packages"}},"3.0.0-beta.41":{"name":"@aofl/middleware","version":"3.0.0-beta.41","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.41","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"aedd164eb079b5fc680471f6d4808a367a316dfc","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.41.tgz","fileCount":12,"integrity":"sha512-16huIWod95/MRVaWZkjBkutSRzXLWfyhtcEOkAkWGexGGilLvLdtlCG6NNjVv1tFOXMyKwbNjIXB9QwUDF04DA==","signatures":[{"sig":"MEUCIQC/lCPfemnkCGKIPUoU0n927SAsHS4GQR4kV3fwJtZa0wIgZFckzRBsXnqcZ9KOmdtkAwf5959dt+LVeDzOwM9nKZs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18160,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdyjtNCRA9TVsSAnZWagAAjekP/i2ovCh15Vl2lOpxFSPh\n7mL5c5687W/3hrAh4ucNNRooWu1lXGYDSrlb/C5bUkLWCsPHxbvLXGeSrJNl\nvoSxjX5zkPr1UKHyZkvHc5K6zu793GhGHdrKbaAm44EemaLbtdAvVNDoWZtw\nWzaVusVUlqg51PXdj9xySyaE1LjQFXtdgudie85Tb2rpikOokdmIdCegZ+mk\nNj35XlQbVy02eLee7CFztUxrou99iWpTKf6OJCrc4oDxqC8caDud7T7psTvI\nZtYVwHI5dL2cUBMSjyTp2CDLZiC4JyU4Z0Uh2Ov1xVOAXvVbFg3D+4mPBY3O\nIAK4fVSa6vBrhW6RvGix4yocnqxMnCSLTiZVnEmfl23Q8KNnvsT3854+nYOr\nJSZQJYTe8pma5b22NcabG937RABjuf5rEl5NJjP2SpZkPbGerxtTP3pcBrxY\n+0XNvAJ5bjnI2JbKGoC9GEWHu30zP9FfTIdF3plBxLti6SW2DC+OlhL0/FPo\nS5BsX5phB5apewAf2Ua29vzFuvD5T915xNoiSeFTQbJFz7X68I3ev9HpjSZT\n13UWvROLofDzndycOxIaSOKb7ec1ZyIcP0CVtgzW1yL0ZqEch5MZKqaKlV0m\niwWNKgRpGPbumpJFQouUQ+17DGQhTC/J/YzZGlXHZUpx3nkmNeYMA68gnrrF\nyIs7\r\n=avkA\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"212bc663acbda22a9679fadb2aa64484e35dc068","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.41","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.41_1573534540841_0.6744735379211784","host":"s3://npm-registry-packages"}},"3.0.0-beta.42":{"name":"@aofl/middleware","version":"3.0.0-beta.42","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.42","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"4ce82a4da7dfb115c1d1bfc4a445fe8364c40f4e","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.42.tgz","fileCount":12,"integrity":"sha512-qcttiFrxnn6XoyXzY9pbDOufdL6sQ8saaSpVV6VAmzUk7M2jgiecgNhbl1fwtFeJjxZVsSm/nzYBRNKZCLZTOw==","signatures":[{"sig":"MEYCIQCbdFGKvjrzOSqlftPxB0d5LDQsx/AOauV4Zp3Ka7xYjQIhAJ6QmNvONGL0WDweeZE2Gb1HHS8sr/3tVA28DHPTvCdF","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18160,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdykjtCRA9TVsSAnZWagAAmRAP/RmBhbI7cE2csNqfZK+6\nNdtye4zwkyKg4UpVgyZo2HWxwjAkCjyk2XSdXxZ0yc2JnCzsZn1ug6XmEKKS\nWwHkwK9wSgSSO+AS+Zyfqf4q40ojp5SkRJnsv4EOgFrJlCpaNqrKSqw5gDIF\nphbWYVnQ13ubClxG8l8U42Jr1hh7QSnxB3HyZkGLJFWh3xJA9jiduEA5s449\n+pT+BU6F9pIcDkVhYx6FTzhoMESUxBVRqa+67zEIoWK9RUs37kTjQsQM+tRb\n1yb7Y8iRKX2IMdov9J+6LU15warGl7Opmbgj2+ASIYjfWQfHACJXFS0w9f1C\ntNbyh4bt7A6nuX9oytiF+9yIOTUxURfu95uQ5XVZcgt1vHSTOGM0fRZbRbHZ\nrDeCRP2qwuqxVrJgPDBUAOfLNFmRmp4A76NUFhRYBI4zpsxYt/yQwwQhNo5u\nQ/3ZsCax0VWQwV8yz85jchihcWYfS809GUC+h2xCYvx8cRbzsF2cvzsMR1fd\nS4KBZHKRfGg8zoOJUR807PzuOnF72LzOlmN9j7F871ACatE9VuspkBTPreG1\nVWkU00aPwhQOAlWsf/vAGhEZRXE71ug+Mr9Gm8f1DHbL0Im/hZZlh18PbjmS\ntySQh0X/rFRnx/SDdeVgn0469j+0Jv+sN96yiJg7HXQWxiRGtFJwsDziIvJq\nX1zj\r\n=yftq\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"699b13b7bf651fa15a25ee2873b72d9fa1ef14a1","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.42","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.42_1573538029572_0.6071958882053925","host":"s3://npm-registry-packages"}},"3.0.0-beta.46":{"name":"@aofl/middleware","version":"3.0.0-beta.46","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.46","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"621e4a32824eb0bd1a4bca47ffc95a8971317abf","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.46.tgz","fileCount":12,"integrity":"sha512-wzdokhuH7VvsgXMdbpR3sueobaGq2IAuu6JGqzNPRGfCtVMQRdDtP2NvqPSeRlBxnv1u6eqy0d6rRdrydZtShw==","signatures":[{"sig":"MEUCICxJFx7qe8guxAJTJdQfau2o8ENlCX/U0IXM/FTFH0ttAiEAs99CYhA7dTVOfypgcTAfn9eSguWcBuuMsrnfAi+VSNw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18160,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzc38CRA9TVsSAnZWagAAFAIP/jy9akvxJx3BlUA7VkMH\nOMb2XL//rHCMHI/CLJnZscBobgUOTircb6DVXXJVKAoWCZStgRjQHnWHvtPi\nanNgAgl1qy3X/TOfdecZQDPwOmdC3iJcBPU/woEL8yydAVbYZ9dSQmBJ0nDy\nNCHYTaRVq2wwMlY72KfZFzGOxUK5H+MG/2XPZGHGQnO2/W7FQtkDP9V0WY4V\nVSEMUcgmXiVLaO2gHXZ5Jvylxcfw0SpAz8jhx6HbakrE85TuoNKpVqyEUwrV\nshdwvvRohgcMNibZtMDztyuc/6qawISTu0ax6n5ZLhWR57AiSF4oNmILKq7T\n6TEtaqdUbVo94eHkDUgYnPZvA6SpIeKR7rhqFcWshs1Tv7nK1XhednHx6Rgz\nsCEN790B+9D58zeC/SdCKssDAS7eNra24oCq6Z5RYodjXK726Td1BxKYNHYB\nS1HQ6uMAWU7dcndVUzydF0A56mWGYTTpD1Ao2LnUR2t9dlapqofReYKjM1+9\nHubMN/Dk7zhb7+5D2t23/3wbbBbnbPgwQBJt5EqyR7evQDrjPwxkqCxIiWOZ\n/WIxQhloTM+DieSVp3PNIdI1OXxp3J/m3BWRVw2VJro6WCGAWe+dPHffk0Zf\nvMLgUvKEGxCmnM9So7lLGp7ncy18ZIatN4tt1lFRTaPSr/PgJAJahL2kdXWv\nRsgU\r\n=4NNC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"4d18597a6b3e63324cc8b2f401d986dff832a62f","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.46","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.46_1573768700065_0.9625737692141381","host":"s3://npm-registry-packages"}},"3.0.0-beta.47":{"name":"@aofl/middleware","version":"3.0.0-beta.47","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.47","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"41c6a625286b4e5cd4839793f36938fd8f5a599b","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.47.tgz","fileCount":11,"integrity":"sha512-tNfyvaPyEzOO5i38sA0ZP9GPLHkxBVGVaObGsFF7/uaeFGmb1cCFt8kIaeObPPKOr3OxcMRtPt/YHOwLVai3GQ==","signatures":[{"sig":"MEYCIQDlmodNjtnt7wjaOtZIc0sQDCQY8Eu4EGOboI3TEvizmgIhANvrpSO4oQ4sWhjuXv2vevnJquEgf+rwNBCbjx6ndhjW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15162,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzfXzCRA9TVsSAnZWagAAyAQP/2ANyKQLDEuCd1mYxwh+\nkQ/NfZphXqESFRrWWEo1DEdP1kqumx56wPyivucy2h61IaUUB/5N53R60l3I\nIhkYZphUGpY9RyKxDYOX0aUaKFbecQmCfj8iIa80uy7XN6Jjb3+NA9nJxnbd\nYLMF6VfzO6yXYxzzEZhGGnkNADASlQ7ox8hjH5VoB1pgcVy27wvyXPmVpoTN\n4z86XvSmbYhxICP3AFsD/Dvdf6Ua7dBU3d+nkL5E5X5+H2P/zUAbf+Bon4dp\nANbOC4iPrnMSGri0vRyP1L5DUzLH0YAGmt5KJ0FtQuFPYY0Nawm6LMZ2cosq\nsafwcYEhR5H63brdh7VLWPdh2XwFJ6KzmTmQqm4UNfJ/+mRvf1y7+wnp78DJ\nHKkzqLsXB7GxEfiwYKK19CnKCrIM6ZcPFhOIYzoXLMmVz1kxbOhqz7IVq4T9\n8LZG56uGLoNSkGbFTQVgYkIyw+79TK18HLY5ymUbgKQ+hZjIbv1Scl1Bfo97\nvGStrqw/np37C5rA7hxXlwVSUou7qKXHrfqpUDXeHmATFLF0G6lp2vBpf7xk\nhe/BD7XUfeKCozGAyOBQ8WozFiQJvQCiUWigxTxlgR70EboeQaSka96Jnxsg\nVbgsDMOICViLJvMEJfSelJKRVWQwMDx7XC/k78kmItfgFel4S6iOlg5Gw7ih\nSJsg\r\n=sRPn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"11344382e361206a6f67f05f4904149ead37c1ed","scripts":{"docs":"jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.46","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.47_1573778931492_0.2933633244156142","host":"s3://npm-registry-packages"}},"3.0.0-beta.48":{"name":"@aofl/middleware","version":"3.0.0-beta.48","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.48","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"2e9b073b2e0b446435cf712618b9ba58b5be00ec","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.48.tgz","fileCount":11,"integrity":"sha512-WYNh09rLEV30aQwMY6TyDHKrt0OLsAV2lytof1Vdu4CYKrJJ/cE8yv9mRaJquN7AHNkpcOshegwYeoXHRn8zrw==","signatures":[{"sig":"MEQCIG+83fzDVHJPehQRUebC5KMHOY5VAoUJoDItgfiyiHH3AiAxkODShry1zTqU8goNNaskDs9gI9NIMxy2r3KmcgAwCw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15170,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0IflCRA9TVsSAnZWagAA9EEP/29HzXlz2qmu1aPyFOh0\nDEgpZGQ8ZiBYaA7JC9B59+053CVZqMi2UENSnJ/1UDNlUBOAOGLbwu/GniV2\nHuub64kQQZIatsplvF/76bduxWexxczOvisAYFJ63+i1TZ/WulfcoCIkcA6t\nwlxXVHK0uR4z+6peszdjtBniQ1f7EV0nX0ns6ZyRON4sxdfdkm7R+E28F5LP\n14AfXIZBW9mfcleiEoM5rQwz3w6Vtaqsr9azfCqQrK5crizABIv9Zjt6qKmu\n140eNciUZwSK1RXAk2rlwzCnZJfwFmydyOA6Bn2V+mSWP+V1Co96PTzObMEj\nicEOXSRqdDMWLeGmU3DdYxKZCtc2eIQbJbTPnUHwjsnUDDZAaTbm5xj3xz6o\njPELE96Y8Xu6WjLW9vEU9vSMgU9AyKPd+KuwhDikPLDAR0wubJ0feLkAln93\ndUegNJK9gciREg8z/CiURm2W+/3IZ9oyigFdSTcdgmpJmlc6q6nyEx/NYTuT\nJprNFAdB7SpL3l/LpKg2sG0V2eMukR1a76S4WBoe528teg1ixQxbuO+bf1TW\n9cOEmbEh6duQ6iiaUODxTa1S93HY4YOoom9F7s0HIaedeCtT0k3bnd3ZvsLI\ng5BjlCF6LICRNi3X+u9EHmShLj24YbhP9HRQS6fifvVzNtYBUdnmGOGfOZ9f\nMF9D\r\n=ndKZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"d77a51a21b591d1ac0032de47395878116e8566a","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.48","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0","jsdoc-babel":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.48_1573947365279_0.4504123531256521","host":"s3://npm-registry-packages"}},"3.0.0-beta.49":{"name":"@aofl/middleware","version":"3.0.0-beta.49","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0-beta.49","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"94935d23692530226973a4e4a0401c1094f7c1bf","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0-beta.49.tgz","fileCount":11,"integrity":"sha512-X50bzlorK/yXK4IhGUleOAYjnfK/g2LrlET35kHkTrEga/zAML7oEgZhIbfZBmDzEqR6Q8CNMwBmmTbPpnl0sQ==","signatures":[{"sig":"MEYCIQC92cJdsCWEGreJsBzkUrbZFVHaaaRxl1JAqWWPzvDtZQIhAL9BdfCnmOV2alimHsL5UvG2kv03myE7Q4UwtcEGv5Rk","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15095,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0MCXCRA9TVsSAnZWagAAbYIP/3UuBhfzNBHdmFetst7z\nQBS9hIReWvWCzAkBizK8F053YL0YJf/cb7x+9lIgJ4Zo5A4KhWIO42R1N5Yz\ndtpxj4afBDAJURGijQ5aIjcE5jYKuSHxqIfeLb49kLtzmoStpkoYrqxXgM54\nuoLocO3fFPNE7fK+RA7/o92uK15IT+gSHZ3ZIEo+fHE6DQ6rwhpVO/1rSU6+\ncV+jKzu+q1ZGHB/fZEbDC0npjjFjFyzvtYv0XziOJtNB9gbnE5I8ZUPlbuLV\n6PBqAtwUqMR+FK7fm9mpV+nZGT+UD6epZK879OPe9weu9gABW1ioSv+c8NHl\n/5niOl6QYbU1PJdiPHMpnMnyLoCZ+sgRl32LSLpoPA5987o6w+KHOIh1JeGf\n56WmW4gxJ8cvBKuJuo+mCaFUeSbgysqzaSBtj44tbo1EFQkZH08p58qlbppy\ns2mTnzFvICyb91O6XMIlyty88+6Ysnw7DtgxQsERz9lKPt3Y+z1sbfoAqe4W\nR6GVrtDbseMKQjO5KC8xP29IMkwzVrJ55UH7p8Ct9EULGR/PPaSk3inSaTCH\npbj5UWgFXp36iEFiRECYV2icZKK69ZkuwDq0gDGBbDFnLzIq6X0xSp2OVpVA\nvzD9sZFgds1fM5xzPD48xVNoiZ+jQxt2kKmpPrA48+DyutKKOIXCHg1yHyes\nr0sa\r\n=kqOf\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"a2642ff8dd100adac8db3d609f63e2bc6a2247f5","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0-beta.49","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0-beta.49_1573961879193_0.8058722665565892","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@aofl/middleware","version":"3.0.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.0.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"727f57fbb2dba3e8b3be25c742f8c1024b4b153f","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.0.0.tgz","fileCount":11,"integrity":"sha512-mp+yBe/faJZIo5TWz396RuEOl0cCNHTf4kRcGNqQixqzpbrItVMYb7rJipZs+UAbIUSzK4cKEIBNClWmzAnIzA==","signatures":[{"sig":"MEUCIHNQnAR/vLGw+4oZvfYKX3LAv8vrhndjRnm38IEfnAUrAiEAu+7ZOaanrGMtwNUS/0Yzh9ckQeAInhA6wtNUo4uQLE0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15079,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0PFkCRA9TVsSAnZWagAAfJcP/0oK9uf5umz10ptxgwbU\n302ALc/n1HFp4MgBVuM2V5gYO8jaoL2w+T15c8Dk5PYEgKahaadBuzvqmesw\nVmmLOqA1E7Av9PYYUxg3M1MP2jkTQJ6ob0lVK50zQSupZ7FbKZZZ2keCxeV/\n//saQT5Rpj67wrWZSPHZ3g0JTmL12tXdvIJPuiOkIJAz0fwBQsdXE14SKdPl\nol2Xjeezd6lVOsRjgHjOxHIyw9ktqjzNxEK4gg+v46Dng0fYKjh8bbDtRBLM\nrgcj6cEyYA4Ixw3TAh+vPH9kB5ZGr7XBmV/NmrNiDvCvFydOzbIyNTsd5tTv\ng6rnofkwpG+2gT/TUqFsDk7sH4AIowNHH0hVMxXzkknTQGCqwRPmg+a4InLF\n1ZfwM4RfK15v3GGcQdNZX0dcTnGWZOZHtcrWjSa84npE/LhEAc5+jZCqI6Uy\n41R4jP1mqi1DbL9LIpoYUWEod6R3BAmN2VC4tr/OcLcmZgc60b319+V13YEy\nnmgFeeVwj+HjZHDVpttrBphgEzF+bxNS0mZXjWYX/GLy4CgqfzfP4qG+V56A\nnhE6ouPXM50ZXr7ISatqq9FwMFS/t9Ffw5WLGrj3XcrPrZ8EyrTxG4yI3Ymx\nCjih2KeaHzdwboKFr5sL9NOjvEVHCJMqm1lD+50XRBRk3fOgqBq8j0PjtzF1\nRhTR\r\n=bFbL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","gitHead":"bd783440a25a2c579fbb506b92d90bf4fb7e0289","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.3+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.3","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.0.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.0.0_1573974371762_0.8982734296542123","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"@aofl/middleware","version":"3.1.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.1.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"e2f13d720327adbefc341249cf03018af5d01764","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.1.0.tgz","fileCount":11,"integrity":"sha512-cNvdIzhxVO8ewUnZLsteRtSl2wRVoVKItImMMpojAPcBOKVcIIdna8OsDlwdWGyigaDnNfRqh0vlTZUQG5I0Ig==","signatures":[{"sig":"MEUCIDU676CBZknaJMYJFiw/UDsavrKIJ5k4pq6m+7SquNQxAiEAtKRKFcyQa1c1Ol/RU3FU0MrkzG+zka3nvraF29rJ6+g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15079,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd11XTCRA9TVsSAnZWagAAnfYQAIFhvqwcTnTzNx5iGRy8\nZZJImkoSMUZXisKj0hYSc9uNnUrXPM4RaA/YDdB4DHZ2qWcg6waAsKcDef0T\nE1MiOXETCfWa7r1rCLw/fyYfB97incHlzMwxHMca3YHsQ0rUwv7wEPE3qus/\nO7ierfQ5FP3hwBBVjjaEfmgbbb+cudWlTs5ygKVJAdmwd6JmYAP4WM2Nnu6X\nbNjXkfTkURIj2eboSxVrt1d9M8uSPjVppbhZ70wV0eQ9PJzdmMnOcmDu6qjq\nFXFHOY7rgG/I8Aavk678JPJErsqlBAyBJaiL5V44q4DOX0yyYyRyrVYnTWm5\nmzPzgWeKkjiu/GrtrFfq5hMenBWQo3huHcPb3YSWcBTxCTphIJVmJlq+AgCM\nlX5PHODU3hbuU+6ft4+jC3tBxsG2w9xfPyrdB6Dr4sEPeYzJlurTAoAb2kpk\nwK08N/Qk4sTpzp6guT+D6ibQiLWO54Fv6XC/hs/aRD3SzdvKpmr3nZrjTHJE\neP1tqoZBL+PDblQOIV7ooz78V0Iyab59bNg9wJJih451wbWa658Xqt4bAlUm\nSqcJ/3dVzEGVdNNkXF2KX2UqLZYonDhpLOE7cVuLFqpUNaPlRmr5aelmSvb5\nBtW572h80aL4OTKDhbPuNDHKE+Mg1aRAnwJvJ+QLHDrj/rDonCjSL5iREtOk\n05bE\r\n=RQu3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","gitHead":"cb7c610ce117e6fe41168dcb3e2758d12900b277","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.1.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.1.0_1574393298728_0.8310193923113052","host":"s3://npm-registry-packages"}},"3.2.0":{"name":"@aofl/middleware","version":"3.2.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.2.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"8be26119d7decdb1274a22fd5d423cee77278ffe","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.2.0.tgz","fileCount":11,"integrity":"sha512-DxpnQU2oMf3vhs8OlhLp8xYyqpCiBq21YjFzGT6GgxVC3UI7G5YpIfYpUeTIo8+JNfUEEZ2JFZqUAaLNUrhonw==","signatures":[{"sig":"MEQCIGP2t9qNi1497DWaaEluuYNASS6/l8SMgNNNqqma/Jb1AiB7xETGINaFyHD+Z03SsymWaEyMiKKXeukgpovdycjFkQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15079,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2jKkCRA9TVsSAnZWagAApRIP/3iMlpwk6AEdGF3pd4MB\nUsdRnbhAhF/L8dFb6gyC/p5JL2Fwd4cQV0JSa7M2aBzmZsd92xnXwujLb8Ms\nq3kNbObl+rfh3cCb2jgavE0RWk3ca0+1Mx3jOuAyDD/atm2Py18EtNWiXe3C\nAAxHllvDt+o6wWcdUfBdV87BnPi2nRFkeUqW9DrD8FoQ29qEjMEkg2pEbH8C\nl6NDf35qmCT+zuqjVFI+hLxkvs15BPHtjV0InJ7U+pac0RCEI4nsXVsJR2Mk\n7Kx1MHHkC/m2f67kAcSBm8wBwWb9flZn+wJ5sQI0QkI1dmSvBN89CnCV7tDW\nbrJbNqBrDNCF8yBlwUqm0hFiJpo67YRt3j5YrucgYLbcWeHivEktkD7rURxH\nTDgYGRbzjwQgtUoPQFRvXtAAfFy1hkd8UZjN2DP8DVsz7BOIXpCD4zyQjRPJ\nenrH0JbqWsE+9dfbDl7u8B6R+FtE/wJ1MCfP5CWeUCRgXNElYjUpIMZJ7RSs\nIjfWczSFykH7muQ82bJdHGjriGL45xAx0tM/P9bDZVMbkesE2fCml6RsJQVj\n9T0HVCbYh/3X/E7uLcuGfay3SRPnRcVzVBBKdyJFDRBYGbMvsghMrIJV3XbM\ndD5Pfqt98SV7Hxjrz+xvUA1XkRD+FUexztlxQgz3Kxy2GxO4lJ9EkIJSo/7i\nmosv\r\n=W0xQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","gitHead":"8275111725390a8f797467a12e045c905a78623b","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.2.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.2.0_1574580899781_0.09184331124291067","host":"s3://npm-registry-packages"}},"3.2.1":{"name":"@aofl/middleware","version":"3.2.1","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.2.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"17a37a0320900d95522b59b9555aba33d7f26bf9","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.2.1.tgz","fileCount":11,"integrity":"sha512-UpbIckYzWTPhwYFLZ8rruLRmdkIZwovdUeemrwLXGfM5vHVTPcoyngriWlaYPSIOr9DNF1mLsUtfodaAeNzASw==","signatures":[{"sig":"MEQCIGqh2lPEgkLX/cj8WBEseACqQ8eblVqbAiiPLUjhyc3IAiAsvqPg9nvweHQHx6bsCRqk6xWA16QjOGBxVPMwfk20GQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15079,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2jlpCRA9TVsSAnZWagAABS0P/1bVnyDSQ/KVD+V9c0+5\nv6dr+Bd+B4+tPorccITMppQWVCIikkHx5YCOgWe3XfNT3sr+CiriTXv2vB55\nb9Kb5ZUYOHAGoq64HaZGQ1hWcH2Ms8qCWmtdJWzgkwYjvixRGF7uktvtSyTR\npHqbnmP+zi6tjKumYHk+LAnACnDoj2uJHtqwexqzbUrSTX/xw010SRMvJ/FC\nyBmuViqJ7VOmfN89Xm70wGiekz6q/lFsI+6WqdtOpS6iDYPUPEdlKpQRDCnd\nMl+vBQnPDBMytP65CBfptQEZbjnJtYfQxwg+LDFpxQQLCTZeJwgjR4hRGyA7\n0JdNw9TBH/JM8ZGf3D6nRemp6KyCdt4mYpmSkbTXUI7zV+5tVe2JbI3I26yY\n1OBywe4XyNHmx1k2qjcY4NWYY0AQVFExi3WjW6mMVbStV8GkYP1VcOaYbCSe\nUIqUhsfFPP7/pfu9hUxe6hcqo464r7DVmOo9wrCTXO55dH1gnJ5WWhEj9Fg0\nMiJ+6kmzv2xlRnSx1rVaiNcGaj/s8VqvHm+RAEi4mKUq9bwpJI5LktrisgPl\n+gYA3vg4LWiurPU2S23FpbZP6BISXa5kVdTWpa+JQFKZhweJlmdRrECCykw2\nxdK+9+bwcrfQG8xODH9BLJOhXNCer/C1uwtkaJrzWpmNbGvm1S7AqodFNZnw\nCCOA\r\n=PkfS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","gitHead":"a3a91753b98e4423d9fa5bc05d8cc8f8754fd040","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.18.4/node@v10.16.0+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"10.16.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.2.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.2.1_1574582633459_0.3402273747668665","host":"s3://npm-registry-packages"}},"3.2.2-alpha.2":{"name":"@aofl/middleware","version":"3.2.2-alpha.2","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.2.2-alpha.2","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"4af2bf40a6caf78d8bb94ffbdd337da66b33fa15","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.2.2-alpha.2.tgz","fileCount":10,"integrity":"sha512-oecWo5vy+prPhda2ndtekCtNathywsyy5MLt4nMHIkh/tg+yhKVb1k+AvzaRPVWRvfcSyYXzg3qe7dsEDiHB4Q==","signatures":[{"sig":"MEYCIQCJBl4C7GoQclcuckj927L59q++VHR27Cww7O/GXmPhrwIhAK1Vczq4z2psNbOkwVDpuNB8OWtSPZyJJL4rKvzf3Oyt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeHiQpCRA9TVsSAnZWagAAPkIP/1K4yVHFFbhXZVgoidWM\nI4+nWfImSyVdf4pZYn6dHErP5q9TrbvGFF1Egxx2AgkIfYTH/ZJ89IB+ZIfE\nmdi045tYymY7gmJbvrJzm0UrCds5/q/PQPphVZhbkkDPqrzXHMguUHNltGGr\nXp7AEajYtJDeHEbGIf15aHHPLfY2VRGVY+FWzEDTmjSixeTkAPGtZa9KmEe+\nUO/IQ0WbGrwgpFVLTuZ1jkLjF3+U7UbgiXrT+qia3A077lBonS1tsLMD7EHj\n67RDJ/urE9HGxev5/ambEaB7Hao5TEvEVYooqmsSbTfwjJ6JpMm+3QAOFa8U\nKy9GZfSJiMpv/ZVN5LW56z90E287FWkexi4d4qNkSxR+cGaZZ3MQkcDFb1wz\nbbRwN8mu884HNnuvQrLyTfmaoQuLQYHnmIKlqoOCXpgniXYWepPmD2qPUFxR\nZfJR+FnjtyS1czWII5i12d04eJK2cc8chFkoEzIwNlkl66J4RTXXQEHCgnZN\ndw79UkP+9/PIDb8vGXSqZd9xC6U0SxizNn6jAOPApCWwH4+79amL/qFCBJoR\n6/Zeev01I0llSo9Ie73gzh+G7tMpuM3Itx5oWePTfeGx9hgIYflgDyYo0rwk\nd10rk9rPcLD7F6EO9dD0mw3zSeECavMNLX4PjRFlIvniLsrEkBqnxWrnVQI8\nqJ2L\r\n=PbYN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.2.2-alpha.2","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.2.2-alpha.2_1579033640861_0.20814800621655882","host":"s3://npm-registry-packages"}},"3.2.2-alpha.3":{"name":"@aofl/middleware","version":"3.2.2-alpha.3","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.2.2-alpha.3","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"2afcd690b338dfc951a32b40c18f36be56a9b963","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.2.2-alpha.3.tgz","fileCount":10,"integrity":"sha512-nCskU8E++hAqrTHM7Pd9aAQrOtU1tvp81ZWy+iccCT1YFvSuyJXWNS+WWhFca+w0vZYPq5Tg5lBHl7zo1IjQLA==","signatures":[{"sig":"MEUCIQD6vJ/rV6iIPcNKLy7HD5F9prkcRXQgeNKf4BbOH7pwWQIgW1x17q5YH7bb4E61DYUAPkAAJfgq79CG5+mHOFSEiVk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13957,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeHi7NCRA9TVsSAnZWagAAjw8P/R+ArcOaFjJUGpIc5qX5\n2WoLqdESbJJGkszZOHhb9eiz4o9Mx0Ep8feTpKH5QYrAELUvzM2g5N3iTRkD\nWpBGRTYx2R/8pKy66/i3Xs7WnpJzA8+u+Nq+jlIM+DIysFQjY0YWHcB4FiT/\nE3izqK1V4hKSStZm/9rFx0qfBImvFsd2CL1uuHqUZgUVi/7fIMNSmvbnpo6s\n+l/cRO7SUxROCXV+lc1rW3Ujnfda/gC08Ha3puV+w3re8ICMUqLgelgmpMeh\nKD/B/IxI9Ylph7LNFjVwzcUx2oBOVr9Hb87Z1a5nQgQYWPenCXH5ujPzILqy\niKQe17fw3Esg/dTt4uy0zdUHlBLbPEu1BruYUwg3LZTG0cgHZc96UdvmjhOw\nYKjX/QZ9hAv+YaJ+OaQAUxrudI9zTxu2QzkdqAYPP+q1i7N6LcS3nLul2zbj\nYvVi6BqXYn0RWoVdihvOp503ZyT/r+J6qSOpa4Xu/oXYSU910gvlCjJhR5aQ\nQ1XGXqiEfdxIpkSfWCJZ9uXzGMzPfMjWHdCMgnE7iyl7P9CSanH3Etns0m/K\n4B+gXmme4zLbgxGQ+5pEh/oNN/3hBARAOHH7FvDIK2TaZjDljqJ676xPiZ5b\nd99kqEfV2Bi4T3PiRXBI100T3g8CmXrLtNGTZ2AsyCfU5Kl2ZTLPFL7A1S5Q\n5I+h\r\n=2OOB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.2.2-alpha.3","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.2.2-alpha.3_1579036365027_0.5318728564948978","host":"s3://npm-registry-packages"}},"3.3.0":{"name":"@aofl/middleware","version":"3.3.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.3.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"8872a7df95435eb14e309c08f8893426d4b4b4a4","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.3.0.tgz","fileCount":10,"integrity":"sha512-09yTSDzPzUsN1GBj64PGW9D33OuTUtMWuV04MIg4HaYkaxMDj0jwOMISC5EONfYpE9jWYkIEvbpwOHARiMLE0A==","signatures":[{"sig":"MEUCIQDLyvg/YlXYdntgSzp54mdlWGIg1AQ8kqpu+KmQ4q1IrAIgXhqd5LilUi+CsCrfskNhyuy0OefI3ayL3hc41gCBi7E=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeKNs4CRA9TVsSAnZWagAAXUYP/jgouEmKRkaJSB1iZUTM\nrLUxHauuisuNuNC0leh4D7+/cLVu6ELYzUZ2qQ2v8k+n/P8jrGWWKOBfzLnB\n56GRyRpkn5VCmhYu0RMtNCwDhOJx5xQZTiOVl5WPTRHnqRyE0ZAKzxV29O27\nvq2zx6yjkCIqlyuL3x1D2vOxDGPgYsT0pvyD542to9QlXSf+m9dpHdqKRFOu\n3xhpPJ2cuF3snfGgyobuSqHfa/SChLGEfkNvYt40rFCZGjVXEzq4osv4BWtN\nTwUPFU0CBGgD91jI4EVkVwm9Yqj+hl1bhqsxe/q7M0FJl3RcBZ0deEj3ouor\nbFTKB4UbTFo5c/W9OoHhk7N2MVPo+8QkxgkanGOVqYgHv4nc2Rj2JNfoBm94\nVRsnSqxnAzWutxL701QAoRIT0SnZwETtnjjCbDfRhrVrqkxhiIN4Q/A2maxa\n4AqX0WXwYG/C9dhSOH2irCVSC6zJDRO05irw5qPvqTPgsC+5f14L4ZWiZvhu\ntPxKAfWaYljxHZLh80G6vW/ifQXMMXKreb9uBzKcVOemxRzDLrceR1Apxm8x\nV4AHhqNwNouz7bCOQeVpx8vfQFYpv5hKro6mIhITAIdXwuomTo8ly4HL+gaI\n2yFn/ygaXQdj9ZO0GLbKzbW4FBwbqD8K/fIcwYCIPH/nw6sG6rHDXZzbPHOn\n4mWz\r\n=upDS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.3.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.3.0_1579735864097_0.6547506589572092","host":"s3://npm-registry-packages"}},"3.5.0-beta.1":{"name":"@aofl/middleware","version":"3.5.0-beta.1","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"341e96007f3af6a5ed5becda6da075be59b3c19f","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.1.tgz","fileCount":7,"integrity":"sha512-rK+Rs7Hq+giJL5iaN81MVluGrGkT2pU1ffAnispoT2h6tAkfFItbIndhwP2gAaZEbfxz0cKACMvHyupdIlbc+g==","signatures":[{"sig":"MEQCICsKCYZoTKjrJnsJT7bh6OzRtMzgCOfFxalb9fpPOJq+AiBWiIxWNAzwrFIbthTg5XRPsr+BdWU9W5MQCq/v1vuJEg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUbifCRA9TVsSAnZWagAAgIIP/jm+OWlUuN0LXzQLTAca\n51T94H1Uv6kHXlpjSj9JzwuoEZ6YlBiURrfC34rFInYwdzapK31tbZLgwNsk\nppTlp2t3hB2GctRG1d4rKoqYR43gNAzNrrglmoP9So+xg11VWU/FGkF20JiL\nExyidCJ5GBHPbaId0lvmffJjg95uGDSz5860JWbkZUa+T03z+VcVpmNFEsF9\numBULV6C6G/ssWi7hnpDaTWE5upPzHQV3pkh570Tfe+X9b548BgMpH2TkYjn\nciWHnvHIg+9dbRHon5iRs8FY66m69XJDcatJXFI9cuDkT2+mV/Z7O5nGz99g\n1guIob18HHH5gqHUt8IjC78zuQvcmOPSaQzeDGm7gZflTULB9fYEGLiNvk20\neWpuXk/swVRXZavz/NDUUYIsON+jjo1fEgTSgJyuGCWfVTyatgdSF2sJc6ZG\nQu9+TMVhinV8HN+a06bnC+2tbqtRmKB3ZOvA13qjdv2eAldmoTCS0dsfREbq\nr2j1Nf0J0cn7e9KCa2ufRgWklOW+oYFURyuAyu4MtrbDqUoIoL30gujmqc0R\nYfXUEhn1YUwT+CJHltSx4/DH7q8b0lOyZ3Tm1UEyvtrIXvEN8JIonqgGjYdz\noJJO4u+RkdpxoocuWNOJVVd1RXyoPMdieC5VPPRq3J+uuf/U3Vju+SDKkezZ\nJbNp\r\n=HJXe\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.1_1582413982807_0.44121339051109465","host":"s3://npm-registry-packages"}},"3.5.0-beta.2":{"name":"@aofl/middleware","version":"3.5.0-beta.2","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.2","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"19d613fd649f693454873c2cfa5e2c518f2e381e","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.2.tgz","fileCount":7,"integrity":"sha512-bZytKJags989mQc2vos5aw87AM8rt57StsPrmFqHKYqNDo1oRb++18Vtfntba2syxsi521ex8KMD7B3L+eoBig==","signatures":[{"sig":"MEYCIQCZTqeqpmeMw/ME9q+hPM/O9G2nbknd62jWiApdywoIJAIhAIWpEnQvkXZIIGjjRGN1eyKKbft1/uI9TMwAifshBGBd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUb69CRA9TVsSAnZWagAAH5MQAJ0q2kI99ljSanOLavlT\nDUQEeuGCpcw0gevdUf4DMCLEoktjEI9/kvPBvINX64JzwJybr2oM0iQrQiTQ\n8Lzmr3wlRyFwb9lA/xvl+1rccYYKx/OocxzEdX15A4HDbkWmlzi3I2u/3MFt\n55DKQ7ppJETjrIxP9wWdr22rqzNMzhDEEZzNuBag8gDsfUDSvsZzmOVrd1oE\nzU6in6jtuTO0aRnBpcD5Mio/Pv0pr5vnbXwsqp5oo34YulVcnS2Vmifbcamn\nCjtkZ5H3Azc2dMFS1Uq4obTQYph5Ze9na61/ki2P18DvKPzBiqNcjoJ+BHlU\ntjlhDu5jH89+VF1QVLCFL0s7YUqDN1lgUpdHbtzDw8UMAkMwIkKZlptNeGvW\nzKcz9upCBRkEjpvyEEnaMhAR2FRIJfYZze9iqNzs9HoPbk64XD/Y1Xepht4M\n6PoS1tqZoY4HxvNXyHRo5JTi4S00QPjwDVvEYA3VtVav02UfVpxA59WIxoeO\nVfkf8owYR++pmAe3nxWaSHaoeQ0KP3u+awLs0SkVqKLDpa41oVSN2rIhnCXN\nWxk/22LCwEHWny8VJ/dRuNKP1boHeEvt7Z14Gx07RMul63P4fM0IaZQY7o61\npTm+jAj8SGgCb7FFU+0UOYvV4Nf6zJFYQ1ZRHaVTVHHUEDjsauM4FwP1KzWP\ntOxT\r\n=E1Pa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.2","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.2_1582415548708_0.7324479325478286","host":"s3://npm-registry-packages"}},"3.5.0-beta.3":{"name":"@aofl/middleware","version":"3.5.0-beta.3","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.3","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"3999e76f1ab4bcce450c153df8b6abc79ecfc788","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.3.tgz","fileCount":7,"integrity":"sha512-Wf7LFQTDuKSVqq5YFYgyqg1BSIcniPSHi8TvRDXwsmiGOY4DzM5fA0I4RO83N+eLOKe4L1Z5ykAA+kLSvskFng==","signatures":[{"sig":"MEYCIQDtgPZzyWXDfpxF6TjV1okLlruuvBWlvtBsEvSBa7/15gIhANc/fhkZMTDxvuG9BCNBHNdcuI4Cj/rBtvavXUz0kgzX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUcIuCRA9TVsSAnZWagAAcNcP/2uhogNmeO+4I5sHZd6p\nYuqaxkOn10jl974pPSRJhaBxXHvYyzAjivsQFMm+a52OldNnD5suFHnc/FRe\n0itkThbYBITAN6PHam/XZoGPMJUXnN0hgwHH+AGx8eREWLBZ5OG13MS44jI6\nobiag0c8O7oyewgq+YbVp2pGlIhSsFPRH11EGwwQ1TFJCjgDL0wKulC9sH11\ncQoHV1HIotPai+/D5qU7E4qabCuHGjCOhoTxewihUK93feOFS9Wz5NwJerQD\nWgH58jkWHVpzUsyOqiswV/OdNGuxzZFvCBP79NdEPM0WnX47G9unvl9Z3ES9\nIsiOhBCZJD7dczL+NEcIonKdi5JacKUghQreoqDD5X8OPJFesHbq985GbWHC\nRobZfhs15IwiqFnYULSlkLsh8zYqTeeWi3Z2FvVkhUcOR4O3lYyReCEfm01l\neFgAayzE7yOQhvfyoUGFQ6rtnF5f/yo8pci6LTuJ/qKmscdxOzIQkXa1XFjc\ncBaqJ9m8ne5jMlKDg/vhD2zUXqbBxadH4bdiDnFT23K2EPT7iWIo+9A84q2z\nqUCmdDWgyYiFIfp3D0bcmBxJlWkbxkni2RpZux7aH+/Pov1CBQZCTP7v9qYO\noUo/o25ReKDF2At8MyO8+XzAsIZ6bunus4NY19OjpoKqr1+k5s5Q6r4c2AG4\nTax6\r\n=Py0h\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.3","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.3_1582416430374_0.049807748524061335","host":"s3://npm-registry-packages"}},"3.5.0-beta.4":{"name":"@aofl/middleware","version":"3.5.0-beta.4","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.4","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"85adfd122ea70e0bdac12d16ff4785459804e66b","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.4.tgz","fileCount":7,"integrity":"sha512-9DaGTC/bobLf0+J4NiXWew2skJdR2woL1zhb4AP+kwBfwwTjwYreOWJDS/Q5/tsHRfeKVheyHvy8jfzrD1Y+hQ==","signatures":[{"sig":"MEUCICkGWVsH/Gd+8eirM16IBW4IIkkeFPcxX91gyKpOrwHdAiEAiB/eA93acDRCLx9p9epda2WLxBDxwQmNQZCo4dTflf4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUdv6CRA9TVsSAnZWagAApKoQAIbhKAD0nlq1DEGHY7az\nQg7mw/JbwRbcT3SjgJofOt9AfV5gL/EoObVZG7oN9X9SDjWcs9akohPEfZVM\nIw3khmobLeS5mZgJ7/CS5jPcPZ8YqQugxphxKs2DWpbPzdHhJO8Xh8B9Bxwf\nr+XVy2o8bu29ZO+z+86gmiYRmFFirrYyBuWo9YtGfXOPDHdHFG2rqNFoGm/V\nFVxeEkkqbsUIc0CdNe+wjpTC3NOv5hXPjm927O9Zf5p9gHNMMgMV/dej0o23\np4jPsO7z2oxxFTauYEMdhTNX232t6Qp1q7uiN9rD3OrHVfeJK3ylxVoOYs3C\nxsgbTchiJltvCTStBCgDz1N3RB3A4OYZ/DP7iVne7DVwZz0aSAzZwJRZraFK\nG96JVYyfD/1Xtqi5wL9iRZpho9BF0KS87uSETqjywbObKSPQSlVahYONRoN+\nonwik6jOPHjopxcScc7PdM+DHkORSEF7btH89Xjx9C5mGuGFOY36dk6Bydox\nHDdSOFtNBUsurt92JtekeHyUgfjUQN0h9BKqUh5n3kGhd+xAtw7JLmIM6ecB\npfEqfnauLDzEs2fFpStAK4gZ0qXbj/S+GfzMCH2TbJ38P54b3Zsm2GL4KSef\nZq1x50UrsbkQOE+UEKgIBBJxFM5+xAxQGpyHprUSpAEd0kFqHn0/cXGU3zJG\n+3RR\r\n=/CDj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.4","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.4_1582423033637_0.8559342729652426","host":"s3://npm-registry-packages"}},"3.5.0-beta.5":{"name":"@aofl/middleware","version":"3.5.0-beta.5","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.5","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"82f5b7530797b6faeab67b83578b07ded0468d9a","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.5.tgz","fileCount":7,"integrity":"sha512-Y0q0c0NvBKfAwbmb85RfyDWRB/3/wQuFyz/xHkJDZoS9T5P4q5oxj1/l2FgyDvDPQ+TuZweLejSPs9YA6KBW1Q==","signatures":[{"sig":"MEUCIQDYz1C4apjEo9MxLk7KshYIdQN6ag1DP8MBuhXiF02yCwIgFpB1Lbsz9MBBebOM0DmtIb9l4W/0r4zdGCA1xR1GTcw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUe0NCRA9TVsSAnZWagAA+msQAIYNBO2pvENYFbAiAi8k\nYcgk3Vlll8U1Zjw6pZ4hDj1sGST+Hc1t4nI+9HveM5/lKKeJqdOfcswukzGc\n0tkvz5AwodoglS3HVnntLPDfjGW28hh9PugxGK2iiEara3EzpKiQX07miaWU\n6jEd9sm3ap09i9atqUv8ilcKL9aUuKEU9n2nKoZ2dX4/5soWGQq3KWVuwva4\n+00jznBpWqV0KaqGeaig5pswFiRKeChB7ULTWGg4UgIuY2Sf/+rVA1xlfOv/\nC0sMoa2WXP/fDC/EOzmAm80coj1aUsq6Q4CnpYw+Ju075Mnd30Smq0uBsX1z\nWuNKYS4yiAQ56OF18VJZ6ty1GZ3hn5ECmHEYoIasTBvb8cI09y1YsU89FbQX\ntmM8urVNQMx/06tjXMC+Su5rKSeCmY9Md48FffApFdkvTdmsRz75O0cw+agk\nOCj3Dq2x+goKxIJ/A2D5HguaUzVq7M7eFir2vCHNJfBDdyk9fGmC5RgxTDQv\nLr8U0f10kpy+nYyZZukMdzouTdaUjrvX6J0Z6OeoaqlDW5zacyWj4IHD9v8l\nXE/8N92W9aPXaqy71O23XUHy1mOaWVRasesPKCUM1m0ef0K/hVOPJUU9sHjp\nAeRsvqQYam5Mp9XVK57VfDYCrKxyzVWYBaza3GTixrLH0x3jwXOYk+1tiDby\nLf3S\r\n=0v6n\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.5","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.5_1582427405015_0.9460079674894215","host":"s3://npm-registry-packages"}},"3.5.0-beta.6":{"name":"@aofl/middleware","version":"3.5.0-beta.6","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.6","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a7625163a7f382b33c9a0ff475ea32e9ebf805da","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.6.tgz","fileCount":7,"integrity":"sha512-rydN/rpXWkruMJfSqCkk88kx/HRt1Bln5rFONgdsmPgklQY7ESDBMC0qkU9LxAQSXbJF3I5+6EZBYPKxztjNcw==","signatures":[{"sig":"MEQCIAiq8KqC2c+7fndGYEAuHqEiaqVSWwTpcoXF1YKEXKAbAiBAlRe+NDb0FuOq2p6xGXKPiwtLw6ECowFcRyn2vAZtPw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUe7PCRA9TVsSAnZWagAAlpQP/jBhVkCRPsjV6zWU1tVm\nq13/aPKuOXQCEeE7d2MA819Qe5t4W07b2srfHg9a+j0+t/vAO1H/x0+PaZ3L\nXY9o24NDgsWEQWq/Xyreva8lNDWkuENFjQlNyY4dbgkK6gAyZHIFr7sWkt3x\nEdV5BV2bKp1nj/qp3CJTeZmRmj+tURWetZ03XlhpnmvggqWGn/e/5davxgaG\nyMWrMKKzHCYmM52G4KWyxc6WQb6RC4Vqh/pm77k6kOfAee9VPEXP99F8Q2EF\nNaZbhnhTTsgbPy4D68zZJMdOw1NqLcoLMRvUnyfuL4fkGe4GQKvGRqvbyV8N\n4iwh+YAjPISH+XHM6CpitDD/GAZPi0T6igjA/04avfJ2goV8hezYsgYZ9poV\nK20C6QuNBmIIOW110D2oQ/55idG4t1nLweAd2PV9EDCNYp+we5i3C/b5Pplg\nZtbRHANjd3fUbkcMHDxyXBjfIZf9cQfMpFhKKfd+EGHIuybPUlkUu6rJHjAB\n/bIl3kT7VsBWuAF9NHCu+dJtvcWbaPtqRvbHdk5lKdOi1mbnt4kjp0SthWa1\ntm5VKfyCgpe2RTOZ6ZOOcoIQZOf9q9+tegDswW9WkI0vhca0PSjuxAgfwVvE\nkLpsRHKydmiFT1AmKL0nM/ciKERhXOFIc7P3QjzZh3kwVy6MKhZaiw/lZHI0\n8GCP\r\n=SRrK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.6","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.6_1582427854622_0.44163468618111246","host":"s3://npm-registry-packages"}},"3.5.0-beta.7":{"name":"@aofl/middleware","version":"3.5.0-beta.7","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.7","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"1f3d4ae6bbfbb1a20fa0525a4934c6ccd04b6e22","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.7.tgz","fileCount":7,"integrity":"sha512-lA7pq8hT0yMG0Geluif0TkUkf+6zKtNofdReFs/5sLiauvo6VO9KNlh+5Z8kYpZLSVBJPy577bagBBe3OYeASA==","signatures":[{"sig":"MEUCIQCru4gJ0SfXU+H1pGhra9vKnbgmnEw8OKwWMVZh4J4vIgIgQyGwx6Gyns3uvP3Pl5RRzEWmLTIM5539SR4IolEl4gM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUggPCRA9TVsSAnZWagAARnQP/09zOjBGgushtsnMUe7v\nyyfZicUPyUwSUXC1MWyxPG0CkubrI29xfQoI8u4aU/meyGyDqwgjlTOkmcTA\ntWsYQ8IaVXfOtmqbYSLOnqzBzBqHPnsJF174h+h7rq0J+MnevvaIiyf1hrAX\ng8xzoCAyLddNuU+P1FITDlmbpMnA9Kp8werhuoy2+BMHDIxFQVzsRFpb0GXX\nqV67qlbWzplgPTttAojqUZDhgU+jWYWvRYHbfbOUjHTZTwct/knsNb6OvK/I\nJPXgmslPZekBkR4Kth2zfjiht3gVhCFLorsGs5p5/ma4L0bVek49iU+OWJwv\nhr9Q3cp9DMFHNYmRx2Tupd85H+Nr3ykavRzsP8ZRyiJj3O5RvofXprktrurJ\ncSwMtz/e4njDNWAGd+8mTSwjqqySnhaDic58nNlGYlRbdC6ME2E5f4G502Kg\nFrsMT/ikG6GnBK++wdDrDaKOXTh5LvMuVsRHpvN1A2p9JPr2WZ2hKmi20CAF\nTg9rZZp/aqufaMEDLGWR1XtHvDsJFbAM+eYlYcBgS07dHNSZiuB1M0UTkwqO\nEW7bEKmSWMO6hF5RjTgQ9XXmwqAwV9jPVzLy1LX9kqkmhCQ6zCnIldBKswhQ\nbFzzwiBposRZAvXjhpBxao3zALI818CPAC1G1nNxzafxmVlwz14a0BzguTMJ\neJBF\r\n=EMgC\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.7","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.7_1582434318893_0.43181959446419915","host":"s3://npm-registry-packages"}},"3.5.0-beta.8":{"name":"@aofl/middleware","version":"3.5.0-beta.8","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.8","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f10bc52fb29b1ef1a79fce9a96af40d0dcbd9dd8","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.8.tgz","fileCount":7,"integrity":"sha512-ccRzBC0zBu3BoyOk1g+b3DESv5bvHXEXvZyNBe3qlcAd+uKf7IgI/c5xfbAwe9e6LJZOGRPMe/eTqOEBRRA7xQ==","signatures":[{"sig":"MEQCIGoJuo8RltXAb5RKFIYD7YEMwfaSszJSUR4LiHrBtrfdAiAC2+yeb1pap9LbYAqL3bF+AmsMcpH+J+HhX+krbsPc1A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":13022,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUgjRCRA9TVsSAnZWagAA3O8P/3XfBP3FVvuw0ci4ctsQ\nGWBIvrq1iah1ge6KLesIa4pb4ot4efOnLkq77EF34izASwV4atL6xH9b+XpD\nrvc4qTKnz78PXXJ1PTeJWBmu5mIVjoiEwmsYVCEzvZCxYDxGcAQ33xypTb5X\nRIP2xdBAUiN7ZhPKYhpCqBJd2Qz6bXKT77EX5hryUDGaW9Dpxjj20fy+1THH\nMx54zrQv3xmQePh79tIDErVKUrjTLZNqDC8eohERtsS3/m+zPhkVAiOtT9vw\nIVjUofIgxdnac42zwPYIHgTvpEahmV1/NIyLI7twyAg11U9+cfgwTK+V+hNn\nxp4DKUjnLdAnngxMlg4fCASp+4X5kM/2Wm/PgbihtZKnjcQ0KkMtF+b8pVoF\nRS3I1Ng3pjwUteki+cO+a7kKs63s3VXrVGmid6sW1hUwthhJl24Bj8g9mQOF\nH+EiTkAUqPIW2AQchWAwl6+dzi36ziPp1b3BfFhwaKqHIqL4IaivT9y16FVf\nV+iHVi1vXAU7M7Q/NiyRxGziTtGz0142NTSfCL6XBMyaAZQ6Fj1AcG10OYY4\nqCe6UTy/RayzKFjRpP/xlowq6VYTJ1LWJXk85pkZe4GO5GAAmnkqFJFJ8Wop\nUzuFUqrSn1K1hCVhmhiYJgTJjvctIRgYXFV5ZtZ+hJnfwp5OghK0sn/DVawa\nepr+\r\n=ZvtQ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.8","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.8_1582434513301_0.3312142636510562","host":"s3://npm-registry-packages"}},"3.5.0-beta.9":{"name":"@aofl/middleware","version":"3.5.0-beta.9","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.9","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"2fbb8d085859b633eb06126c49fbd957717f7ecb","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.9.tgz","fileCount":7,"integrity":"sha512-3+jLAzev0bLYBnQVkxTvFpk8wMHuGinrxEByU2iX0CRba3A55F8ehFbJMEcoB2BeQ8//HyUXFJ9HhHi2J5gS5Q==","signatures":[{"sig":"MEYCIQDJq9PHL3zq3Khrm5lkx5/N8XOrKlmxW1y24jPjbevgBgIhAPo/XzsScTBoOUQONOtGKjDVqkR2mA7670XUJBwTrFVX","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":12300,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUg6JCRA9TVsSAnZWagAAp7kP/R43RwERieTu6eDkFMJ2\nxsUcFp0xTnKVXfa0sRMTcVAucptZOXmmPqM466UGybLU/YCk1SBku/9/Bwhk\neoJygrny2o6Gip8l1FGJM8uPjxuIatIIynmokEVBWWwYoLcEpj7s1xb2oJFE\nsWoGvosxjY4s/bl6eilKweKoLoyV1LOnCRrfzFcZMb6fgkcUi4WmPR1jmukj\n+6TupmAG8ulVGfI0i2MTjf4/jjm32yIqswlwrTgtuzg1tcAF2ScODJ3Osw49\nIE/1L2JUao6oGCmRzNN1jisxfjkwwIuygf/MD5UynnPWXyzGcbXH9QclG3Xx\nGutRg+xl7jqm9cWZ4yWqIQJN0VFD72b7AgNI+aQRaUKUjh/rY7knKtf7ha1q\nN4TDzVcpTUXVG8JKbv1+n5GK0hHaNzSRUulN7FbDmp7atsTGty2F57iKSmUN\nMLsDMLUl1Yvx1AEe7d4Wj/UU8O3QQ5pZ/Cnh7fTkNqVT19DmYe/a2lmnIduW\nXqWsX7+bMm/FwTZwiBFHH2aSCDRUcbt698zA8hnzqew3mQqXYCaYzF6Hu1Qd\nQXOkplfEB8sUOzrENQO37VvPIbWJIxMZAnaqO1BoJuLpUcbM/qM4CSzxNJ4q\nb6ty9vkbdip0eADz22/WcFpH5LdItvq2Nt4ROXD36TxhCzzB+GscoIy+giJZ\n7g/f\r\n=ICSW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.9","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.9_1582435976539_0.10220944890648398","host":"s3://npm-registry-packages"}},"3.5.0-beta.10":{"name":"@aofl/middleware","version":"3.5.0-beta.10","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.10","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"0cba417cf68eb8ef58ebdbfb315228fd7371cffa","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.10.tgz","fileCount":7,"integrity":"sha512-wsoNBp0xRTWmU370wrt6+fUm7kLX/VGc2R7/W2MB8a9v/0P4uuaqnjysk/LYIjcTMZSWMnuq3DMPCNQxthqzsw==","signatures":[{"sig":"MEUCIFVqMANLisVQlTk/meaRNvmejclFNUatANN7HXZCHCVSAiEA8dlnPEhesg9v/VzAqofvNIN9WQ0nuBzjU9ZABtGe1qU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUhKZCRA9TVsSAnZWagAA1B8QAJoLmtW0y5ZHcnDrmPCU\n17xYsH3wC+xAJnPzhpm0pv1LkfmTgov2/Dq+qfAn3D9TuLClAEx/2jqKJnzk\nlTM6nhLWBnWL0Cup3ymINOBKeFiIUqJtiD3jsjpQyrCHdxX8nu+v50xYDGt3\n7Q0QQFZSFDIP/3J7QCsL93PAdSZz8ONWVi0pmDNJcaJhlCTWWdBEWg3rIOcc\n3c7Nw1FedD/4lBMlDtXU6N7szCPWGL0EZnLDfLWX7/1vLggbI+9yBYzZaQm5\n4PpuUu0f8Lgx4GZDYDIU7LZ2F+iO0kBvDdcNG9S4WlPaI3ssUzFOlS1oqCLK\nen4fwMGb1Wpc4wEx2AEYm3e9NA0up1BGV5Nlje+oMPykhpEIQY5kJiUhV7jj\nrXmaog69rbwro/xFZWcIot68ystkaO7CLqOcFGQzr1JOsqQH+i9Ldt5Lylv3\nSC+WxFAL6V6QzLyMHy6sOaHc7MHBuFnmMShV69xVFQPkDfWkvs1vlUke4YAG\neAS0E4/TZl4dHdkOj2W+sh9FCgmGmdfCT+TZIfEwTqOIZsrlrhEUJHTY+riJ\n5FN46HeQuhkTHykSrq0/Ov/WjeUomO7CRg6X1MXbbQQYSU21WFNUuYxxbldA\nGiWiXKnxk6qHKstmYWcJ+3sBq+J2ZLiG9gG4L+Sm626GeeQXbtn+Vi5LU++1\nvZeh\r\n=f/C+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.10","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.10_1582437016760_0.39315861665904017","host":"s3://npm-registry-packages"}},"3.5.0-beta.11":{"name":"@aofl/middleware","version":"3.5.0-beta.11","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.11","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"114778ce334cfa04b3200d80aed4452f21b5717f","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.11.tgz","fileCount":7,"integrity":"sha512-NNd4lP2qMFiieXLZSZHi0mPAJJYYZ79mOTnuYjLEi3fX8x7KbcBdMD2mYim86Zvsvbl5KNHamJD2Ztr22p2VSA==","signatures":[{"sig":"MEUCIQDRzHosS0c6UKTbSQ76kVbXjlH8rhOVynMg4FRgRe0GKwIgaFqIKQ20whIpjc2hZYqgRuP0DIO3xU7xIlv+40SVm2A=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUiufCRA9TVsSAnZWagAAWocQAIFrZktPmU9P0i3XVM4z\nafxzSU9Z34E7UenC4bmstIgOtNhoRmhjhNoHKfHd/jVIkLlgIwdkOBWfbOAk\nfcDJpC/yLcT9yMtmQabzscFuUQflV+jBQZ2udYAKIyc/j8BHl6LKoeftfLNf\nDnAfgGtlMEaQOc3KMtJpaNk+/1U9g4/v54oR0ImRqMXUS0kxRxcuuYL62/QM\nTNmxanN+KoOeB9ww+WRpEkzH3+L+LJUFjzmvohGMbA7AqQO7rsPA5BBlXFX5\nUXv5MMHsORcABt4WnTgBEvCj/eJ+wHtHbK/cYay3LoeYt3NMXf+g84Zejlgu\nCdIybdCJwHbW07OIby1Qk+9umC7bbNtPCuYfGA+yxmOCaah3ed/ZXHA0l5Ix\nYI+Kpxl6ZgYcFWcnH3WJEYKUgVDzlS0sHX+1DNwNbmRZunfHfUhRrh2KkXEn\nyKVjWAxRgBRen64b9NkjEF2gd7/BDrFi047yHTITguNOVhH/uR2QqYgXsjfR\nYAT+unyHXu1vHQHtMqkkhqxoYLhtYdyvvwqvyoJaO4ShJWqN07jeY3wy/4Pv\n/mUA8b2BLDp66+8dLYUQ9UXDrN+ww2oTLtiI96erjtORCtskzIUd9aEcunL7\nfYS3JMDj7yoCSTwsehdCbzf1gFI51wGOSLKzxzR+SBm+FexFa/Ps755+RWr5\nH560\r\n=iSC9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.11","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.11_1582443423392_0.5233569042050352","host":"s3://npm-registry-packages"}},"3.5.0-beta.12":{"name":"@aofl/middleware","version":"3.5.0-beta.12","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.12","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"dc5b25ecd49c454231aedfbbcc7ec1948bff243f","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.12.tgz","fileCount":7,"integrity":"sha512-H/rMvEkoNhORG3tVVIvQ2Fh2acWYkPCCTeZIP/3lmmqZaqwkoZ7oqHWtC7vdPTrNwYke+KU7ONJxFijy3xpVKA==","signatures":[{"sig":"MEYCIQDl2SHgmKvM4IDaI6c6ssIUl5OtKDVIs5ShDFG1dI1C5AIhAMnVLoNOsF8BOcQgf2XpGr/npNwU/2UiYeXPEKwFnWic","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUj8MCRA9TVsSAnZWagAANtUP/jEhtpi8XqK2UIyz7iZM\n9q6IHYKZaI+TyIcy7v7KRM4R8uRZ/KW6lC0eap+QzSfdJXUzyxr/7UAVKy9i\nMYD3QOhxdZsoYBmErxUo9468o/Gmhq9g/k4/BCeffnSqjVMFu1hior2elGtM\nNNcjMAnXa9XGTsJfEqRcobYRx7sYJ+icwVaJ5y4cILsAPenxy6ruAyLCMKQL\ntuzXwNiWqt6Pte9tqp40cY5WttlKbHYhgV05EBHVsxfhwSgu/5M5cYz7KlQH\n6xDF5uJyNuV4g7OcGVgg2u9iGJEA4yx7Yf9Jav/3w+EzFY9FQKJ8Ugbeopfa\n+eBr01JxZg2ZknMydFeTl1XsVVUrj6Rki4RP0zSukNS/LKtAYj4w0JetMYP0\nWPcdCW0l1r6JFLbRCY7yIZSmZC2b9mOIAVwP5QMW6cfYHHFzh9bD8HOBKt7P\nyCkWTZVWONVPv1Ca0vvCQifL9AAUr2bBR3uul7qEypK2vG4g8+F3O+gtCmka\nKDe8iPXUM7HdyEzOS78Ra4WGr475Q2au0abNIB5vzqGAE9gAKeZ+APrPAAFg\n7LCpn2cDJa3WziLxhzAsERNNYSmOI39+m7abtwCpS8nDwCU8YkTJLNR3gq1L\n1BcnKELlVZyI/VLWEqF9x6G+46Mpp4PMs4d/3dI0JVEDQEx4EfATIYHRWUoW\nm4Ab\r\n=psCE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.12","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.12_1582448395950_0.6509467698597147","host":"s3://npm-registry-packages"}},"3.5.0-beta.13":{"name":"@aofl/middleware","version":"3.5.0-beta.13","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.13","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"852a85b746488e1433518a99dca3b581627ca1d4","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.13.tgz","fileCount":7,"integrity":"sha512-pvImxtGY5LTIB/WTc6TwoUKllqpvwvgMCvDV3qKLm1nEcmK1VtnVUl4WgX/BJLr86twsfWhK53rXFlsbYfa5/A==","signatures":[{"sig":"MEQCIH4XvVa4+6HE0xauZzRTX8IeZCC0BeTcprjxQqDnNPC/AiA3fqKA9bb8OotPGWrOdpQv13w0KA4ubNVLSGg+Dn+pkw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUj+GCRA9TVsSAnZWagAAMDoP/RmmmOFu1sayvdgogsxE\nFOBH6ATEUw8TdOz8diV1zuvbP8Wta+WFajRv/gEDZ76ETmZIUlNhUOmuovlL\nz3fVoqomM9B5jeuhRgSd2hqrfo/YqF6sPQYzAl+sp2OIyoHq/tajQFedssAD\nflBNeq/EO1L65V9VT1FArUxQb0FVC4XpMGT9MG48FktqfEYys70Npsie2GdB\nkZHtz6yx2co+cdOhcD8h+2+c8BsFdeix5yBdBYaiWD391a0UXggH0ZXFszBq\nlP2kdzHJDu77VsiLAsZmpRwMaMRSVczQkUoc00ta2mIK69le7x31FAtmCICk\nC++5sfw/jxsYiXRapRoUqrLfRwQuPwnJFwFssSzw67XkeCSb7JvS/rCrout0\n09dIgrYSwj5FxQx6ab+dk1iJz80f8FWgymyADV1i6YTlIJ4zapFqeWZN3/1R\nMKfSfCmEcvLq8j2b56UbFcfGeeZ88evbf+KOqgw8Wc61rWiV61c/t02ANYbl\nDdu+vIMJnHqVJ4q/IK+tbDU4jvWZeQOVNkW/5+Urxz7VQfTy2JdBPfLSOpLi\nbZXU1SnNMaILu+A1ZFDlnxlbtUXvDBIpCpNdH8YB6t67h15SHWFryq1ztiE4\nVlkRqCdTBkAE5/4xc9j1D54USI5272REjBk3LG5231kzJssMJNWarJ+wuH+H\nRZua\r\n=UiVa\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.13","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.13_1582448518243_0.7125400776421107","host":"s3://npm-registry-packages"}},"3.5.0-beta.14":{"name":"@aofl/middleware","version":"3.5.0-beta.14","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.14","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"cff89767ff4931cedbe00f4920290d410190a55c","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.14.tgz","fileCount":7,"integrity":"sha512-ScbcgXNduCb8hLAhXusaEFcUbW1MwqitCXSlTniaBKu0AXW/3usAG/3AP9/GwTtDthrgPLk6uh97+eKVwHMZsA==","signatures":[{"sig":"MEQCIHUgypGCEvXADKLaScmhRZgJzyFrhaXx3ZjkSfmRoHhkAiB29vofqCS+Wle9P6O7gzSClpDFpOv4YU+jHqb/kHh9HQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUk0gCRA9TVsSAnZWagAAXXoP+wd/Np+Tp10egvCco6+i\nIiPBCtULL8XmCO/toj6tCg9s3TO6/1o8UVhW9GYr7heUhPpNX++ywsL1QDVo\n2iyF5U0m5tShFhVDjfpU3ZYk5hKTaxPF+ktmLDGCGoMTYBT48E9HA840qHPC\nOLJbYPjqT1hqc5ntD4fVbOxGz4yXLTMXMCDQBdi0QK/2w6CIKVlHNzcVS3NA\nQJ+AnQUoTSdZm1SJYfpm7dZ+J4SJ2keTUFsxF+6mjelUgCUadwFz3fHPydnA\nqafaQ8Zjgz/hpDo0VAD0GPz4SydAtUPr9ii5N5zhM7EykkxrhpRiAujpVJvO\n6It8wAvDeyoiexTAS+rlN0bgP7npf8EWx5Vn+flV6PYEcuZXhJitFWdDBOa5\n7fF1gKSJMu/+KRNAFyLRk2+je7pCx0wfHqKtVDgpDwSe/p+K/Qwi8WhbXzkU\nL4xl9LmWaYDIZT8emvV32JdZaP7EVE8yaisLQ/yhU8sFGOdTZrR99xggmK3K\nOSHsVuwNMGxU8P1a5MDkKgr6lc2Ew64AhxaSW0ugofVIAZLC51LyppVJ9GK4\nCAJklGymVIcCDmyMrYmWlyoBUVMLP7bIh+tQnjxt+vfv37lT6Bn6OldVmiJa\nrApARlu+J1jhTwhQSWhZPcAEZtdl4q0KofREuZvRviprhHyhbgE1gkc657lE\nCDsW\r\n=j9MK\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.14","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.14_1582452000034_0.06640872490136251","host":"s3://npm-registry-packages"}},"3.5.0-beta.15":{"name":"@aofl/middleware","version":"3.5.0-beta.15","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.15","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"33658072402dae728d153dc238df4723b2cf10ab","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.15.tgz","fileCount":7,"integrity":"sha512-2Ba16X2sNgYiZh1fPFHy1LAaLS+FcijdEuMiiz4cMqjpkny8s5FGmU/M0HzeAYbfpKZIVaRaWcTyrLA4Vzs3fw==","signatures":[{"sig":"MEUCIH7X9ijnLUwgcWQG3XWUV6w0/C/NNiQrHTBlxM3NShIjAiEAmI3GF1JpXwl7KMtNs+WSCR6UvBqu7dd5NodQ1NR4Jg8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUmavCRA9TVsSAnZWagAAugcP+wcGcaNZAU/XPyecnoF3\nVIvV8p8kEV0lkfg+50ueJ5X0y8C9r6tPnGjjz13qVg1ADt9/qgJdjrqlzHbo\nXPhxYzfNBuBe5w8u3kICjg1uAO1vBdJE3KbBLGVMYFdwdPSTo4xUuK9aDq13\nEPoo3G7ewpG2b2cNJjjwV05/LEYMhdT7rZq95gQ8wEcS0wJTdRa8H+Bxw194\nW+0EnJ45Uu+0KQZ/igqBtaszqcPc5ulxdU2XKTifTnmgNNj57kYiZB8k5yIM\nHImyuJFZBUKMNJYtGpJ9Er23mFTbWFpyP94yhnMIDQjv46LF375oPNyYKaQb\na8WKjKuZhkwLyXbP4QkTG50PQXTYNJaXaZHgy9ZfGv7OC4jK1uPbHFjGzDAL\neE0Gc271y3gXyEN9i81as8QuHyK5ex/Avmo2cDt8/SLc2QvqMmrNRMuvzGRY\nID7iustnWmQpqqIFUDj/hp4ar/+vmKB/tAT1ga6uE6pnVupEhtN6C3V4r6HU\nGzbV7+Kkg0oC5ImnmdWfjci88mmcO9j3IqbBM/YPIJ9pUJW4oqZNfMFnEYyf\nKZdqK7VwnpZ4nqlOjausTOZam9MqgPgHEcVh4YPR22W2L/aiqP/WmnNBbL/I\n0dut/QP+Lxg+sqMCaPVnvhBrZ6uVyhuM6KF8IVwrOmKUGv5RHlPeTjBxQX6n\niVVm\r\n=QE9e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.15","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.15_1582458543423_0.8702048753263072","host":"s3://npm-registry-packages"}},"3.5.0-beta.16":{"name":"@aofl/middleware","version":"3.5.0-beta.16","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.16","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b596a4ed13db3a1d564e5894191988224354282a","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.16.tgz","fileCount":7,"integrity":"sha512-PMj4tR7QlrczmLpX6pEXuSI1OcAh1T2EQ8JNFR3wQqS/TV1d2x71iLSWm4eikQz+pQbStdriVxV2Qnq1jY3/sg==","signatures":[{"sig":"MEUCIQCXJyU/HrntpfUHe1F4t4a0+a6P7P8EpDCh96TZmMzHYwIgJW1u/63Fu0N7orQuA0JrqFOTTo8enqoSQYfjhp22WF4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUmjhCRA9TVsSAnZWagAAdzAQAJSE6xGriLkcRBQL+Jto\nz+oyhe6i41oS8BuBwqdgnE/3G1eTBpUHdl6ReZHa411pbLGBYJ7B1UzbLdLU\nhzUGxlaPvD7652i9jK8y4K55jQ0mCwc7ItJO0wya0tKcPfEbVcyrz62Q2wcH\nL1kebwVFejmjlGAksk96k9YUgnVck3aJAX7Zi/GsjDn9DniM2iJAVs6otdTE\n+bRV4jOZP5G1+F+C5N4KWCI2KgsF0Oe+YFfiXMki8sVxApTgNYFiQxss81wK\nTLj5E7g6uSkdkPYOBMzKha6fM3MMjJca9U8G/z7TzXkMHC8k5QAg6IE0DA8S\nKMMtZ94pXjH9tIyxFeS+iCmVOIciIEWPPAeIIhLD34ZbMk9oPuO5EPetlDDF\nCZusKWuJ2JOhUzI+3RVSjHaHEPlYPvhbBnQwFlsSwK1eF+2XRqmxRuTF4ABG\nCLd1vwkxBEP46UlcmQbFboTW1n4mJrfjcUf+5FYlzmZTAszVU1gu3n3vbrJi\n4bLvmKsAoe3+onkGLGl1B7sUE63IIgcxOG1ZUhXaegV7MiLcMyjyOZs5N+1h\n0WthqE6CqtkYrBKiP/EXZturDOmeALbUpWdf0ddZXUM2qfn4cNaT5I/EvJaJ\ndKLHC4zU31oaP4hG0buPcwFwQqvcSccfSzx3BIvS+trGaWR+y0H2fVPItBvh\nuDSP\r\n=p/Fj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.16","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.16_1582459105552_0.9972218567832205","host":"s3://npm-registry-packages"}},"3.5.0-beta.17":{"name":"@aofl/middleware","version":"3.5.0-beta.17","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.17","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"d7889476fab9b773424f8ffaf993719d9c12fbfb","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.17.tgz","fileCount":7,"integrity":"sha512-2rxDBk4Ye0wsLVQXqN28ZcMKcl/VZ1atO1ndbcD2rXi0JsMx+XkggEfPsSu98qXWqLBcrw3BrYYNQcKiUTSD6w==","signatures":[{"sig":"MEYCIQCy9s6UTEFQ5KSJQowreJD7IyUERbDCL8N76lveKyucXQIhAOZYgUH3jEWmF4/2ubioly8s4aeR4vr1bPsmTcUZRpnf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeUmyaCRA9TVsSAnZWagAApfsP/2fQg+BE8Da7RPHY1nZR\nrykjNqJAYaJawVn09dgTul1oU5P8tedl/LEeALgbSvTr//C3mahe7lxqpXTy\nX8l2ZeeC4sKU7aFtxqZnHI1suS6azdrBmjiA4SJq4jXZ6UE8qCocX2X2mduk\n7Nna+GTo2MrL+pIbYk4KTcAPI7LOGoeztFVbP1MgDCVN6FX9mS5AW0g2IvCv\n4bWtkG27LmDHKqX8Xq2yT3Ol3EmvlSbEU/VYTMxYxMImVhdWLF7VEKIHtzOO\nnUuH/CRNgmcARfp1IT4zEdXlAqkUFzXqhZXTAoD/FFrYrUDIxUUzQCj9OhgX\nI8Fi61GHr0qu26T5nPzybYXkZKichJyj94+GY7B37eiOa0FB2bc2zVtvpDV5\nc49VzQEhnti+IzCFa4PJNfrYJgwDU1frPcSPVPqLLbB+vJNnnzo1cmRgijRq\nrws32SE6OfLHPkVqlGBLLxy9qGINszUlOuZtdw6/bMeldGsTdWll5/+Y0qLL\nX9U04CoBttbp9NJVoQvdGRvjZhlMfPwtrlEgEmhX0f1Anv+QaWvUsGx0Lqgq\numgmGGrlzycUMdeJnI4YJd/Gzjb+Xn/9N7PGdliMWHDkyo9K7MdOfla3nNr5\nQYSEsGgmLVI39l8Oa5c6W7+nHmOptDYp0l5XTGpkcFkbHAsu12tcQFOZh16S\nUOo/\r\n=btzl\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.17","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.17_1582460058281_0.3325760650406373","host":"s3://npm-registry-packages"}},"3.5.0-beta.18":{"name":"@aofl/middleware","version":"3.5.0-beta.18","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.18","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"cd1abdd1203585b8017bf7807466b41d73363874","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.18.tgz","fileCount":7,"integrity":"sha512-aJjF3az6OAA+x8KXTA1nmwYQPIZd7VywhmqRC6UF3qIiqksQB9Tz6Aj6uHNybAaQna3MdIp7DOOF3+dGrsIVpw==","signatures":[{"sig":"MEYCIQD6skUs3W+dfKPgcxTHQ9ks3L4XoXTVXk9QHaECoc8bfgIhAO0Nh/Q25p8gdUtDxs3DmhX1c3UlOZ6sXCxCpx14fZSf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVJubCRA9TVsSAnZWagAAkA0P/26PNiUoCOO4EpiQ1pP6\nYan/s9G5nZ+YS7Yznbn6gWh+tRJN+CM4PP5V+ek78cfnE2fq394TwZDslYxj\nXbDSRKQy2h/NLWVYolzONTfXvMre0KOdtDo4H0uUd/nhQW6BXvZGsXAeWULZ\n0Pz/9Oz6VpzAimq6ByURT1lTjkjslXg+KyoBiGulGqPRmZWZJ83Z6wXR26yC\nLt2qd+jj+m2GON/kkqNQ+wxB3H+Ty89gFtcwtdGxdxD0larQEPeNqqhgLexu\nuQI2i8BiQI6cQjIvRtgyMQbhMJNQGl+JNCgJDmylPNexFgWi9AcKKci3gAZi\nMG7lk/CY5Pj75FoZX+HwCaiQg6hdjDU5ugjakg1QOeZOkt/o966uliVelqOA\nnIxLI0W6Pa8++aUbRhe8IHCHvxTGw7XNxK0v24wCQn9HyqNr1FyU6gZOYTHf\nCV0ejGIQyUCixmvEF48KTrDOpwjfEfmqI/0A4cLXsTjBqmvMbfIVXhGfwCKN\nUn6EwbGuTozGpFe9M9uFsprVKQPYWeEvS8YTxjCEDvDS5Z/v2BfOmUV3RkoB\nCT4ZrxpaUGA8GYzoS3gq4uRdLBGs0Wk30MyPxkic/D3zOv932W3rx1fIwLOu\nE27Z0t4OPnB5w2tkF5l18UrOIIwVWxgRNI7gWLSt/w1E7wj/QImYrLiKu95o\nVTXk\r\n=JHG8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.18","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.18_1582603163031_0.10791364927357616","host":"s3://npm-registry-packages"}},"3.5.0-beta.19":{"name":"@aofl/middleware","version":"3.5.0-beta.19","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.19","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"770c3a8aee6798a230f9288bb910dd3783e790f9","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.19.tgz","fileCount":7,"integrity":"sha512-mzC0gNIkqyKsJcuSHN6W75/ac16mW9oAXhFp4bfGf/hQ1llGg03nBDenuh/k+P1syGA6XhgmFFMzk9Xl/rdpOA==","signatures":[{"sig":"MEYCIQCghYW/CHMb1xyD4VrnBxApEXOIr1o3CLPsiDvvkAIPvwIhANCT0Gmty/JFcRELJa5vG8CLR9Vo0chcEl39RD1vgt5E","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVbRKCRA9TVsSAnZWagAAxyoQAJHrEtRauoe0afcVowk8\nyI5v/IQusLUYc8K8j52vmTWNB4Ag9028Y55DA5kayd0BA9gBM3DDNa2weH2N\nuwtFIHX9yT5fKDGKrX6lvhbF50KjgCIHj9oarFzAdO6OffSIVg7+n8dAOIhS\nPnij+pkiPeII6pZbkX1bS1EPsbGtw6975OD+VP0Y4qFdIb0rx/XbChsehrOA\n2BsHaBgsoZp11tVwQBflvbAY4Wk5eJ4trlR88HAH93ROsl8gdON8q/Kq19RQ\nSDpKuAoWnHsbZr8/XFDaD/jlCxfekhelGtCzNHXg9JjVdmxcrIehIv1XpPCU\ns/HozK6VTEDfOnogP7yeArCFxgfIkr2a2go+k4404nCdPpsKB6zf+ai2QwoI\nDVF/1yrvSlEsJ6Eg3JtXXm3wZYm6hveAMlmlTj2a49BFnEeQ6Y883CYQ+G+m\no2CZZ+tFFIV63FHfGIvN93WRSahCpX/HAmohmOeUBlg7aIze1ng46osp+/iG\nxgypM11j0nib6gDVkKVITROCNZ6VkR0qOCiLSlvAvW7/V77w+YLp6SW4Ut4C\nl6HCLmhtqRlHppeAZTsNBlghXO+eUItvaew3+fEGE1wkznb9kvOjQxp4uK/T\nTItNiiGzYkX39vAElhIsXFnQDDjK7e4dFQZfka2GXszcN3+ZCXLYFc16C6uR\nGCkg\r\n=7moO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.19","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.19_1582675018476_0.5049711078619257","host":"s3://npm-registry-packages"}},"3.5.0-beta.20":{"name":"@aofl/middleware","version":"3.5.0-beta.20","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.20","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"189002bb829ffff3143a26233cf5328cef57d5b4","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.20.tgz","fileCount":7,"integrity":"sha512-SfhuZDn3jKGE+IGLfmSuj4juEpgKdXGwMe3CV6dA35zzfMaQ+Q+1y14W/+bTJebW+cvM5xF8R8MMTkw/+2Vfiw==","signatures":[{"sig":"MEYCIQDzeNZrLeXfiludauVuUrAH3wvr47NZ8VTp7Diq8SGPgQIhAIucp7NcNeKnBuOyGCbncM2jolAnFMEgGiqfmE9KWucz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXZU2CRA9TVsSAnZWagAAJLYP/355vF8LKmvm48nwaPih\nhGiOPu1df+4T6DISy0FNVgSZl+3hydnIOWoU6DivOu3S96U3qO9wwUIoW3vo\n64tbMCxLi0IF7B4qW/lsEqNuc5BZRwbL3WvZnUaHxVUFb1v7scSb/sbg4RIm\noiHb3CNDBYWQEpCfF2HWvf/XOt7agQ1o0PHxBaP8hPgi9w/x+mLYyYraGDkL\nBMBhPVOObrSvN+9chBtFJh4U5TbsbB8P3Wsawq5Y4IdB6gO1VJhNyOKg1jES\nPbQ4fu1di7DIdIwkFs421LknVKHGILpzrqskRaebYe4eqabsv/7yU6D+AzLB\n1B0LqfOZIQw0KI6GyRhtRC/noXsEc5ALuvmWoTLDb2p0Xozn36D6oCFjv9Q7\nlFki3qEVpLy46i9PS8L4F+aT8SJCpZZWLU9A4CHGlIF0Nvs+WLuPuyosGMrk\nRIReIToNJpfbT8l3pmjLchnX/Y02sJj0EPXQuGRP2AJm87o6cAl3EfwGeizb\nVcduOuuw3eri+vL3gItmV12AOVVuQehQhMehiZEVTpzkiowwL0mhvjv2SDui\nO5uI7ZMZdipRpqTLHqG0p3YddFj1QxT648fHbpjbQAfOEU/AeT4T91SppJUP\nOUOHjPWaj+5e5OHRnjpzZeFnQlNV9Tag49fSd8+R8SdKScQIxp/4Ydr/qyKP\nwQ3a\r\n=I+y2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.20","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.20_1583191350181_0.6991297690303073","host":"s3://npm-registry-packages"}},"3.5.0-beta.21":{"name":"@aofl/middleware","version":"3.5.0-beta.21","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.21","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"5080dbaa10055a5a882c182ea7e969ea1b424df1","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.21.tgz","fileCount":7,"integrity":"sha512-xt8gV493U523yRmCOfsX+kIOkBamBT0Df8932TowFZx8BH9GqZImIS0UE5eM/Heok7U2QFilhOGn5VSmRDJYQw==","signatures":[{"sig":"MEUCIC7mCpBLo0rLvNBMXXVdNQMOF2kwFi7LflkqQqxF7JpzAiEApoGRJU5CyfeOFPzV3wkoOmATkzMVZHe/Zh4OlnkiFQs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXZY9CRA9TVsSAnZWagAAdWMP/1UzqQN8LvPK04/OFnyo\nrYSYo+N3jMhwuYF7d2TQK6/P0HF3ymS8o/e8+bhdu6wUMcd1eseSI9cghbuY\nE1EgXf5tb1owTY/jCh6hgfAa4bUO1PYmdK9px+KY5fUirwb1o3mDMRQDHeXl\nQ2qCKF5KGVnGoHwLZu+aWRItRJGE2uLajCTZXVXh/Xn3s2Y3qq8bj+zBWx4u\n+wCVp3nOssl5YtHmRaulxyh5YI+eR1FC9JpUnFvlITCUVdZKDvhIG8WMYoQO\nc+uwwymNgtjadlPgjnrgx0LLgg2QUvf6cu11jQN7ac7XebnKt+utnQFen8B6\nhSlKeuyN+SJu32ABDrmfZ9nR0l9sqT11yFve2nkzRtbrn0oy+KtRuPd2B0Lz\nAluDfGR4hGqZDUb64QUY7JXqVfR8VO1xLYS4RMaX9apAvVm4pQ8sYylaa6wI\nTQonMaW1KgpGf6QEiffylFBYmcHwE5+5B/AIf2s3Ov2LfW1nT43H2L5c3o5K\nuP2pzdm21QE7w3WmoeKyszqOXOXtUs3gGiCHlnEqffmh4VIo4DB6QK+3ihxI\nIsgV/82531ANG4bHm9Ms2xSJNbYOJY5verAtB5ejvewS+LJ4zfEpNOgGUmDg\nYJXTY1KoJ+gESz5chTl90qPJqXtDdDp7UiEyQ1No1SprOwzM6eKsSDwrUFbh\n9jUk\r\n=1sOj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.21","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.21_1583191613573_0.4213464071651658","host":"s3://npm-registry-packages"}},"3.5.0-beta.22":{"name":"@aofl/middleware","version":"3.5.0-beta.22","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0-beta.22","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"38e529fd30359435c9e3ce85c9e8f83b1e7447c0","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0-beta.22.tgz","fileCount":7,"integrity":"sha512-KRNDjrIh6dCm9C+Bi8p7/UmAJuTuCkT2gsLAZRIr6wObBCkLdq2gQD/UuzF6qgTCgKvZnh1acYNeVYNpMXv3sg==","signatures":[{"sig":"MEYCIQDnhi8gL1b0HSzkQB0Chc9PPu0yrHkhbdTnF71ifMztsQIhAM3At4AZt+CLpbVSJQ9D/sdkorJaYEtYie293e0UFP0i","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXZnPCRA9TVsSAnZWagAANssP/1vm20QVddscFamnD0v+\nHgXqchUQo13xRJ2v9vobeTfWFH3r8VBGNcNUS4BADYPdxMA4oeUrW/17YxCL\nM9dKc6UvpLVJY8953Y2mHymEauddrOGMCIfgDatree9gx7YQ3hTcND7tOCN8\nAYlBFCMQLggGlbrssD5ez4NhXu0htOb+I/pU7NOXZv8AKFlGTYF9TuU8TUGA\nKCHb9NEDwqBZty17wh9sJ9grs/vigMCDMVyYUfv4rH+4S9NTRuG7MFVdQ3UA\nT6ctZNDPWeHmZIrOd3XnkrrnsFQlV5qlERqe47bU3D4CO/KPYaN6mWxbr4Rl\nfMF7ajsLd3wVYpr8zgNbNwgw3G5LvoByxAvidxci07X2+KEvnCLR9DTWX22F\nwDldGrmDaLbkOqjO9Uv6hzoTurIyDkuRoK/T8a5hzlcwTBFaecNCMpgbg+SD\nkeWSeTRDAByBX53RQUxSHIePPf6DzrN9Ew+pQiveHkQ6TI4+A5tQRAubG16U\nk11Q6vplQiidLEyb7rtAaG34TlWLmnLm9K7u/v+cM2CyW9Dyc3qVIkITem4l\nS7LrQa69gxUFtPCPQA4KGWxitrlenB8GpOUjC55df9IblBDojfYfe5Uon4Ta\nrYfQAPg6vCejPoo0JQwVQxOsvJylum3pl10YRWGshy5Y8dqTQikr35YaFLIe\nj+br\r\n=QNng\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0-beta.22","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0-beta.22_1583192527146_0.38882573562952594","host":"s3://npm-registry-packages"}},"3.5.0":{"name":"@aofl/middleware","version":"3.5.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.5.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"9174f453e28ab3c5ba80fdc856803c0179ae5320","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.5.0.tgz","fileCount":7,"integrity":"sha512-LL3CDqOLf9I7jnPCNGEQzwH7A4OmkgrD3Bn1zR94jZhKgXnzVPM0dwXjIjb9t0Dy5LEIcA2splErHNHUnYRLZg==","signatures":[{"sig":"MEUCIQCOG+rVKO6ZjNZ72rbk5nFqhgB2LNcmRtYOM3Th3204GAIgXbLlNBjmQ2dsewxdtPQ1uAZOAtRaSov3HTyD1EL8B4M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18248,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXZ6tCRA9TVsSAnZWagAAUVgQAJpO0ERjyq/LZ4BJhqeD\nEC6vVPJ3OC4I82WKTfJw4w8gCP3VJ8888SbXx0kQ3AsWl+JFVDC4cmBQWZIg\nonxm+lAAeUN/wtUo8uXMWrS/405DDFq8H4sTGOfHse0t92DJWoE6sghFMs3x\nAa87Lcpt+TDQ7ZqVbt8e4vw66JCIy6zHOs0isKAkhpjWofd8FoP8IP3HwFA1\nWLi5w+E1FpGEDXrsBkG1DyCfEfEUsatFNjWqzjmuOpCOwJ/kt19zfBpELGlw\nQb7ITLBAmi023S0H9YkvemHjQ0ciT2iAdioXYPU3XAOhzq2+yDK59f+fHahF\nDLARfZnX8nUylcDyGOahIVEl5cbjK1Q6LeETWJVN4sSIolfabZZqaKQphWrl\nKTxYslqUARN9AgmWWccHG2gjV/m9e2EPYHOz3AccUCKBR2tAwO/i0//L0b1z\n5c8z6YXgqvMUdUBQsy/D3Ys373Q0EzyLNdIPVBCX5t0pQ7xDPmFqKwez4u6L\nbZ9EazM//bKqZoFP34iI/PkVuzqF9A5rngnVunxcWCiXdi3ACGnk0xICkQxo\nKlyJLQomrwwwELKjSaTPW4oxrT85SIXXjrXXZOj3FenXcParYyznbLCCuFV1\neVKjNT9W5haluKNriWxkUXNHtvrZUSOt//BecC8him4WhKC/NCofwBa2FHHU\nEyHv\r\n=6sGR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.5.0_1583193773248_0.0580277047766975","host":"s3://npm-registry-packages"}},"3.6.0-alpha.0":{"name":"@aofl/middleware","version":"3.6.0-alpha.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.6.0-alpha.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"16bbdc58d8dc781429611cca8ad510bcbba1ee02","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.6.0-alpha.0.tgz","fileCount":6,"integrity":"sha512-kouy7gcvxcPkk4+/NCBBudfrGd/OywPcXaaDDlJqcQNg0e6uTNrGjPA7YgwCKylmBwvTTo9/jWhf+fyvX141RA==","signatures":[{"sig":"MEQCIF2G5V6ScZX4dLLiFeLWmRNwlJMnU0dkK45FqS3HkwxKAiBooH2q7pm4sHfGtWf65AfcyXN8958bZCaG2wNX5jVLtg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17607,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZThxCRA9TVsSAnZWagAA8msP/jlzIkk2qHg0+m1BASsa\nYasgLmmNBuq9f2klDig7Rneyzu8F4Zoz4Lzxdqe6ItWDzC4jDluFEp5OBOvm\n8bX+yZFSHm4qvtzAMqd5Pu6kflb+CRARYBTmAAmdPDcho2Yy+OemuVKix5IC\n49eDgyc8ipppGgXkS3NJ+1mzsjy1dNH9+VFDcySAQk++xUjDaGbfWXyqaBdt\nuMUoY/xFeHCjgA7o6z+WepMyy9+NMiiM7TmxQ4N1AIGhh77/Hs1NZyhC7yeI\n5s7Zu8As68NrXHcKJ9LvcsIs7ZwVbeADWs6WD0hGf+IQThtzS4iiqD3a0a0g\neDZssGONVP/MhApT3YgZajYD3l8XDy8nNmMshukEaF7NHFW9VltTg+NldQQq\nlPqhrUkQ1quH7tn47NSEoyMqWGrnuT8Cx6VJKU/KoJgs39S6xHRhBeGpWlLY\nx2oZc6az05ErP0EoHjlnxZ4qEsSPsSMPITRWp4083azZD1iWXJS5UBp/uOZW\nGSzeqzL1z8iB5lnXCmnf7fZDbnlhse2U423Dj470c0F0Q4NlD1qq82cxE9Fk\nY1gVgnzkFTs2TKyi4KF3BrQgj+NdOhYyq7h+Pk6TjVM+EnMyhDmya2pDZaBF\nJje1caDHf2gpoV4rj9NJy62XlkmdQZKcSdx0kLQxSP7ASSUXa3B6VUIqxJST\n76u9\r\n=Oomz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.6.0-alpha.0_1583691889179_0.20663331877620306","host":"s3://npm-registry-packages"}},"3.6.0-alpha.1":{"name":"@aofl/middleware","version":"3.6.0-alpha.1","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.6.0-alpha.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"17313133681a0c0d2b4ad6df506086cc67da9911","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.6.0-alpha.1.tgz","fileCount":7,"integrity":"sha512-XuNdKpKWRiZ/SftPHF5xWsAAbnc86zcJOs0rrJuENFNF6LsmdurbkJsES4AAwzcU4/PRYGAB2/jDzEtb8Mipjg==","signatures":[{"sig":"MEQCIB/gEsH2lIluJMK6y6a20JCF8bAnkea9yhKq5XEnu6HpAiAlXTvUi1EiFuKMAiW7UYo78rzCtJ5TEJFtIGMTWhYtWA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18467,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZTrXCRA9TVsSAnZWagAAE0UQAKDnngsPTpupr4x9fbxm\naUq53PAJ/XM81VY9W9JGnuyrqVQJgOjYg5HpisGK0XDnv4LrfwFM4a+mtkCD\nmmShozrJdS5iYGsbw0G1IFI4P/6Jm2ve6Dpgybd0uC4K/xaX1XXsvewwAY/I\nPRoqfneon2PShcwpslP8/8zbYCwAKhuY/BtLR7vq3jX+4sqbKQ4xLr6pM2fg\nj56FTfyJiDN0YB+OvVsUAid0/pEFD9hbPSf57e82TyYuVn7vtNNp2Z7oXxy8\n8cGZHPV2ueXninpw0nwVHbzzpbQ7pUqvDnwfx0eHUkjQ55b9tmH/KRXPNdQD\nWuPgHSZgjGE+Yhuu0QiHNlyFvnwmgAQwsaT4sgQ4KNBrSKPzA9RWdZJvZ6sv\nTeIkX+cWK18YxYeyjgGXsjh56sJsLpNmFIysl5Xi2JH4zug2JoikeH+iVZpA\nARgH5VwFfTh58vQ6QCqv0qXTdEYGkQJPK1/+nOAOe9wo902Oqe9FnbllZBZ/\niqVXfk+yflJg32QF5KTJoesanph+f62M7wb48eDWN+A+nTIB//cficp38LjM\nUN20jRZbV64x7+N+Dz+gafc2pXQ3QShhS5ILDrOlt6LY+ufKgxKwGVBFw9lv\ng3G2k6NYixCAfvQ2/FxJAQLNi9gogxQKOutBv5P+d20O8tFP2m5LprbnLLTp\n5rGw\r\n=+LMY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.6.0-alpha.1_1583692502676_0.5318490810115917","host":"s3://npm-registry-packages"}},"3.6.0":{"name":"@aofl/middleware","version":"3.6.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.6.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"3475360c7250333eabf101471860274a2f9da6d0","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.6.0.tgz","fileCount":7,"integrity":"sha512-omcNe6WhMN+V/Yk8asrsSruP4o/zhqomWjwwFBp4S4oVap6iQXk6aBFvIGiOXqZhv2xzHhKS8fQuU7CHowCs0g==","signatures":[{"sig":"MEUCIDkTBN0V8cUb6NB52s3Cf1kSqiDdvfptf5kO5Ag4k/20AiEAjXJcCVIxeLQpCBJ8HpjtSzzywI8jv5b6njacxe19Y6Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZUIACRA9TVsSAnZWagAAEPQP/05OYzXovKRDD/JMBYf1\nyv+Lg1K+FUyHKwYH9VXHIuhHTdaIFA1AQg2n0ZLhO92lP9l2DDl5T9xmML5m\nOTwXzyn4WHBZ8/+TFRwSiEHO0bRnitNt0zOpxJfJ0dXyaUl2yKrd0fqy4bTX\nqxpQ1MpjaM2JRqU7Wu6Ip9yGY8kdBvs8Cv/s9Fg2EaTUvE2Y1MCMVqYowWV+\ntyhF8waQDGEbHc8cme5QkjjghZgFuQS1KG44ZerpufwaCA0WXmirrbItLa1c\nPRb7WUSTaCpGXTSk5GoUa2/hlNlOViLubp6HbKTOpac9PWf6Zf7WpJYhO9Vr\nbl8zrM2NCAL9mlJOisERqSsXROgKgBNFuQbQhbkyG1J8jPN+lrlx8URim2Fl\noLKVM5joA86dFc4oIMOV7VuRW/Vum8lkos/09t9++MX+cZB6+Em+yasK/Jem\noVJOK3oomy2BQlki31UfZhqohrFDyScJ0O4p7kQj4U/Y3QnOi+Ed5xnzob1o\nqWbYZE6LUrcc8mlmKQVNK9B2Mfg5vnMkYZ420q7XkhpmtJj2+SlP0FlsNDfx\newRUEGb2PO8EVwvvUfB/mPedYKa+bn79pnlF5GrcFpoaCMvnkAqSygKfnZPr\nf22sn+US5YgVCZr7fJlQX9xAGI8SfOVfEm0Kx5hfO3MGnRgKfVPG9LJh4LBg\nderg\r\n=FEJN\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.5.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.6.0_1583694335612_0.12618881066176102","host":"s3://npm-registry-packages"}},"3.6.1":{"name":"@aofl/middleware","version":"3.6.1","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.6.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"87089f10ebeffbfd59cef01a095b6cfedd74c238","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.6.1.tgz","fileCount":7,"integrity":"sha512-H8/VcGPyb6O7PfvTOOi9nXhJlovMmUev37irt3WpZmmL+T5HpjI4Zx2ykH2u14XRe8T4zO1RGf6fQ3gouT/BDA==","signatures":[{"sig":"MEUCIQDn7lNpryY0YZpzCdtoeN4d9JpoHRKs36768TQeO62mpAIgXJ3ZNIj9pQhQLE8r696WPkD5x5wyAonnKErxl6Uf1eU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZ9+gCRA9TVsSAnZWagAAK2sP/iUfeYqtgiJ+MpLqRrZT\nhjiYyPLA4D26EPCThgYAX052Cwqok8x1RYjE7MEujLItVSuvOX/mXqcQwkUg\nqQQ9CRnmm8G6EBXUbz5pgwxsrEmHGM/rjpLjkM6KF+JSLYBD3T8UmwO/iURk\nELqbcv1I3mzhi1toc5KDcm3t8IMuoWa6+RgoJsB2ZfWvkaEdm9l3+Fcmthj3\nfQ5uJXOXYIT5i/n6e7K8HYQNvySCY48EgRrwmxJjjiye5p2cjEruNw0306zx\n5QpwZxUvkYfAZVsUXMrJyEUmPMQ+iniUEju2s1rP+GTh8lbZSQlpxlphY5/1\ntg+8fnCBEfxUUpiAzWvwr218Km2Jkl+TOBxDxJOcMx83+bQT1Ma/GT5ncpeZ\n/reltOo3qOO3qo812d5opINZnQ35iYi+jLoW6dmqoUKfAKSglXNQEqcn5y1s\np82Ak+K3g9MpbJAIQ+HnB3oigYZZ0ihwCAR6cTp2t4gqF+h92J9JBl2tHaCR\n1hnq01bDPx1c0JZccsvxAygEU6sB+f2Uc++dXhv/iVYXV7gSScM7b2AznGxe\nlcBeakC7ZignULaFr4/OSjy09bfLel3KSO/ZBjXbz7qulPyOlMJws5qHA+Gr\n3QUEass7vugXxwkabLix2qEvaXV80xXlLNbeBGjI90pPebB87tVR/vinVAhf\nvRZH\r\n=EmGT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.12.1","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.13.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.6.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.6.1_1583865760339_0.8834579149241428","host":"s3://npm-registry-packages"}},"3.8.0":{"name":"@aofl/middleware","version":"3.8.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.8.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"cadf91ff473e6754b899792e31f983cb4b233fd3","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.8.0.tgz","fileCount":7,"integrity":"sha512-nz5e1/VBPtuN0IofNGmmCOdHdPZIWBKVzJpA8n2TgSS0Qh1zIxG1Fbqjd6kOd+5tmhh0Rpmmof8LQES0Em6gnQ==","signatures":[{"sig":"MEUCIDTMwYUheVxMagmaVPeaqr4UM2aseAeNEMVVaY4w5/wqAiEA5kG+Wm7nIBsYcQeREApRUufLSCELqKiM0eq7YRU6mU4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuva1CRA9TVsSAnZWagAAvzYP/RItuVvc3XH5uX6XTyES\npmD+ibvURDOxM7Jo0eTJX5lr44jzkHjpXfur7FItyDnEfhGh2l6feTMdXB4g\ng6heJXm123gH1gaLk3dTnbSK1SC0W5VLfCvm59IOAtnrmDNlKr78X0MXTaWv\nEfcDgONmlf2oyrYyS2rHel4bPvnKEOvq4JEAIM8mxFzSGi38vvkUocurs5O4\n1NixxkzWdoHqV9XY9+Unk4PxhIUzFxOD0poTMyyqVUtepCLGGHkOCjnRGW2z\nazd+zxoJCEd/y6ZJIk1OZExSzvWQX7IbOkoFmykon2XLS18PAQfjxd7CakWz\nQ1z+XQA8Z9Dh9DQtpFmTuZ2+urErsgIb6s8q04/BKntbhS5UXV4LhWIxYmzG\nKpCDyXAZk/ejMqHNknDBiPgKP24d7NtrzawQVFQfb+zOFdYs5rlSq74tzNh0\n7JbDdX5TtPhkx2l7oBz/AckuWUicmlYuw9DpHWR7acvqe8uTvA2KzIy73Uea\nFQN4ja9lw0qqRWk3xH6ye13wL5BWEhRcEOAy0q+E7sH/ALP5NanlWRZuaS1f\nEXCRxXqaENgMT60GMhyeT3rTC9nDJkUixachRihIfEATJYYF9M8k1CMTNgkY\nNAZVM9D/r0vLUjXa1KZZbwq0xM2Po/9utak8IbFp3xu/oSs1n96PEbMjHPmP\nCReg\r\n=q49m\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.5","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.8.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.8.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.8.0_1589311156656_0.05775900702468584","host":"s3://npm-registry-packages"}},"3.9.0-alpha.0":{"name":"@aofl/middleware","version":"3.9.0-alpha.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.9.0-alpha.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"242905081a948d61c41a7b59996880402488f595","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.9.0-alpha.0.tgz","fileCount":7,"integrity":"sha512-8GErHbhXgmOO8XGGr/7Uu/dcj1vNRUGiyFCLm5jo2/9oLadK/7W3tAIt77uxAUj2PmHhPhJe+e6xP+McFZy8+w==","signatures":[{"sig":"MEUCIBXeeJi3q8BkPbosMwrdKRXDDjXYS8Qx3yvB9hJGD/wvAiEAnPuYgxl8CDnW0xw2CowWxl1PIC+2UbAhXkDoBIvqh3I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18475,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuvkkCRA9TVsSAnZWagAAL28P/2LaflVNTfoCoi12G2mz\nINPRN1lK0O7LebrX4Dl+ONlO3lcmvVZWa/uLQGKvP+403L25ZrE/Q+H+Ckxu\ndEUoYSAoJY1q92xVoW7GasUB+eGFVpa0Vcpp5qjUqhJVSQoDkKvNX5FbL/U4\n8mAP5h0aoRsCroIw1BK7FsdouHDiVPM6gugberY5Nj0O88CEAxI8/48iqUh7\nxvqt5h5buPb+8VOH3hcPcH2+yms3PRS2qMXn0BlwzzKDyJHPUlbRxoIOYtPR\nzGMpo4UNc57iBicj7NmXKApryXhzo67uv2w0D5yuk+UraxcdxY1r5tKrCIQx\n9yWCDFL+ZmXmidLonICYhtddl8ViUpzIQ6wOJz/flPUXRbht5Qz+1Oqt7R9N\nRTs10+iSZARQsK/qdYkeI4gsHWsWnMziVLPM04hrNvS77O/A8PluFeHo+ChX\nSHlaMA4agoBQ3AAODpSZPGv6v3YhocNDM8r8LNXPqhKluiv6lJr0VbBuaILd\nQV7dk5XXaUjRQqgo7hQORi2bdCHmEykqBcOxmD72w09gD6pt+EN1UmS6U1Uv\nyDf3ctttQhL/l14JVht6ROKyu8fwGu+mnk7GWCHoMFv+DytJg7UyMqTPUjAQ\nRwqIWAvvsSkJRwBpz+PWjL8RofxKSOuhD8C5u0fNhojKb6l/IruupAwFh5or\n2+7h\r\n=+bcS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.5","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.8.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.9.0-alpha.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.9.0-alpha.0_1589311779902_0.22748971890079583","host":"s3://npm-registry-packages"}},"3.8.1":{"name":"@aofl/middleware","version":"3.8.1","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.8.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"e9be5a39ca284668c988d7b8774df8f598c48757","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.8.1.tgz","fileCount":7,"integrity":"sha512-3rAG9l967iFDrhlN4IBqRW7ix+RzufVd8MPxlpEiEL6kRhH4YlYqIf/jhj4HDoXTr0DkMM0Bs9pkMLyl2HD1Jw==","signatures":[{"sig":"MEUCIQCqMIHodPFu3qFUANWMABt71PABuAYOw7lTWwGW/oBi1QIgb4mNfw5bvDOpscOrTPQygvOJ6LaAa8S7vR5QZ5bcCZ0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuvutCRA9TVsSAnZWagAAd2IP/2ikScmC3CuMAvhpcWdV\nrGx1XPEgaV1lk+Xu1NJHd+1UjckcOQ2RlyGSWpmdOSaTyvuRpPowp638SzfF\ne3Hnq5HZ3xvzb+X8OtmCp4pxcFmRpj3GsViJC4mcqIItDBBBZaLYl41G3NAl\nbvD6bAoyvy41EB5XVfAxb0ObPmlAQKnazNWVEmlxDcuBlOVx9mdPNx7Y+A+d\nDfCT0IfYIo43ZDsLbXU541tKMn6y7m9u0QAY2td+RuLFkQGVZ3iWC/J8vSb3\nMx4vYwZQv0Gq2EwFGwzklR1dEAfTFJK4w2PKMQMB0+oJnPQql4+sirzrkZ84\nEN8OdIsxWNFbumvBZsTAjuurSE/8V8XDe9IyelQqks6fwB16U5Ocxc+4UQ0E\nur5cPRuXGl60K4A5AA1fNyEWeOM4NmjElYcJ/+LUzdcHiEks1vrJLcKqNt75\nSxanbtj6ObLV5wdoEuPrf+1qHFQSw2dfIuwmhspmIVdMLbmz1RqvyxqUey0M\nDYYQukhBTfUE+AwB4fS0jy+CLogWhoLMSpMEJTX/wQwSt06QCEMlbJtCrGzC\nomu9ElhkWsXd0YN+9bHK6M8Wf9WCGTjnfMsdzkG4brWKAUybYYWBxUFXxgkc\nzW70dNu484O+k/7RdUuNJEIyDmkykmHoUSIqnzOWtR/9AoJ//NADDWNduMqc\nv7Yz\r\n=WB0F\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.5","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.8.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.8.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.8.1_1589312429058_0.8413458945654662","host":"s3://npm-registry-packages"}},"3.9.0":{"name":"@aofl/middleware","version":"3.9.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.9.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"02d16896418621bc5a35fc0f58ddb39366740174","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.9.0.tgz","fileCount":7,"integrity":"sha512-zN8bhel9Hv55iu9uwossKnLVjTH/0aLHkuldSUu1d6jVaMo660JpfiEBnQuttc3bgGzxwVKzh4HR54YO2O7zFQ==","signatures":[{"sig":"MEYCIQDZzkaUt0ppg6cTPSX6eTQkdmJp7al/Pwtw9s+7ehrzHwIhAMi8KQgThLwnFR4+rL28BIHGGpwTsjqOagHsTRjS2bLs","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevtgeCRA9TVsSAnZWagAApuEQAJHYXTO6tj+rKO6BK2Cm\no53y5JwgVqgw1m7CJOm+IXHwdI+UYMNQOp9+0xEc5BBWbqNcglmb/YLwCkLt\nkBAur4gi9Lx9WoePGQMUe2gQ0/F6eM9aWPDeFf3ymOdjcGRFVAcPSL0QmztU\nvixD45kDC+frgrEMSB7KUBD/HjyrD+UxNBVFBxGNc7Ahw9cob946QDeI2lE9\nEk+kfDDqmUZPty+5PMrxAjuA95KVrSHYtHWhwNKlz8rwOQdERDk49WHBaf4o\n9lUcwhBUJmOjhnaC4fHWFH5WifPTHs4TwMZR9nkL4dg4uizgbA3ovJTmHojk\nvVA+/MAZ+ZyYIU+H7ajBoqb/he+meKg5Cj2tCTrlELpzB1sM3wD6cz+ivUoe\nxi23jXeUNOIheGnZK0OTv6quDIxIfNpcWwRzDYQfUaUmqtEuBxLoJH6DtmGA\nOybKm2mCp0idaXNINVVmOuUnT+J7e5W2AtDYrz+cqcAnXWVpRGbLoyfYuexA\nnNPVA+J/J2lEqvu5/NCmVf8nvnJBZea5TfQ/zcs6SnTcwZ7PjUDKc9lTBXUy\nalWyB3TUiEWag7ZdJRO4vZZyMzrVLNtTpR9AIbh9AJSPL/d0DaCwpEM2MYa7\nqblGY3GUX2OQlJlWGhTqeAQBGvQyYU5gh0VVYlSqCzITcLnGb3EUsDrkIQYa\nacU+\r\n=tsgR\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.5","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.8.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.9.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.9.0_1589565470130_0.14105000936745604","host":"s3://npm-registry-packages"}},"3.10.0":{"name":"@aofl/middleware","version":"3.10.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.10.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a11ae1f4132146b2e4ae079f3884cb2174b596d9","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.10.0.tgz","fileCount":7,"integrity":"sha512-gqU6WDWRr6c+n7f0DT/jS7o9Y19/B0nCqXOowIEUZ8xm1Flw21bhamBx/ffdDex+XFabm3LepO36Wg0OPLWrtg==","signatures":[{"sig":"MEQCIFmS+hssRAHQJptfZp0AnEWrZoLnoGXVAEff+PZnSmp2AiBVLHBa3zEsqVQaFGdr8xBeKIifJcy3sqpYRXScbsbW8Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18461,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevwZkCRA9TVsSAnZWagAAZ+cP/RGuvc6is1E4l41XJdmX\n3mtrYYDXXwx8/ZqxV5FEkEh6RwFBCtpX4fau4VIMGAp2Yp4c+8YXcsQ3Uw3J\nynmZHgbZ4q+k6Jb/0pVAq51v8MKlhcVPv9Gc018uDg1T6BLWpBuvOZVCe6RS\na7dbd6shRgdNTD/AQQCogQDvzlOxXuF42Xp8YdPLgcdF5mYlbM1fAf/z8WFJ\nEdY5GTirAt8bw+Ov3/tq9Q59GKNTahnr57jXuAU6zL4uo9YZDNA5cfz9/jUT\n89b4E+WUnv+p/lYYXajjyswU2r/78iRjfBtiHFewx7PLv5g+HazF5FwdJYUX\nETlNK+KEhldncXFIH1OcuSMy8fBuaT8B8tWKsJR+mKnYuUNtnGZYNYHs/pAC\nooHyGG5v64MLNndYvrppajF2GFm2SjykydAE0VIlY8pFDXphW5hCWWCQIdfV\nJSfxH5OLTDMnlcFBTGfK7OyQHujFg5pw/v0FbXXiU6ubi+GFJ6I03Ix/gOAU\na0WPWZ2HlJIma63DpOtlf7eYkDbzWYTuAQy3jUI37bS9y0EymcdWPcR6CUjZ\nvC4r7hCpmICgHjoDCouuyPzyGJr3fen+0DUDCtjt6r84yqFzVSk5xWxunnc/\nqCyznGEBL5aSV1ZA70QeyvvpY2oqcnum+VpOovrJCHT2myqHRDVciq64D/Le\nYTlD\r\n=D3UW\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.5","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.8.0","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.10.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.10.0_1589577315668_0.6929345934185169","host":"s3://npm-registry-packages"}},"3.12.0":{"name":"@aofl/middleware","version":"3.12.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.12.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"6398bd5cf8216820514259545b44e25974b4282f","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.12.0.tgz","fileCount":7,"integrity":"sha512-cCo6T6+nEAoo2qn69yHjyaO8ZsBU03y+fI+LxK+R5zKwl95KhvVEw8xcF6n3qdWKGVQkuhFVV9QH4ajzfEvtsA==","signatures":[{"sig":"MEUCIHqFTlnqU+aV2mE5XLhBAsSM9VYFVNQi4vHukL40imGsAiEA65TPzIxOqkHdzNmkrYR5Dv7/iYIqkHjhde9xHcahjCo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18461,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgB3LaCRA9TVsSAnZWagAAfiIQAJZAGNb0fS+LvLFPnuX4\nGsj8pYynaEP9dA3SmHzKxDtrm2d5j3BW/blu9eFs/rYk7GMmH5qYCcAJFeXq\nSeyUwTT6V5BzvVWspogLh/84QnCuvXHHNwQanXeSMj/TVVAULElsQKHRcL+9\nlm4O6I770/uSX3RHt9HGKopIMBsli51o8UyNfbup8Up3n8lPwW067celgBF/\n6ugKm0k6qgq7MM2HcMd73uH9GgyqsQe6UWPLjOWg1daZzmBCv4R0nNQ+sL4U\nGo0sMZ6rrJDOFJ00AziFmVvwTUxGkapUW1zBlWyKfLu0xJ/9OFG9V/5X8fBI\n49VGiCh3MqZnmCVu+cv/U2OR3vcJTxtoLnFh7k991kcU1DCOoN77catzn87I\nbote5Hj+cwyJT45X943rzqpoMO0WHfx7cWpCLszXoPzy4Y/GEr8el4fHnw4i\nzmL2sBuYLe8mQNBFuoABtlVeHgeXJ+RvSDyYfYjFISIXkFPEpuByuRIhiq3l\nWq9dqJmObhjdxYpKClVDBJqbRlPhW7epY3nAM9e/fotuEd3Mqn+pMG2DqMdf\nvK+ywIsKWlCHqQb0fsA252DcsQL6FaP6L9fKs9DHtgUptVlQx2gwPi6toyq4\nq/4BKyf5aZGzZikPUtrQ2D8X5ckFX7deA1jelXxXKWZfp2Ysz1Y5V+xDGR45\nEpau\r\n=MYap\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.4","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.16.3","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.12.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.12.0_1611100890339_0.41985992853175325","host":"s3://npm-registry-packages"}},"3.12.1":{"name":"@aofl/middleware","version":"3.12.1","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.12.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"e1733e1e2a2cf81a6b1d64f1e15caa42df2447d2","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.12.1.tgz","fileCount":7,"integrity":"sha512-dmpG1dHoyI9IhHpZJVwV2Aply/CnA6SCZWChk6ZcijlOLNGFhTl9mVzou5drTlTIJzSvsVzr/uWISXUizKF43Q==","signatures":[{"sig":"MEYCIQDRGplU2Z9BxC2Rd5ASbrbWBN9HWGuONeir+dMBZZNSHQIhANg3R4auSdHF3PqELPFbkkMCnj3Ug3xntSNAXT73ojVt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18461,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgB3VoCRA9TVsSAnZWagAAuZIP/AoAjgvaw5xNR30rRYZc\namZDAk2tzo7hJXhgbhbRsW+PcTx/xrrwtHwrn4Vg+7lxs/Bsh9Y4xVafutQ0\n2D37rY5oWxkBghBsttL+8I1M9vfDg+7VROKjxSBImJZ4AFHORZC031N5IgLp\nG42aOQgs+ByU9r8dHO0Zs6V2l/KMjTY9nNEeGpd0eKo6PQQe9d7a4XHBHP2z\nOh3XcAEb6GIHtmMs0TulHtBrVqfv7X5Uyr39FmEy03x1FdiUdnZvV4vMweD8\nu6XdxPQpMo4xYrzYT1KQABU83VhZJO+lQoKgSsAwM2LGZlftXrTDBGMg4B4A\nBPJ9Xhd5tadBHGhXa3g1hKd3lF7YzWvW/9kPgseJgxiQi5nw7pSyucs9MIEv\nlLKEdnkbsAnqtIbvNzzTxAaszIqJ4XwJm+f+RcHz/OGWk7ORoLERIUDGRJXO\n9XtXPuMdVtZgBz5tOlvngOTns38pB6Mp2mtFDdlfZky2L6+89ciT/WCJZNDp\ns7GFIZAxt4GaEUswLzGU6NrVg70GmJYMC52eYj3p9KBG7JQ2GT27cLerlm3u\nsVC8vPofSKVOKJ2XV+4tfTE0nhM99XH+407yHh1WqYQExVkVQINAA5DMe/VO\nSFBIALKzb8OV5Zimqio4wKQ3B1rN0Vh+z1EonI8xJE55YJcxCpNDK+9hfiH9\nYteP\r\n=V6FP\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.4","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.16.3","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.12.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.12.1_1611101544483_0.026497250355708823","host":"s3://npm-registry-packages"}},"4.0.0-alpha.9":{"name":"@aofl/middleware","version":"4.0.0-alpha.9","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.9","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"900954b9ab8632003aa9db23056d7d362904e0ee","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.9.tgz","fileCount":7,"integrity":"sha512-ivWOjl9+VhHR4baxwFUgwevejsN7QY/TysjUHocPUO4s0x8GBiy/xvaGDqAU3HfIRdtvPkx5TsrjI6L2z/e70w==","signatures":[{"sig":"MEUCIC+nhlIhCMhv7VaQnOuEGaHXed8fl0q7xrlR7nVO9yu7AiEAyeGKexzGq+csVPl+dn51gQqlKT43Tvi6FwbY+7N49q4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16355,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGgDKCRA9TVsSAnZWagAAFVMP/jNScPREb25tVQ8jRg9r\nP6SDPQyDgnIQbS/WR27wmK5YuNsWl1TkCLFV9UUQ+D+BtHzSnAxQOWPBNKIb\nGunZ9ul9m09icpdZ0iXfG3EtMr4lijMkgLFjHm8LU/c5Yt3JVXKuoPygKNgr\nWzGV5NRAWi4rt7YtwoZWL05cI43MJL52kGdZyGlHqsesOt3lw6AX8Q4OJyXg\nLllMREWOPlcWeBk79/XLJ9imfH1wcrOlW0Ogq4JykCgjTKVBFJW8ff7inYLc\nmAVQT4kwJBvpjArAi5Dcsj/Uh85sKnd54uZnWazdIOrN5F8SSu05pTSS1CvR\ncfc9ECOxoOzGTOgjJUp9Pnj6Z7///tyX9PYXHokagFVnawscBz+DjI4MRkMs\na2B+w7kUdHtKfQMS69Q0uN7KKefWj35H6CWKqFoaGPyeo7diwrEQwPAqWrPy\nvhyeAmwwlT+TXSupao3A1ck2F3ildM1NXhqnYQ4BTvVckDVDxP/BW/5Cxv5b\nOcpAUuLopV/v1HJr9ECL1Y0Vl6LQxYaMqbn0xuTOQWFSKCbber13+NIGsXiS\nlrVMlhoC8rMHHDKYodkeQE4dn5Vm/scPF4/StROqB7pad3PAi+nv4QJW/RFH\noGUgNdmkvQQGRnHsmFfdwGbfCZieZ3Ug36tj4tcZUoLchUqBocF4WuD3dOjs\njzV6\r\n=r6vm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx @aofl/cli build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx @aofl/cli build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.5.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.15.4","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.9","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.9_1612316873644_0.8696747081874228","host":"s3://npm-registry-packages"}},"4.0.0-alpha.10":{"name":"@aofl/middleware","version":"4.0.0-alpha.10","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.10","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"2295681b5d8e62daab11c75593f774127e5356e5","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.10.tgz","fileCount":7,"integrity":"sha512-J8peNiLDLuHjkJ59eHLwh7PK+wrkIO0K+CWa0Ls4g5Ab2h9Eqd7/3rFJ82+DI0/0OPALX/KsRLf2ODIeFhbD8w==","signatures":[{"sig":"MEUCIQCgoMz+OSIuH2djm5CEMt34RyQhbjvItjQd6fPuj6xjKQIgfL0KGcEQ7o57l/tYA4OLrFP+E4TKhVjteAkenF5m0vo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGgKvCRA9TVsSAnZWagAA2cIP/jdFZ01b3JAF6qcepJwC\n53KP5/+knXxcoD9Mvp98kxUmEqbJ7FptIaKBTYU+fumIAMHeP8oj4irdWbq2\n1vwbb5AqKEN7yWR/syQy+pazXv02siJAmsjGnqdnczQ8ppsL4ssLDZ3KizGg\n0KB2w6m9xCfwhUM9sIJ6GXUkmknsnkCge3EdYVX27kstI+c2IHdNwZP3dgIU\nb8jwRMxXrXrgGAuaMp4PiHjuoYefqgr2kfqN5b1EKCiW7yvFtzG/IfC34oas\nc8HyK1NHdx6Kcf5ERiBJgdurpD+ba4giX+0aKYPSLzDxAm3l7LALwTQazsUT\n2gr9qMe7tX/7w6F+4Amf801iwgLYtKFoIEPr3N9ZguEVUJ27zKhQK2QugV44\nyYquJpu1Uvlpt9xKbTP5xeQmqUI9mLdS4YL96WSdJzvBc+0bqfkP0Ags0/l8\nPqxFvPyyM+AG0ztOzgtPnF0O37Z48t79R7lhhIRzq7LCG+4kA5BwNKXODMcJ\nYIeh2en/Fh64OaxYeYXDcFtunVRo35h8ujZqC5ZnzYFA14gviS7GNL7nWLFR\nAS+AXVJnWbXjL3kFyl6+0l7MUnajP7g4ct35Lvo46wfRoeyJI4ukQjg1EyHX\nowilkAFMQiKnWwYOvOay1kHvWuQIaKdKUobQeScZohAyFtZVmqWP60qNUR28\n5T/1\r\n=KQqX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx @aofl/cli build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx @aofl/cli build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.5.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.15.4","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.10","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.10_1612317359507_0.11575447844568032","host":"s3://npm-registry-packages"}},"4.0.0-alpha.11":{"name":"@aofl/middleware","version":"4.0.0-alpha.11","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.11","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f576c59ae413e93f14f06d59369c522ee2de9c20","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.11.tgz","fileCount":7,"integrity":"sha512-f0E/xYcva1TUcPfyf2arHzQz89pU7qzr/A34cahNqT3hQzmOGOe/CUZFbHfqKQw0bPkTC1CDnU1y7iK9kiPCkw==","signatures":[{"sig":"MEQCIEf6G5eMHMVHSGkr0sml7Avaoncvfyg7p8aq6MwzXP4ZAiAbcsPSkG4i8lzRbhIg/aG+6CRw/q3/Zs9ydHjYX0xL1w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16357,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGglGCRA9TVsSAnZWagAACbsQAIlYHx0iAqtr4VQvH+MX\nN206zJzu5GEb3xtYa/FT++zp37Fc0zfUFq7M+Cr5s2pzL61urawGsaV92WiT\nyY9UdadGOVBD/hrMkhuTJXrBPBuX9zAWSlcLvY7BSOThzEVatqji4cD9vXdE\nP5QQsCCDQ6UqN8LRT/OdgICBwiEyOu+h2ul1cNztP8JiDT9qdmSQ97LzUMpg\nAMERCvYao1lQecXyadlrgAgrwqMjz6UBNzTx6Sh0IGZXnFJqK5we3lBTKTum\nVCAIpmJCHUY9Jh8qZd4gONMJ365oXRtFsjLt4+r12kKWiJprTeAOF0KYBRjY\ngSUUwq1YYjm0KkLOaj/pZ7AOb7L8B08Z7HtUjNHeyIuW8GBqoRGDed/I/WW+\nFEPYOjI1JM3HFPmx1BlJkgt5Td6kgaX+vtpTjhG1Rav4GuYbnQvDw3e3pWCY\nle5YjUIjHfJ4gNYiSaUjbxIygC+fK+9c2YiQPInmxElMgl8ANoyvkIFi5wW6\nx3ML/XNQ3VfV9jG5e98eHMypeMrEgrALxjV7ksVtbuM7OhumaZsmF+YjVsM/\nLJxZxlgaEmI903JT0imaZ3VuC7ZQgrCPVRVD4VMr8PT2SLkHLauu7B75swh1\nLfD/dnaG2U1yXQ+ooP+WlGLBMAewROT5Qr+Gt+WmQf69SUtq7KihhqeByUGf\ntp2g\r\n=bO+3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx @aofl/cli build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx @aofl/cli build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.5.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.15.4","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.11","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.11_1612319046145_0.17965455718218037","host":"s3://npm-registry-packages"}},"3.13.0":{"name":"@aofl/middleware","version":"3.13.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.13.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"b17f48185d7c06d420e6dca29c5665167706b987","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.13.0.tgz","fileCount":7,"integrity":"sha512-3opAzvdAQNna2mMY7hF2zGvKK3CburTroyElP48mmSoWzQx3S8YF6xPLAvaCIPU3F9t/IYV4VPtNSFCVwO3Ufg==","signatures":[{"sig":"MEUCIAwhq5SbXkP3uz+3kkKX9a33IImsse4DTSNObNevTQe4AiEAsNMKPrWWYHlPFdyvORL5nBWZfOKnHXYMjye33QSV/+0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17992,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgODYaCRA9TVsSAnZWagAAjO4QAKJFmj04KQmACkl5aoD2\nKarEAQcfle7lOrqHROF0HLU7BiYL+9TaJkc1s4eTXcLWEhP8c3hiAl5zUUXF\nA0eDSG96ogW5WRlNHI+75bdOIukxgQqK22d/RCX1uzS8r7N4yJMAEtIMTaj8\nTy8WzImYALrp6Rq8uwpmub2/GCWVQVAHUhccGZsjBTHlVpYZhJ6km1dkkCQQ\nNmt2/r6a6kwLNZTR7NPNsCPqpjMVs2Zb7NdKqr2MoywGxT8q8qA3zfDvguif\n/Y78gcZFTReZtvUWLZ1fsBAUFTJ/PG1NtybPTM5+Vsfk1mVgioNPdPUS1szA\n0MRceiR0fn9kERVZwBYV9vht9++fb1izqfcFqlAhMEq4eerB+VXzFDXanow/\nY9M52gK8669ENdUWMS2BEgYAw21h5F8JGIKNMOA86VwEJGNcDQahVoSvr0px\n8ZTkDwP6CkuOBHqGzeJoqdv8uKmsxU661lAgZOXZqVx0WPue5k3j6hde6PnY\nZVrr310ChqyIB9RjfJss1IjRbmVlFTNfTRXKhOxVLXikpxEQQn9rqzYCnes+\nLCo7phlOVv21aMfcp0DQnLVsJm8pFSN7KJP8lh9a0y7aJ7z0vVke22qUzCvJ\nK38mGcdyj/XQP6DZ1GRBUe2qY56U9MNskhmMWK1Sx4OQlS5CVhywtha6aYu6\ns29G\r\n=SDcc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.11","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.13.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.13.0_1614296602326_0.24426757772589647","host":"s3://npm-registry-packages"}},"3.13.1":{"name":"@aofl/middleware","version":"3.13.1","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.13.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a2e73c8aafb9f507da182f99fa34c33b53d4ae5a","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.13.1.tgz","fileCount":7,"integrity":"sha512-Rzh9ltfszdrvkLOt1XyaqdEjKjcvSA3bjrCNVRjfPZr5gZQmjWvoU2BUjMmh3maMR8HJ/yXeQJcG4cWI+Vz2Lg==","signatures":[{"sig":"MEUCIQCdvD4bXLEJSwf/4FobxPCXDElbVqDU6f22ve2vsTeHQQIgGZ/a/O9nj5spLYeEzxxdoMvn8ec4GSIP87k1fGX6lzE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17992,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh11qmCRA9TVsSAnZWagAAARAQAJjES96Eu96xGvGEsATL\n2lqfwsZ0SgvWGV03ZgI/JIng/28mwZtbYxWI3dCkkWYPogPdRhwyGqV6ECv4\nOm5+MAERk9pt7sL+GU8q6aCyDRQliYbAzIBlmQn9UKfhamfjXQZFFoHkS4oI\ne0+s4Su3u5LhmTsLLEE5tR8KHd3LloB822ccfDtAaLaUZIYtiTlvTpUj7vex\nvMJty7eDoELs0E45km2nzDyQeNPvmKV9kMbmFgJgeRBQq6p+lPo7TGni4JLC\nWSXyxESY6FMgGCNk7weZkHDvvdWlJc0mZe6SB2LNdN7EGdq6sNMo2YbBfMVC\ngQbO2/wicdKUkiDKYz7n75+goiKBugainWxWyfnUjSNjIj4w6eWujNMP/GWg\nz3Ogn/IuqgpdNxj+cYfQ2Ai06fpXsd+Ys0PC+F43CxwBnEDGm7Irzttwa+hl\nJZIejoXEh11/qFHG6RbY0Nd6yTcfszUlO2319N+DRb1Qmpb53/oVyojrjVSg\nIrhCF4YpVh2iWVV5HLFpkOiESD4MWD3XggW6ln59+CrbAhSk6vbTbg739pjz\nm4DiAoSqKuUs+IowHW1fVWp8WPL93+K/HdyGQoPjuOoFAQtZU/3mF9gq+GKy\nmh3gvJ9BIyk+SNI95D/khAePvFeZjXEbiGr5aLnnx65ugVKk+xDEKToVWmuz\nAUUx\r\n=Bx0+\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.11","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.13.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.13.1_1623800917947_0.35026050228855676","host":"s3://npm-registry-packages"}},"4.0.0-alpha.13":{"name":"@aofl/middleware","version":"4.0.0-alpha.13","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.13","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"92510d07f066234adab632327af5bee38c9794cc","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.13.tgz","fileCount":7,"integrity":"sha512-4tdwSKZjgyqMERW85IB+8BvFE84067ddchDRh+zHdByNUfesrePpyokyUJyd2hWojpC03w7qF1Setd+RX0xDVw==","signatures":[{"sig":"MEUCIEkyrq/vI8xkRKGeuRH68zRTFZJsL+34hCse6VV3H0UiAiEA97dt4EYTfmsif0cXyxvIKf3pTmiIkWt8lseSPF4UXAk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15208},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.15","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.13","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.13_1632439922055_0.9384095990180339","host":"s3://npm-registry-packages"}},"4.0.0-alpha.15":{"name":"@aofl/middleware","version":"4.0.0-alpha.15","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.15","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"4fd89ba4e8b5b1b079781e738fa563d03287060b","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.15.tgz","fileCount":7,"integrity":"sha512-caGD+93nf5NodXlikpmWp2wDmIlFLsc1zcEYeTKI4ckqSagWGBfZwpMC7TTd+oIu6V3RlWEvM1AJhtGXNrZS3Q==","signatures":[{"sig":"MEUCIBRBp69YnWPdkTLymxkczsgwIwmGygCDvmyoYR0xH5g9AiEAlz1FOLUwKMOQmmcWErHJB9XVdb7x/2+LdxegYJiKhvQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15448},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"7b448cf64b30502883b3422662a9480ea25f2d60","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.15","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.15_1633539831248_0.6615147572695641","host":"s3://npm-registry-packages"}},"4.0.0-alpha.16":{"name":"@aofl/middleware","version":"4.0.0-alpha.16","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.16","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a0ea3c25e18f846b82d7de5bfb64737281440254","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.16.tgz","fileCount":7,"integrity":"sha512-lpRpYuCho9a9cg0QfA+S4WeMn5fL8GjTXBngU0iqM7FRqth4HQOzUPOxKVOMfFkDfvQB7WuI8BaDbDwW8Ag4/w==","signatures":[{"sig":"MEUCIQDbsVYiTenp4liz3T/knWbOvRUVxfcXtz6+qzEj0uSmwAIgSiQKSnDxjd93ivM5utAH9nN56dvNTWkALEfRcTmMUO4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15445},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"7b448cf64b30502883b3422662a9480ea25f2d60","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.16","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.16_1633539906295_0.06401668444145558","host":"s3://npm-registry-packages"}},"4.0.0-alpha.17":{"name":"@aofl/middleware","version":"4.0.0-alpha.17","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.17","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"ad3b3dc2d7be0365b60090e4b1ceb4c93d05f7c1","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.17.tgz","fileCount":7,"integrity":"sha512-iuyr1ZUFKqI5vc1LAuO522VqFImJsiN96svZ/lmZh/3g6c9F9rCqx+bYSem4zYvi++UP0OEKORUIm+nGBk0Sdg==","signatures":[{"sig":"MEYCIQClFK27tGVo9vfPLKU9cym/UHkU/zn4urAGu7bIwpiCOgIhAIWdnOnwbfl6fgRSOSJbe7+KkpQVQV+NP21SvjI3isjI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15445},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"c7b3ad6feb17eaf3721a5528e86a31ddfb350ef3","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.17","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.17_1633546048620_0.563814594911211","host":"s3://npm-registry-packages"}},"4.0.0-alpha.18":{"name":"@aofl/middleware","version":"4.0.0-alpha.18","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.18","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"3439525c6e50b2c53791389e8cbb8786e675ae3e","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.18.tgz","fileCount":7,"integrity":"sha512-A+xR6mYvGCcby1f42qSXrVnm/QTQWpRCFXNKToX6FhYSCbcaYAdgACSOow1Y8UIi4i3N+C8tQqkcZSCN8X9agA==","signatures":[{"sig":"MEQCIBVMRyz5EoPZYdDQ+73jIL24A3GhZi8+6PdGEEw+4jZlAiAFYj9aKVk2fQxCha4lWw2qMf/SH/zCHzhOQm0C8GS9Ug==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15445},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"3971875a8be8fc1e4ed7f6c737cc9aa1653e049b","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.18","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.18_1633563631451_0.5384526633977766","host":"s3://npm-registry-packages"}},"4.0.0-alpha.19":{"name":"@aofl/middleware","version":"4.0.0-alpha.19","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.19","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"155fcfefaf4ab1990068333955ba87c20ad7cda5","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.19.tgz","fileCount":7,"integrity":"sha512-zOe8kQVPcI6mJLcdB1kncP/hEXImyDX8XnD+F21XZCbmow07LgvBu+8w3722/s5BoAT8hAat6Mm4C6HGiDA+7g==","signatures":[{"sig":"MEUCIGccucAN4fzwpyUt8NiBCO2ODCu/47K53VqnSj0HeOGJAiEA6DGeDc2TalXYnFg1wXB4/oGFkOE/Q/T4KIIMeWx8aUo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15445},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"79369e766cd4fe78098059b93d1cbd7bb5dd8830","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.19","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.19_1633564047196_0.1277464221229747","host":"s3://npm-registry-packages"}},"4.0.0-alpha.20":{"name":"@aofl/middleware","version":"4.0.0-alpha.20","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.20","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"f9fa8396feb90ee45310a00b256fd9e4d483436f","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.20.tgz","fileCount":7,"integrity":"sha512-HeeNhSgxjCieqv/n5tjQnIvqRJccCfZUgJey0VZ2SDCFqREzH55wlAOjPMi7RTJ2a0pfmoQVCOOuLZMj1iAJKw==","signatures":[{"sig":"MEUCIB53J8Ewj64d6feDTRV+QNbUjv1goo3oNYhSEQ5+jHpSAiEAwwuX5KxzOa/lgJE/U3Iy/HJ+toY/+liHIWMiU+hL6Do=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15445},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"398f195bda4d61023d6d7889598f5688c276f1bf","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.20","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.20_1633564494749_0.2804500419008562","host":"s3://npm-registry-packages"}},"4.0.0-alpha.21":{"name":"@aofl/middleware","version":"4.0.0-alpha.21","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.21","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"4c69d4c2a117c6e34c5ca0380c6ab16167507de4","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.21.tgz","fileCount":7,"integrity":"sha512-NS4kUhG4X8JZXGnQFoe42R3XBDquhBxkWl86Vib7SAPmDU3vHdbuOa8ANU5GnF7ZGaafYSP0LWmkotaPLCUlUA==","signatures":[{"sig":"MEUCIQDBSmAysfn1oSQx9vJ4WlQdrwaGNZp2HPqT0KWojz6RTQIgA5kRH9X1xeBu48JzCeKPmDBiYmjZo8uBnqf0FxH3XGU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15445},"main":"index.js","module":"index.js","readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","browser":"dist/index.js","gitHead":"398f195bda4d61023d6d7889598f5688c276f1bf","scripts":{},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"jsdoc":"^3.6.6","@aofl/cli":"^4.0.0-alpha.21","cross-env":"^7.0.3","tsd-jsdoc":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.21_1633712758381_0.8774374578280268","host":"s3://npm-registry-packages"}},"4.0.0-alpha.22":{"name":"@aofl/middleware","version":"4.0.0-alpha.22","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.22","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"7cb4b16d0f7eed068ca47dff2361d009a7df8bb3","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.22.tgz","fileCount":12,"integrity":"sha512-OxSWQPP3LTO+YIzgEjHDVgsAzL0TBTdBJGN1nG06yFHaRV3m4bkQXsRoHW+3mAaRMn3nFdA6AN3R6gjpuqclJg==","signatures":[{"sig":"MEUCIHemAoPB91BYmgW8iooaJ5dLCW/ceTahA6JghyCTa45/AiEA75CtpG7oEZaLNPCGLjmDFxN80a50iiWcC/0ihrfo0OA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"289b7f60d1cd721d68cff783afc623c3f51cc2cf","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.22_1633984762561_0.0021743202809980655","host":"s3://npm-registry-packages"}},"4.0.0-alpha.23":{"name":"@aofl/middleware","version":"4.0.0-alpha.23","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.23","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"dc767f52de8baf5c2659573527f1751082ce1c17","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.23.tgz","fileCount":12,"integrity":"sha512-5ubjPB5uZoppkgRxlx35+gMMMviQLx6AKzpX4VZlwgRQPFYyFxN5q2SD2TM+mLTOsurvf7krsOUWMFMR3T+Bdg==","signatures":[{"sig":"MEUCICFfg3Tl5G+SK8CrHfKJcKryViYt6eb9LEwdsxR2xNAgAiEAhF8dq8yhpKGkLSD4DbHkI2TQVAIVX/i+bViYmPwF3y8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"a2829d023883e5cc51126ee549f70629ceae8e8d","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.23_1633986440019_0.5037433702251155","host":"s3://npm-registry-packages"}},"4.0.0-alpha.24":{"name":"@aofl/middleware","version":"4.0.0-alpha.24","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.24","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"9d8ed11ededcf3d63ea75bad1fc2b16f9d45b3cb","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.24.tgz","fileCount":12,"integrity":"sha512-+FgKb3S+wHRUKxXrgutGKF0BGE7rRe6xlY6yPdUsoLI/kDOepFlNZ84VQTJPKQBmiKRIXhUHjb36OjQfJbKMpQ==","signatures":[{"sig":"MEQCIBWJAT83Fl8kHA1mzvy4R2W6DvAodlGQc7qFpyvwmJUbAiB7JZ/tymzKAhjiFprwGxxb8aq0ueZK+0QJhLrBBG7d/A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"a2829d023883e5cc51126ee549f70629ceae8e8d","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.24_1633988811824_0.18136331065229805","host":"s3://npm-registry-packages"}},"4.0.0-alpha.25":{"name":"@aofl/middleware","version":"4.0.0-alpha.25","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.25","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"2a5ebd0cc4f4c5a43a7d89a698425a79a54a11dc","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.25.tgz","fileCount":12,"integrity":"sha512-3sRN+nVuW0GhMlaj8ElYwmXfTq1EqT8HoYa/nAULt/ULyADllM0uhv65dSn4tFSu+0luv2bhh/P0pd2vI78BJw==","signatures":[{"sig":"MEUCIQCHYnWsIWilCiJmjAPWxCJJyCuwKtvSM+dr2zC5KCAiYwIgHCAnoVRjYG2oxq0mi83WsvVW3F2CyEuCCaYpMr+PYIw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"8e4d611be609be11acccb9135091aadd10134e8a","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.25_1634001638364_0.30728522494842836","host":"s3://npm-registry-packages"}},"4.0.0-alpha.26":{"name":"@aofl/middleware","version":"4.0.0-alpha.26","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.26","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"ade92454c27c2a9a68889819fd378cc86a9c9c62","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.26.tgz","fileCount":12,"integrity":"sha512-KsqNrHayyEMhYfii0EYozC3hBaSjYq7tDuX3Pvfp87/Us6AmtNuB6VDwjXK2mrerUy+OKMwRR46+jPpouee1yw==","signatures":[{"sig":"MEUCIQDSsqKOpN8U3amZvwRxWPBo5OFyYbLi/YiWSlNJTHOFWwIgBJ2DmWQs7Vk5+b+AuZh+NVaVFND+/vk8wERJJ0VlhVw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"bdd06521b3653befa1b4c07318cc120a700672b2","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.26_1634002467891_0.4613841771146485","host":"s3://npm-registry-packages"}},"4.0.0-alpha.27":{"name":"@aofl/middleware","version":"4.0.0-alpha.27","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.27","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"c11889b80b1d15adab0351dc8327821a063e6658","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.27.tgz","fileCount":12,"integrity":"sha512-HAIwI14q1nEQOeW4WhErzRGCB64MxY5ys6pK1K69R6LeLnOSkQt7Dl9+J8fxW1No3AQhvlM2cJFzW8abrjmA0A==","signatures":[{"sig":"MEUCIQDCOtu9RoBVDOXDqCFviqfHsfjuUbbbj+X8bvjhqUB4twIgd0eXYtJN3TjyQhrv6ypc7TF6NFsicmQ5CNFR0fKd6Zg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"bc755f21b39459dc3a8b57ab25075a22313bc107","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.27_1634151988529_0.2879589076070246","host":"s3://npm-registry-packages"}},"4.0.0-alpha.28":{"name":"@aofl/middleware","version":"4.0.0-alpha.28","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.28","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"3b4f786a12fae95680749719868cf18ce8cb0a3e","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.28.tgz","fileCount":12,"integrity":"sha512-rmMV/YpLiMsRLCCxUG0Z1XY8C1YL28qlz+PCg2aVY7vTSHZKJpFD2S4RqzKCC47V/bXJWnUaXMblW+D4ybfwKg==","signatures":[{"sig":"MEYCIQC3h+y85eRt9KG6J2XUO1MlONEA+hBhTnIYPYQlc6jPrgIhAOnVC/v5LFBqt+7xlD6OBDTkkBI5eRyp+4ZJfHX5TBtQ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"7dceb248f691c3214f73ba1d048f26b2653bcac1","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.28_1634163499601_0.2171361714539508","host":"s3://npm-registry-packages"}},"4.0.0-alpha.29":{"name":"@aofl/middleware","version":"4.0.0-alpha.29","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.29","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"96538b63c95a7650408f26056564c1fca07c55d7","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.29.tgz","fileCount":12,"integrity":"sha512-KW2TtXdLVVTSVoqRv1fqVklYP26d+SWL8ZcxWPXvVfTJB6ACxartdMSGVApaZCQHMpoZ0WQ4+o9frbNKJ+mzjQ==","signatures":[{"sig":"MEYCIQDpkHh71Uh9fSmQcRmr4JULGXZFNl/xIRCG92jMDAASzgIhALeM27HF3ZOCLabDus5+YNgrkx2g6c+X5L1o3mElQy40","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.11","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.29_1634319351997_0.6000660790508547","host":"s3://npm-registry-packages"}},"4.0.0-alpha.30":{"name":"@aofl/middleware","version":"4.0.0-alpha.30","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.30","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"15bb62fa03bc578b90525b880c6763b4d8db6149","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.30.tgz","fileCount":12,"integrity":"sha512-5l90W5q0ltJaL02oxwoNgRMLxqw/BgQKLMS/kuG1mJn3ZnOv3QXQ7uCcqE55Pdx+teXDk5KpD5xrjvdZEYiWbA==","signatures":[{"sig":"MEUCIGMIiKlGaz63Qd1NVzH1WLm/n6zpOA0MMNdFM/qwMDk7AiEAxwtF5h+ldsvSbEWORVDgdsrGQij49bNjhQvhM9lGKPw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"13ed83fe4429533b22fd669328dd6c8829dffec0","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.30_1634323858739_0.4775006270655071","host":"s3://npm-registry-packages"}},"4.0.0-alpha.31":{"name":"@aofl/middleware","version":"4.0.0-alpha.31","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.31","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"5105dee9939d0fc3f23fa7c82e3f2f87bd639adf","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.31.tgz","fileCount":12,"integrity":"sha512-yQOml5tO2au/pdQw6l6cHGMz0EC9JMMq7WV+bEznRd6P45LMpAtUBtfbnOzYelAkqB/XzFldhWohR+CvPbIrxA==","signatures":[{"sig":"MEUCIQDxCzLtKM3jhjhyTRQnB9N/iBjaLFedR8ZLfdmNZp5sFwIgLZg5mc+NnAX78kX4uEQcgRdsCAkVDanBiwAogQ52RBs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"5bc1713dfbc60e5029713b6ad88a4a9fd46d3413","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.31_1634324120942_0.5451096032792484","host":"s3://npm-registry-packages"}},"4.0.0-alpha.32":{"name":"@aofl/middleware","version":"4.0.0-alpha.32","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.32","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"6f2b3210ddb3de23f4014e367653112d23b1a98b","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.32.tgz","fileCount":12,"integrity":"sha512-dsZSB8S4iLVD0U0VvSW5Ocfp9JHCvdOKV5YEieyPYJIQVZolu4SbqPVBhZ004/M+iqiZRI+neJCjBi4iJUGu7Q==","signatures":[{"sig":"MEQCIHPANjMt3KkIzuCc+3eZuEaTMyq7b29OAsx9TVVa7ucSAiAbdA0GtRHSAQ/Igo36XcsORjjUbckB3rzeFop/hBk7QQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"77786a7e5219aff408e59d051e8380ca1a63021d","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.32_1634326783077_0.25653216693955927","host":"s3://npm-registry-packages"}},"4.0.0-alpha.33":{"name":"@aofl/middleware","version":"4.0.0-alpha.33","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.33","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"587a0072ac82fd4c492ffe3a647a397a23375df4","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.33.tgz","fileCount":12,"integrity":"sha512-EKPDcNYCBnLPZ0thl6J/OkZyGUBFYC2cKLBZhlkXaLVrGxvWB0yRG4DGPZ89/6O1OuW5vsN3unOnU35OihD4QQ==","signatures":[{"sig":"MEUCIFNAV+GcP8KhChdSLkzJN8q3S20LnP4i+kFeMRIWgDzgAiEAw79MTqtU1datDg/hquz9DK7QaMpNlUcSZoLDTvxNrcM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"41b432602965620ce989f21e02748f53f69f7ea5","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.33_1634326983860_0.03790970485931844","host":"s3://npm-registry-packages"}},"4.0.0-alpha.34":{"name":"@aofl/middleware","version":"4.0.0-alpha.34","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.34","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"90b5661db2fd96488d20e0a51e701f44347b96f2","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.34.tgz","fileCount":12,"integrity":"sha512-S1yP5nQ4c4NuqakQxX665qKul7DPbi+1QkxdSxN8sZOvFEKITxKFDc1oSIzpdZE8DXgt+aPQ+h7eLnM7izMqGQ==","signatures":[{"sig":"MEUCIBNdlYREBQ6sEc/GqjM286OYIMxfsVlFufMeZNzDm5i2AiEAnnGgAtiKnFHjRrZ7CUDWnH+Vq79GoGuXeZtlAUEMg2k=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"1b993e65b04444692f40eaecfc3dfbb29d50d98b","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.34_1634327589386_0.79935752743533","host":"s3://npm-registry-packages"}},"4.0.0-alpha.35":{"name":"@aofl/middleware","version":"4.0.0-alpha.35","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.35","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"734156011dbfc12e7543db8a098bd8ba90f602ce","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.35.tgz","fileCount":12,"integrity":"sha512-pFSaAkTC7drlOEgi95xjLokpTLLPNkyfxbG8S/JPvdlNs8KW2AHjnJVxmHPuRlnCexXMEdvvvTxY5UofwH8aJQ==","signatures":[{"sig":"MEQCIF/JinYSj0I0wDJ/xtzGDvknJueizD7+jPNKkQpk8t3dAiAgtLSjTcOJMF26iDE1F6vETkbjiqhMxN0cMa3gG0jqxQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"5a6a7f303fc21acc73b55413f38f534ed4bfb714","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.35_1634328011285_0.7878581529360151","host":"s3://npm-registry-packages"}},"4.0.0-alpha.36":{"name":"@aofl/middleware","version":"4.0.0-alpha.36","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.36","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"d6b685af08f95b1462132894335abb49f84e43a0","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.36.tgz","fileCount":12,"integrity":"sha512-bJ9itogX4eMPwAK3bsf4KjKRnY4HUIXuudI0zLMh5KC/F/2XiyWczdorFjaQb1ji8pc/VOZB7+2RDK9zKuW5HQ==","signatures":[{"sig":"MEQCIFwmW67GIhkiIfRSWyomJ0c95ixBv6EcS99ZSmWa1WFkAiBcZ5d1FkzGPVqsmmM6NVux95x7mI9wj8pD4EKbgpmhgw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"24aeaf86244b6f9f352b26d04fd9976f9430bfe7","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.36_1634328210818_0.6936720885191971","host":"s3://npm-registry-packages"}},"4.0.0-alpha.37":{"name":"@aofl/middleware","version":"4.0.0-alpha.37","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.37","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a1ef2f81b1e59bc737c5d4dc1aaf0196ae01d241","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.37.tgz","fileCount":12,"integrity":"sha512-DFwOjChAj5k3YCVn/dK9p15vueRE2WWI5orIOHtbFxG5/sFoPiZcnta7HUTwdnHwtjUlrHz766v0iNWASotI1g==","signatures":[{"sig":"MEQCIBrS2ponstXAvGy7jWQu996rd3rXrhmQrclBRSjZQD7VAiB8xWBrs1D4O1JGA9PDXpLbCETpN6ZfSpT7ppfr81eaCg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"d5e9c5a7ef77e315b759fb5bee226aa3bd3aaffb","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.37_1634328385147_0.6688366819958824","host":"s3://npm-registry-packages"}},"4.0.0-alpha.38":{"name":"@aofl/middleware","version":"4.0.0-alpha.38","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.38","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"745d2325797c89e06187eb3ce5ec300ccc500baf","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.38.tgz","fileCount":12,"integrity":"sha512-DpXoNTQMoHWKUH0x09JiIK+uF6eFR9j3OJDfZ0hLev4kPa/jPjg5kuBicrctefVPNrFiMOFXqUSR1NcAo80jrw==","signatures":[{"sig":"MEQCIHyH0FJNjMsoPWpzGGUUROkzQ8usaaGB7k2VKuDC8HPiAiBc8x4LrpsaYWBEBcrn9FWp20FcZbWcNxIJz3Q9qlK1Zw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"91457836070b2b300b852a461787c56ec880a85d","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.38_1634330764932_0.04504003415730451","host":"s3://npm-registry-packages"}},"4.0.0-alpha.39":{"name":"@aofl/middleware","version":"4.0.0-alpha.39","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.39","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"e422bb7dbd42f4f76bccd5b546f238d514c4d735","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.39.tgz","fileCount":12,"integrity":"sha512-tnX8cyeYJ5qVuz9LHgaPewgw8YqXVX9NK5A/i1VrYwIVl7Wv5j8sBAwTrTfgcH2IxYvJxuoiCJdp9nQ9yediZQ==","signatures":[{"sig":"MEUCIQCV0Ysy+1m6IKhgdNVunME11MYhg1dH5Bw3O2Ta5N+m+wIgVy4HtBonXbilKTQ5TbiWO+Mv6ENZLRC25fcAoAVm7T8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"f4c22e986eb7eb2e564e469dedb36c65858bf5cc","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.39_1634332201539_0.673975656062004","host":"s3://npm-registry-packages"}},"4.0.0-alpha.40":{"name":"@aofl/middleware","version":"4.0.0-alpha.40","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.40","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"934b7ddda3f770a91253b6ae1bad558dda5f4762","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.40.tgz","fileCount":12,"integrity":"sha512-xJ4a9bgidiGHYmLem2hSavtBZZDrap8owHiZZUeSgiZwJc2P5SKIeuxY54QecZjzdKIChINq2fPlEx7ba5l92w==","signatures":[{"sig":"MEUCIQDNmafKOZoDCNiW8qqxT7E+zRX+CPR0vcMVjP09A/9ljQIgF44w5fUs8gpSFoshaKMDMwyeb7T53JMwrjdu4UbfWHY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"e93b1f585c2cd94383438abd74737a856ca68a77","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.40_1634332796878_0.33281900472122694","host":"s3://npm-registry-packages"}},"4.0.0-alpha.41":{"name":"@aofl/middleware","version":"4.0.0-alpha.41","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.41","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"c3d2b1558871c0efa3c8fc28006c042ebdd91cd9","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.41.tgz","fileCount":12,"integrity":"sha512-78EQ6Jai5GUj424TvAah8qNML2fBM4gyej691eMl6I254JJhfvSO2/LPMn/JR5ApcnDuPL1ECkqo/LCz8bVcFQ==","signatures":[{"sig":"MEYCIQCStLrzDDJNjY47SECO96JgJJ+SlZVW+wQqUT+A6XmteQIhAM43nkUkIWWYHIFtt75weptTLYNj1lnYFOJYQ+3tvlan","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"cbd55bfa3cf5e87bf7b5f27b3d9b6efb34e3ad85","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.41_1634582063004_0.11911457134352577","host":"s3://npm-registry-packages"}},"4.0.0-alpha.42":{"name":"@aofl/middleware","version":"4.0.0-alpha.42","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.42","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"afcb508a951e08d2792f693d1d5a17a1bbf857a6","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.42.tgz","fileCount":12,"integrity":"sha512-XJgK4ftOsVvTBOMuzYMCFYSIOnzgfClPhGoghqI8ViJXQV/QHE6FKHeTIP+uLkbogAT2ccl8UMtmsFtNh7x9kQ==","signatures":[{"sig":"MEUCIDVDwKTEDMQD35xuSkmaFSggaMPf6YGctobsgKaT4laLAiEAm43EaBEoH1wsVzX2CnWvoZsQ9TSTZefBAe0dIOmW0AE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"f64d10ec558694ce4c2d4e8b0562d4167f8e28d5","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.42_1634586027867_0.4850254474514981","host":"s3://npm-registry-packages"}},"4.0.0-alpha.43":{"name":"@aofl/middleware","version":"4.0.0-alpha.43","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.43","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"a9d0a0b634a406d728fe32bda868b2a16595abb2","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.43.tgz","fileCount":12,"integrity":"sha512-O4yRTKX7PBGtePWR7+6IOe4TI+ORzrbqD+iuF611PbT6JgQwW11b98m0XFZGM4lwQ0zT9lQb0XuXxw2ZBnKyBg==","signatures":[{"sig":"MEQCICeIIleL7jgri2QYGXULN0f+8FqooGDCwgWxC0Tgur/FAiB251pCZxDXMC6MV35QOq4WIl0pgiZxRBycVjODNMZRUg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"gitHead":"6763365b38cb5be764e669a3b568be9f1cc4cfed","scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"7.24.2","description":"Simple base middleware class","directories":{},"_nodeVersion":"14.17.6","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.43_1634586284267_0.32371725921498196","host":"s3://npm-registry-packages"}},"4.0.0-alpha.44":{"name":"@aofl/middleware","version":"4.0.0-alpha.44","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.44","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"df674226fb980e867cdf46a16cb7f2efb267ef50","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.44.tgz","fileCount":12,"integrity":"sha512-/Qfk2mZc3PwgRgyTF+SFWIfVcNFD2E9uXp5cCt4Af7KZNsdOakjf7Z76G9/hL1BHzKhZooi0V83v7wp1Ywwobw==","signatures":[{"sig":"MEQCIHiuBneROsWVKZLW7O35ecytncFMwlO1bPRg5dXCEBNIAiBIJEkjTLFCLAAO7YXyunPcqazL7L/9QqQgRKcFIh7Xeg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.11","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.44_1635874769873_0.33174721965835885","host":"s3://npm-registry-packages"}},"4.0.0-alpha.45":{"name":"@aofl/middleware","version":"4.0.0-alpha.45","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@4.0.0-alpha.45","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"9855af8b7e02b2415f0603fb7707c4399f3900a2","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-4.0.0-alpha.45.tgz","fileCount":12,"integrity":"sha512-FIi5MgthZcCtqqDcAIn881HJTne+xGVDJQyXwK1OxfkijiBK/a+V1nXSRrfrCLwij93fKAVObTZMy4P5aVTFvw==","signatures":[{"sig":"MEQCIAQi7N/yYPOYyzFHs0sNsLFUasK2N++xSGtJ5NvftsaOAiABseXjtsygREo6K/R//XqYT0ihK0eNSyZ0tbChuAV21w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15897},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","module":"lib/index.js","readme":"# @aofl/middleware\n\nSimple middleware class.\n\n#\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v4.x/api-docs/modules/_aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err | void]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use('before', fn);\n  }\n\n  after(fn) {\n    this.middleware.use('after', fn);\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware('before', request, Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware('before', request, beforeResponse);\n  }\n}\n```\n","browser":"dist/index.js","exports":{".":{"default":"./lib/index.js"}},"scripts":{"tsc":"cross-env NODE_ENV=production tsc -p tsconfig.json","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production aofl build --config .aofl.cjs","clean":"rm -rf dist lib","build-ci":"npm run clean && npm run tsc && cross-env NODE_ENV=production aofl build --debug --config .aofl.cjs","build:dev":"npm run tsc && cross-env NODE_ENV=development aofl build --config .aofl.cjs","prepublishOnly":"npm run build-ci"},"_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"6.14.11","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"cross-env":"^7.0.3"},"_npmOperationalInternal":{"tmp":"tmp/middleware_4.0.0-alpha.45_1635876949839_0.2221247871129497","host":"s3://npm-registry-packages"}},"3.14.0":{"name":"@aofl/middleware","version":"3.14.0","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.14.0","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"3ef8a46d9efed67a4658fbabc751ce18fbf37c0a","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.14.0.tgz","fileCount":8,"integrity":"sha512-Oe9+0Ye+tJipS8r+FHapmfWN2VGuLLQ/ey40ovD0gBGiPZ68SCtKR5w5R8mWBNEfIOWoOUdw35EQ5w6WHwk0OQ==","signatures":[{"sig":"MEQCIEKUnOXmNNR8CNrBc4Tnz6nQvLqjJ/ACIYBsGrOa18ecAiBcXs5TwBUHvA9534/53Iz0NuFIxn4++TH5GTX+y8gs/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19130,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiM8/eACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrvvQ/7B1L4moJIkf6HxbM0nqF9nowgMYuUNa5waaqtvi7NQe734gk4\r\n9aSGkxwYC5+dB9So6ZKbNmck4wYNNL29hC3bA43n+sgGDZeYTLtcuelWfl7h\r\nLg2OKzel79nqdCLnThFewTeVVy9A8oPMhbidMEwZer6/EEXYeDVPeGu1ut4H\r\nl3i66XfaPGT5m4gTRXaTiLpUKqlaPFuz/E7pCMhjhz4hSU+Tar2aOlRHmj9g\r\nlNqreGlLWybIPQSVva0cUc1BLDG79KOXLdZ8UcdUsty4u7w9MwvuswpKOQXM\r\n6xSbRgh0HVDkxNHKWE7ZiPwrqbckqW4z6n6EIjSbiXnk9tn4O09Ix4vTdiXR\r\nZEvpatu9YvUSdOSBJv47TaY1Ko3544XsrYQ8MblH7ixB4EbLiYKoA5jGMfun\r\nWx9Fkg9sLtlo0ipfSJgq7lRrYbbwrWx3QE/p6X8tRTj+dTfi8wpRLadJV2Wk\r\n7HJnJuddB31Ia2hHDJA9Gwitx69SbCx8HHRT+/ZjR5twXS0hVlMdkn94PdHf\r\nxPtwnNJW74y/l3GkR4A6tD1wyafPmfB9x/9VkpflMM3hHma70EvfIl18Zk+u\r\nXAvxTdXoM/QskFHIrq1/K2ltY8d+TbAEx20ZjwXM9hmThC7Raz8YrLqUvSyx\r\nLQow2FvybJJhhAgSjvYkbsjuZvBx+CyW0hA=\r\n=j8EE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","gitHead":"01a200342c31c108d1ab1039ee4c972f2ee63fa9","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.20.1+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.14.0","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.14.0_1647562718846_0.15927640951887567","host":"s3://npm-registry-packages"}},"3.14.1":{"name":"@aofl/middleware","version":"3.14.1","keywords":["aofljs","@aofl/middleware","middleware"],"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","_id":"@aofl/middleware@3.14.1","maintainers":[{"name":"alexdinari","email":"alexdinari@me.com"},{"name":"ariankhosravi","email":"arian@arin.io"}],"contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"homepage":"https://github.com/AgeOfLearning/aofl#readme","bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"dist":{"shasum":"da11d6099f8f2d1ee92fbb2744aa5c7b78fdd6f3","tarball":"https://registry.npmjs.org/@aofl/middleware/-/middleware-3.14.1.tgz","fileCount":8,"integrity":"sha512-hYY9ZyR/8GgGT8DRY0L/eEA7+2dk5CqMWMTrz+yR5k3UOfBoaeOg9QdTEsfmMpymi0MX/9pFAGzn8lgXBxJszw==","signatures":[{"sig":"MEUCIQCX7YyN1KlrHgHP9ckMRzfn8yuSGOPCB2ar5hpXmMZ6kAIgAwIlkyLoDbA0hFROMoGdqJ8346S46eSm1mpxfnippXU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19130,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiM9bTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoQghAAmm9qdH0aJUQO6wCCvcEwbhbb0nyfpQxSaWk/+DYJWXW97FT9\r\nRF4EVbOhLS16NaPICri4q+Q+iHZpzgip14fxz3m5OoRQC/euwTfEtWxGYowd\r\nrwVQUzn0b+lVj7FWyMi8z9ITyVZVE0tSxkn9bWRmxTqecEy4+616Qny2TrJk\r\nbqRqiY1DokxBG2u9FXdDh2KCp/2X+MMBRYp5vnzIWpzKCat9puxGMPkZZ2jx\r\nVNwbeKRpnjnYpU5pJM5KxB+hC1/QmsDdA/+GCWykCfG/SBFX2gtWIjPGoeel\r\nutQhmQK3LvZEqMXUpTzfBvStA5DfmmVBsYpCXD9f5y2+OHvVzMY8wpMhXcno\r\nMR/UhMQoIP8ZttQMtnNBoBv6mSDt4MWGZg+p8OkC2rd1Cqaik6RivV0/VDYR\r\nb3CcqEcCuzVlg3kWximDikmDPtimVwI02oREUd9RNocjsCAquQhwgE/WLSoT\r\nyFhc+eas1h1xa00xmCy0XWjQynhQPMDxDJVfgS8a8sio/6d7oWznO8iYYoil\r\ntt2OUZXo6XT5G9E405xLeBfBRMFvSZ3B/0ZryAMUilK1iMvuX/UDRSmqy+Kh\r\n8wu//wbInq2vE17M/j+jbPfHhSiK7i8bEaCvSdAK4S4vKBMYc2jGOcs1hWQs\r\n9/jVa6M7Mg7afiyFcN2wD3Sjgvwmk7Ns29k=\r\n=UTL5\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","module":"index.js","browser":"dist/index.js","gitHead":"65857163479f835ec51cc1e23ec01c45eab43008","scripts":{"docs":"npx jsdoc -c .jsdocrc.json .","test":"echo \"Error: no test specified\" && exit 1","build":"cross-env NODE_ENV=production npx aofl build","watch":"npm run build -- -w","build-ci":"cross-env NODE_ENV=production aofl build --debug","build:dev":"cross-env NODE_ENV=development npx aofl build","prepublishOnly":"npm run build-ci && npm run docs"},"typings":"types.d.ts","_npmUser":{"name":"ariankhosravi","email":"arian@arin.io"},"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"_npmVersion":"lerna/3.22.1/node@v12.20.1+x64 (darwin)","description":"Simple base middleware class","directories":{},"_nodeVersion":"12.20.1","_hasShrinkwrap":false,"devDependencies":{"jsdoc":"^3.6.3","@aofl/cli":"^3.14.1","cross-env":"^6.0.3","tsd-jsdoc":"^2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/middleware_3.14.1_1647564499574_0.2506729887722421","host":"s3://npm-registry-packages"}}},"time":{"created":"2018-04-14T02:01:39.751Z","modified":"2025-01-18T00:20:45.097Z","1.0.0-beta.1":"2018-04-14T02:01:39.818Z","1.0.0-beta.20":"2018-07-25T00:12:34.630Z","1.0.0-beta.21":"2018-08-05T07:39:09.830Z","1.0.0-beta.22":"2018-08-10T19:24:18.470Z","1.0.0-beta.23":"2018-08-16T21:36:43.614Z","1.0.0-beta.24":"2018-08-22T22:31:56.605Z","1.0.0-beta.25":"2018-08-23T19:27:52.753Z","1.0.0-beta.26":"2018-08-27T18:20:29.202Z","1.0.0-beta.27":"2018-09-11T00:00:25.440Z","1.0.0-beta.28":"2018-09-28T00:28:02.284Z","1.0.0":"2018-09-29T23:02:15.786Z","1.1.0":"2018-10-17T22:28:01.227Z","1.1.1":"2018-10-29T19:34:49.748Z","1.1.2":"2018-10-29T19:34:58.128Z","1.2.0":"2018-11-06T20:47:19.682Z","1.2.1":"2018-11-18T21:08:21.601Z","1.2.3":"2018-11-21T00:12:47.502Z","1.3.0":"2018-12-06T20:54:54.387Z","1.4.0":"2018-12-28T02:39:36.910Z","1.4.1":"2019-01-07T18:33:11.968Z","2.0.0-alpha.5":"2019-02-26T23:15:18.875Z","2.0.0-alpha.16":"2019-04-25T19:57:25.649Z","2.0.0-alpha.17":"2019-04-26T18:35:49.093Z","2.0.0":"2019-04-30T19:31:43.037Z","2.1.0-alpha.4":"2019-07-23T23:10:24.109Z","2.1.0-alpha.9":"2019-08-18T06:17:36.714Z","3.0.0-0":"2019-09-17T05:21:53.384Z","3.0.0-alpha.0":"2019-09-17T05:23:54.160Z","3.0.0-alpha.5":"2019-09-20T06:32:33.692Z","3.0.0-alpha.11":"2019-09-27T06:49:19.975Z","3.0.0-beta.5":"2019-10-06T10:05:13.318Z","3.0.0-beta.6":"2019-10-08T04:49:43.377Z","3.0.0-beta.8":"2019-10-08T05:48:16.833Z","3.0.0-beta.9":"2019-10-08T06:11:45.634Z","3.0.0-beta.11":"2019-10-08T09:42:53.655Z","3.0.0-beta.12":"2019-10-08T09:53:42.572Z","3.0.0-beta.13":"2019-10-09T04:13:26.679Z","3.0.0-beta.14":"2019-10-09T04:33:09.247Z","3.0.0-beta.15":"2019-10-09T04:50:49.530Z","3.0.0-beta.16":"2019-10-09T05:06:05.589Z","3.0.0-beta.17":"2019-10-09T05:25:04.296Z","3.0.0-beta.22":"2019-10-11T04:40:53.666Z","3.0.0-beta.23":"2019-10-11T05:40:00.709Z","3.0.0-beta.24":"2019-10-11T06:34:50.235Z","3.0.0-beta.25":"2019-10-11T07:34:50.703Z","3.0.0-beta.26":"2019-10-11T07:49:12.962Z","3.0.0-beta.27":"2019-10-11T07:54:04.163Z","3.0.0-beta.28":"2019-10-11T08:01:09.386Z","3.0.0-beta.30":"2019-10-11T22:58:50.096Z","3.0.0-beta.32":"2019-10-14T01:07:00.361Z","3.0.0-beta.35":"2019-10-18T06:59:16.410Z","3.0.0-beta.36":"2019-10-19T10:45:56.851Z","3.0.0-beta.37":"2019-10-24T06:07:58.814Z","3.0.0-beta.38":"2019-10-30T22:52:27.906Z","3.0.0-alpha.12":"2019-11-02T01:11:36.216Z","3.0.0-beta.40":"2019-11-11T22:31:22.492Z","3.0.0-beta.41":"2019-11-12T04:55:41.077Z","3.0.0-beta.42":"2019-11-12T05:53:49.711Z","3.0.0-beta.46":"2019-11-14T21:58:20.182Z","3.0.0-beta.47":"2019-11-15T00:48:51.623Z","3.0.0-beta.48":"2019-11-16T23:36:05.376Z","3.0.0-beta.49":"2019-11-17T03:37:59.326Z","3.0.0":"2019-11-17T07:06:11.840Z","3.1.0":"2019-11-22T03:28:18.853Z","3.2.0":"2019-11-24T07:34:59.925Z","3.2.1":"2019-11-24T08:03:53.614Z","3.2.2-alpha.2":"2020-01-14T20:27:21.092Z","3.2.2-alpha.3":"2020-01-14T21:12:45.142Z","3.3.0":"2020-01-22T23:31:04.245Z","3.5.0-beta.1":"2020-02-22T23:26:22.920Z","3.5.0-beta.2":"2020-02-22T23:52:28.932Z","3.5.0-beta.3":"2020-02-23T00:07:10.492Z","3.5.0-beta.4":"2020-02-23T01:57:13.805Z","3.5.0-beta.5":"2020-02-23T03:10:05.279Z","3.5.0-beta.6":"2020-02-23T03:17:34.789Z","3.5.0-beta.7":"2020-02-23T05:05:19.037Z","3.5.0-beta.8":"2020-02-23T05:08:33.431Z","3.5.0-beta.9":"2020-02-23T05:32:56.933Z","3.5.0-beta.10":"2020-02-23T05:50:16.871Z","3.5.0-beta.11":"2020-02-23T07:37:03.521Z","3.5.0-beta.12":"2020-02-23T08:59:56.053Z","3.5.0-beta.13":"2020-02-23T09:01:58.460Z","3.5.0-beta.14":"2020-02-23T10:00:00.185Z","3.5.0-beta.15":"2020-02-23T11:49:03.547Z","3.5.0-beta.16":"2020-02-23T11:58:25.691Z","3.5.0-beta.17":"2020-02-23T12:14:18.392Z","3.5.0-beta.18":"2020-02-25T03:59:23.156Z","3.5.0-beta.19":"2020-02-25T23:56:58.634Z","3.5.0-beta.20":"2020-03-02T23:22:30.295Z","3.5.0-beta.21":"2020-03-02T23:26:53.718Z","3.5.0-beta.22":"2020-03-02T23:42:07.328Z","3.5.0":"2020-03-03T00:02:53.368Z","3.6.0-alpha.0":"2020-03-08T18:24:49.331Z","3.6.0-alpha.1":"2020-03-08T18:35:02.844Z","3.6.0":"2020-03-08T19:05:35.723Z","3.6.1":"2020-03-10T18:42:40.582Z","3.8.0":"2020-05-12T19:19:16.771Z","3.9.0-alpha.0":"2020-05-12T19:29:39.995Z","3.8.1":"2020-05-12T19:40:29.245Z","3.9.0":"2020-05-15T17:57:50.234Z","3.10.0":"2020-05-15T21:15:15.774Z","3.12.0":"2021-01-20T00:01:30.524Z","3.12.1":"2021-01-20T00:12:24.594Z","4.0.0-alpha.9":"2021-02-03T01:47:53.774Z","4.0.0-alpha.10":"2021-02-03T01:55:59.656Z","4.0.0-alpha.11":"2021-02-03T02:24:06.296Z","3.13.0":"2021-02-25T23:43:22.471Z","3.13.1":"2021-06-15T23:48:38.159Z","4.0.0-alpha.13":"2021-09-23T23:32:02.199Z","4.0.0-alpha.15":"2021-10-06T17:03:51.605Z","4.0.0-alpha.16":"2021-10-06T17:05:06.459Z","4.0.0-alpha.17":"2021-10-06T18:47:28.774Z","4.0.0-alpha.18":"2021-10-06T23:40:31.783Z","4.0.0-alpha.19":"2021-10-06T23:47:27.342Z","4.0.0-alpha.20":"2021-10-06T23:54:54.870Z","4.0.0-alpha.21":"2021-10-08T17:05:58.553Z","4.0.0-alpha.22":"2021-10-11T20:39:22.681Z","4.0.0-alpha.23":"2021-10-11T21:07:20.205Z","4.0.0-alpha.24":"2021-10-11T21:46:51.977Z","4.0.0-alpha.25":"2021-10-12T01:20:38.501Z","4.0.0-alpha.26":"2021-10-12T01:34:28.025Z","4.0.0-alpha.27":"2021-10-13T19:06:28.702Z","4.0.0-alpha.28":"2021-10-13T22:18:19.736Z","4.0.0-alpha.29":"2021-10-15T17:35:52.192Z","4.0.0-alpha.30":"2021-10-15T18:50:58.913Z","4.0.0-alpha.31":"2021-10-15T18:55:21.074Z","4.0.0-alpha.32":"2021-10-15T19:39:43.243Z","4.0.0-alpha.33":"2021-10-15T19:43:04.003Z","4.0.0-alpha.34":"2021-10-15T19:53:09.512Z","4.0.0-alpha.35":"2021-10-15T20:00:11.658Z","4.0.0-alpha.36":"2021-10-15T20:03:30.979Z","4.0.0-alpha.37":"2021-10-15T20:06:25.307Z","4.0.0-alpha.38":"2021-10-15T20:46:05.138Z","4.0.0-alpha.39":"2021-10-15T21:10:01.747Z","4.0.0-alpha.40":"2021-10-15T21:19:57.047Z","4.0.0-alpha.41":"2021-10-18T18:34:23.147Z","4.0.0-alpha.42":"2021-10-18T19:40:28.029Z","4.0.0-alpha.43":"2021-10-18T19:44:44.399Z","4.0.0-alpha.44":"2021-11-02T17:39:30.008Z","4.0.0-alpha.45":"2021-11-02T18:15:50.058Z","3.14.0":"2022-03-18T00:18:38.959Z","3.14.1":"2022-03-18T00:48:19.798Z"},"bugs":{"url":"https://github.com/AgeOfLearning/aofl/issues"},"author":{"name":"Arian Khosravi","email":"arian.khosravi@aofl.com"},"license":"MIT","homepage":"https://github.com/AgeOfLearning/aofl#readme","keywords":["aofljs","@aofl/middleware","middleware"],"repository":{"url":"git+ssh://git@github.com/AgeOfLearning/aofl.git","type":"git"},"description":"Simple base middleware class","contributors":[{"name":"Daniel Belisle","email":"daniel.belisle@aofl.com"},{"name":"Micah Blu","email":"micah.blu@aofl.com"}],"maintainers":[{"email":"alexdinari@me.com","name":"alexdinari"},{"email":"lorenzo.battigelli@aofl.com","name":"lorenzo.battigelli"},{"email":"alex.dinari@aofl.com","name":"alex.dinari"},{"email":"it@aofl.com","name":"ageoflearning"},{"email":"jie.zhang@aofl.com","name":"jiezhangaofl"}],"readme":"# @aofl/middleware\n\nSimple base middleware class.\n\n[Api Documentation](https://ageoflearning.github.io/aofl/v3.x/api-docs/module-@aofl_middleware.html)\n\n## Installation\n```bash\nnpm i -S @aofl/middleware\n```\n\n## Methods\n\n| Name              | Arguments                                       | Description                                                                          |\n|-------------------|-------------------------------------------------|--------------------------------------------------------------------------------------|\n| constructor       | ...[String]                                     | Define any number of middleware hooks. E.g. `new Middleware('before', 'after', ...)` |\n| use               | cb[Function], hook[String]                      | Register a middleware                                                                |\n| iterateMiddleware | request[Object], hook[String], response[Object] | Iterate middleware for a given hook                                                  |\n\n\n## Example\n\n```js\nconst matchRoutes = (request, response, next) => {\n  // match route logic based on request and response\n\n  next(response, [err || null]); // next should be called to process the next middleware function in the queue. Otherwise, the operation stops.\n};\n\nclass Router {\n  constructor() {\n    // other initialization logic\n    this.middleware = new Middleware('before', 'after');\n    this.before(matchRoutes); // register matchRoutes middleware\n    this.after(updateView); // register updateView Middleware\n  }\n\n  before(fn) {\n    this.middleware.use(fn, 'before');\n  }\n\n  after(fn) {\n    this.middleware.use(fn, 'after');\n  }\n\n  async navigate(request) {\n    const beforeResponse = await this.middleware.iterateMiddleware(request, 'before', Object.assign({}, request)); // middleware functions expect request, and optional response\n    await this.middleware.iterateMiddleware(request, 'after', beforeResponse);\n  }\n\n  // ... other Router logic\n}\n```\n","readmeFilename":"README.md"}