{"_id":"oatmilk","_rev":"70-f228943d1050f63bb6f16f25a660f7f6","name":"oatmilk","dist-tags":{"latest":"3.2.1","beta":"3.0.2-beta1"},"versions":{"1.0.0":{"name":"oatmilk","main":"dist/index.js","typings":"dist/types.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDpendencies":{"@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16"},"version":"1.0.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"70ae6cf6f6830b2a5bba3207eb18d1f7f4e1f2b4","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-clMs/m9IT1ubU26Fpmk9+uVmIHniMMFzVLYQMI15t5j2DITQgWIMiBJyNBtaDTUaxvcx24EdHQoyYYo79eoVGg==","shasum":"5f8a7eaca6b096db1bc48c9e4fa0007092894e1d","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.0.0.tgz","fileCount":12,"unpackedSize":177755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxWgjCRA9TVsSAnZWagAAwBkQAIG7Gb+yT5wlTEbTISrr\n3dpPuYzjAs98X91qbaMa9Cn75KQiHw4s43aVirevIC4G2chOuX5D4Ul0mTJG\nGMYzpEOfvCTfSx7rSpB6GI8HeCAoTc5lgY7LQ5ekCC0JivOLxidKdtdozMpx\n42RPQdQUULGgKilYX6Zelx0zPymqD/q/WNp3Q9W6T0ZSN0ketd9g2dI4zryq\nJNCLyLriWwUIxk93FLNQJsH7k/T/8nmspOmN9fd/5JvS6E8iQGJT5xhEgf8D\nZPKLw7Wn/Vexl70s0dCTR+8kMfPFzlsUFfuW+h33nJaubldjf7RE2WthWQqm\ntWMpYXmr7IILljOwy4fU4HapzWsKbzfPDGMQ7Kro8cSwU6x8kyB0ZjbbPIZi\n0+TZRVbGfWjietq0K+675TBo/NBgPNifB7BZeROngiHzfCCs9Uy9ZrcrQnuu\nwqVB9yxsTOokdw1RU3eNf106Gwc/c85O+GFxjFWuhgpXtnY3wnZ9hLVki5Gi\nEpgtp55xga2o6tETyUxwIiLehasCQrHB+XpSyCrFFt8GZw+7ShmWkiYz46/E\nucXKZjyUEbo7yaaYDKdLJYBvab57LupDQ1B7u7kINMPkVOJrxJWiXJ3A11dm\n3sOzO9wtPsc/oD42YEl9ofqgdOQTOz/MjM5O0vNMm1hSFVXAUd839xwSDhOv\nOALM\r\n=SUau\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbMRO5657bQhnVXxzE312anDSSOognJqt0k/erslEvsgIhAJnZmPB75+j8xnIehps+yNeyfumgCZJ4Dib5/Zcy0h5v"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.0.0_1556441122347_0.9699580904782283"},"_hasShrinkwrap":false},"1.1.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.1.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"9234f96d9056e3a2b841ea58e419ed83acb7a9d6","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.1.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-/CwzvtKp9WFZELhDFX7eG9VzllGaJiGuEzxcL0d7HxWPsaWozQ79xbYP8LakSfcmHL7DpnEAWlY8q9sDrQTSnw==","shasum":"a1d7b3276988298e0ea3b9ce6fb7223bba0d6e08","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.1.1.tgz","fileCount":15,"unpackedSize":635284,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxrOBCRA9TVsSAnZWagAAs+sP/1K0C0VL8wcYvE0ZwouA\nTzrgulU2svSTBb5ECkJ3NTdv5pUL0fGVODa9VJppZu3y381TILVl5/2NAbFq\n8xDTCAFhDeDR2a4V6iB9f8osq5q46QvBr8wfizimaS0pBzaECpwM4jEIO1/E\n8VTk0SiRkAGeJakfA3ovHXRE9G/97YM9csuaZQR9d5+FLezkdEVCxpoTxwwf\nbq1Jrd/R8rG4GN6KxEDjJiB4gReKVVavAqEewHJIOXn3jlxtfYQUV6hSubhD\nK/wEiGkcXEahT8lFXwwkNrnhfWnhnKYwBac3vFgAwYh8dYVXU4UxZ1QvqH6Z\nG/cQmRaMAnQDYqFDV4EitrtOeT9klMTqUdg78MrBgM/kIS+SU9QHbbcN3InN\n5525IE2WtTPNCqC6X7IOXJ2S1Se3UkM6vDXAitrNPT9DW+ZGxh+LrVIPmSc0\n3/Eb2D7tzKdD9eWixD/D5VSiP8WVPa9a2r70c18pN/L8K4LBiohihrH299TM\nS41l4CrAbTTW3p+/n34vA0RRBdF6kgmD00G/G3sehrrhuESxagzFP1T97G3e\nFa0QcJYkBL9g1d8/PIjwJdqxcYHxFVuEHOGSMr11w/i44JNmtSgqYMHJZvln\n+wvguFDdrRc6+gCZpcgx8jnc6syEqhxOki457R+Nkai8JU0+dlpJ30qMWFbw\nR+uH\r\n=4ysQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDd3vAI88+44puUK9DTOpGPZwMZgWmEzf41tN8PweXtogIgXHEWLDXBZqI2MWqaSt6CN615hvdhBZECdUK1984V9m8="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.1.1_1556525952963_0.4501109963937939"},"_hasShrinkwrap":false},"1.2.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.2.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"00f8c9facf77407a3fe499dbcdf79dd022c13cb8","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-BkYMvm2A2W9yWwsbcMXX9SmDbPtqcqFU8pwhj9fNbBMrcUKHu/SGjI+YgnzJU4amYY4QhJVoazGRSRHidqqKEw==","shasum":"267342008ecdf05eefb425ef9033ba6a86b11b89","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.2.0.tgz","fileCount":15,"unpackedSize":618921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxrR3CRA9TVsSAnZWagAArvAP/jPjSDZIiHS4ZjDJ0kqX\nNFTgec2AyW8gSHPizZWcR6MqqZIVa7YqlRZf5a2nxfjMts0F0k9dchXNRZ2w\nFeru/31T8GHiUHV1PnhHLDVptnhZoJgd2RmdEtLN6HgwEBsWqUrtAESGl9Mq\nNIHF4wlqQCNyU6fzld+Kp/d+0L1zMwWMOxj6Fno9OVMz3V29qKAeaYel0qC2\nnvu2Q6lfDsrChtmcqvnbRJp0fvxvl0v1a9mp+qUvHPNb/mWD17Oz0Yk3JdH9\nDeYNE/Prag/8lA6HI1nB6SZanGNr2VRQQBt60Uq6T0Z+ir0G3JPO9kmgKRvx\nxJTOuli2l13ZxSAXmDAnw454fHUIMxowecLKl8QsR8VpgwOd5LpLP+6M6KaL\nbJaqxcV0FO7N+2qgvkvMnev64czRUVWNeFrkQV5UKeHYzSjIsHgn2o8VsqsY\nvYpXNwtD5z5Par4U6MfqVxXmHITJ/74PKaTlWvwJEZRkt29lHBr2vv6GzN8y\nVUozZ+BUUTuJjyloUD1Q6lKcGvv3JdlUriEcwY1MPnPnzZFmFxpbQuRW4jHa\n85GJysq6d9FeDhDRMGmUp/J040mF4OUIdfCTAtm5Zlh0xOLwSvB4NzGU/rmc\nFSj5cAnnRLBlAAtwkz7PphGsFfiMpInoWk0tvs0ld+X2mD9nxsaplKj69ge2\nuu4E\r\n=ZdjE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDB5YPplY3AeIKBdVBHVo40RT7uSodI28d3hCBr428GbQIgdG5+QUKBRLBepgoXQgiAO9hmwPOGVCLjFyInAXRHbQM="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.2.0_1556526199017_0.8706052558961372"},"_hasShrinkwrap":false},"1.3.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.3.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"4fd4484e31ae83d6d6831d955c911c2cf817df1f","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.3.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-0mBuK4xEapsKGE0GInv97iQ25AQrjeezUkfXWlQyIMJZa+7cLj15HbO4mkCdDt0s3z9HJ5mdoU206dZXXxXX+Q==","shasum":"71799cf86fc508bb08c8d7976fca433357d4b5a4","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.3.0.tgz","fileCount":15,"unpackedSize":618921,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxr1cCRA9TVsSAnZWagAAq18P/R+m0MuYXugOGA8opz12\n9EUdSb/c8qbB2Lrzd6UQ2wx2LLAMhUF+H7tPhgtiLWbwZoVMIChkwJgN5wQ3\n/OxiTrFQelTZcqgSU5Pwi2qdc/s07BA1KCjpLfPitRSWy/3LhNvkJ7wo45dq\n8cS11IDDOUYeY/KKuSNOX9SJ++N8i+vrumA48HftnkXeGuMy1luY0MRcAD/G\nsXnMYBBqrg0hfyhhlLBWSM/gr1sM+29vzZLI18kde+C6C09Cwfu41IgL7KAd\nbrZAvsTEfaK8JY8Yx9Ygz4Bxsf/XqKL8/VEU6vC3/xQZWvIF4aK6768+i1DZ\nnvAZYvMMHuxjbUWMW4EiDRzYDedYZzPX/o8bkQ4ulfq+eJpwGUwjJ+qYQXN0\nBOD2+f96X6WXNAnv2KW5OMdKSxWZbU+8TmNyIKr6ahBAcW+Q1dMhjAfwKgX1\nf/2iBR1y4sPVsKfHqYZ1/lnh2f4XxQw8pZH1No7cZPUTKWv/0cRyoWSvzmMt\nfeVh5Uky2LBsCxsrhU/NPmy32iX1WWgPL5XPAV+c4i3UgXRUY3JmG3wTB7yE\nG7HUBRi8UrcwlNfCuNpIdwp6wmVetwuvFL+BU8P99yseEcZtD5cwExuXFZ4Z\nN3PKrB3xWSfbUOcVJ0jF4m/A7O7S8fAWqb4RWxQ38hR+5SHvoJISY9P9t/OV\njn+O\r\n=Jc8g\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE35OhyH19WESEtRZ0Cfcc+csjg/Ho26oqlc/6W0C2DIAiEAi+BAg+fa6MhE4Uz1pKTMLAgCUodOUQPZ30Hv5EVoOfk="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.3.0_1556528475647_0.1893976461588549"},"_hasShrinkwrap":false},"1.3.2":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.3.2","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"5d08a5a4400a9f77f9a9ffa5d0acf0f4d072c71a","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.3.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-5Y/tsdR+idyosUJ2fgQuADukiBVHGX7AP2DxmsWe7jCeA5/XHRhh5VSlroqnotU9cSkOzf5l/kncQbonslziMQ==","shasum":"a0f80b8dc7f5dc0206a2d7cbe2bef62fc61a0947","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.3.2.tgz","fileCount":15,"unpackedSize":619302,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxsAFCRA9TVsSAnZWagAABNEQAIendt/diPettT22Uy2u\n5spsB1E2r/1XXtHjRWIlvKctGIZcZEyavLOszykvaprmvrhOlzsrC5fukXUA\n2uW+mnWJifmsfccbtgtWedalh5ngwnm7efZhMYz+3jYmPgeP7luh6dLnRej2\na5Bkr/wvY/BOJRw/9TkC7ioLslTTSXGfTXoZqjE1krTy+EpVfaMn7UES7Mn0\nalE67RoQjVUbOK917iCU4N5TftPQDjawOqwUd4TG4Jja4h4TGT0laA87uWyi\nB5CIFdFi6YNYZqYUezAU3jaaom66m0WbAwaN2AZKP80wIQEorh9Xd2InJRhu\n1zNQ6+xEOhK8iEsi3KlW7ndEj4xfmig6ldUHF5OwVVdK4rrWa3ptehemH4ne\nRYqpSOh4l0dRzFd7eRtJHI57UH30KeINO4rHwg5wSDNnwVTy3bko4Jkj39o0\nkJsmL1cIYdETEhXk3MCrjNI+gzKWQYMlgT5ZaYkAl0beieoiWqXV6qkTY+6s\nIhTcC0ulg/w2leVsUqOc8QB/RV1y0HANBziZ34OO+fqdHSg3RHUTvTjw4bBO\nPPUNxYPCrK68HZuK9aBvvEBetzMPWUREfgEQXb5J6vC0e5hQwEXizwrH3oBS\nT4v18i0FnDIdx3ZO+04VSoQR6bDHYcr3Vs3tKlbE6uWMSPtnSaBvEatSv3fY\nQRr1\r\n=UCnT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCD2pfWpVlMofE6FcaCtPJ65s+rRp73MpKmQ9EVfUh/sAIhAN38ruXmQMJ8oAMAY+2s55lV2Oxv+M6qwsjMjWc/0WJf"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.3.2_1556529156511_0.37366062881595274"},"_hasShrinkwrap":false},"1.4.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.4.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"653f9133cc2f9c158251a5ae0646f2db87b36aac","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.4.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-Lhjj6aaKCSRL3lPiUBlEUqcH461ecu4ahVs8+jMSI1MrN9DEUcF4Go/SP9Z02UDL+0FmFgHlsRCMrgMQoDl1cQ==","shasum":"8df8a3e47981ad310cd9fdcc028298410a2c90bb","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.4.0.tgz","fileCount":15,"unpackedSize":619389,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxsUdCRA9TVsSAnZWagAAAa4QAIZlKbGoVo3+0ghguGx3\nm8EMEtFt0fWDAsdOisVlwPSSE9jad66NBaFeF1cdk6RC7vpRU/F/RlPqV+ch\n2sbg6ZL4TJ8t9x7Fkg+AmmteStpJzpkGIlzpNx0F3+15Cj4oEppoIugHkzR9\nNDnklHO9TmwV3akv6xl30i2l3qcwyWgZD/mk75JiCO3BtvQy3HWVvL8wHpbJ\nSWPhNb21Ct8vEaKzjgXCV3z99uqqQaz0JwHvPhWed/3+uTqPPeVmlMhTCEl9\nG/cR6xRTrnR+bLj2U63RM+Khf+ip4XWF1uUzh/ZxjqrT+dg/FdfOkqPdpdn6\n75lIP3h2dVZGNaB18xKrysgEUybUf6QdZWgL6CIeMVc0OzNIEOmPwwwCK2md\n0sxld5TLBew7ncy1fza2z5Xr1PopJhvOle2PUmgWulFhe1ddEB2xIQbBQ6gV\nnSGbCALFUZlNYvW1KVvSEfUz5umGmrdWFMvYVPe9d6vuMbu/kX6+pyV9lEDD\nRpa2rx8zqOYR7j5gpGO2NHq0tkyUJjPr0jaMaFt2Kes07CUT9/C0jW3oOPNF\nXdGo4t3ucDobr5/m1VjREY/av+JvxpgUjFa+3yj3W46C8jk0Kij94aXKMMr0\n1yslgQv0bny0/H5QmfVzpCKUTEB9X3pp0JpMuVGLKYNfHj1o8OYazMfaPfPB\nxl+a\r\n=hDxL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGnde4yLDZZtfgIM+xhU/jJXaQ3KmL27zvhH8OF1VxTSAiEAjtDmo9Ziqg2s90j8kO/9ylB4dIaJpP90G54SH43Y00I="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.4.0_1556530460412_0.696421892432689"},"_hasShrinkwrap":false},"1.4.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.4.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"ce6b2fe0aaca2e4865cfa7d96355921d81a6ddfe","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.4.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-aLbjtn2OKAQjn0gVvPJgNWE0WoCqVAbrYQnBJ+pa57gYIU5yaF7nsTYTYqcU90iqWtNerf1Vu1JXprW8/QvfaA==","shasum":"e1ba5061ae04b25c4c981561c6efc962f5920395","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.4.1.tgz","fileCount":15,"unpackedSize":619389,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxsaeCRA9TVsSAnZWagAAZNoP/jvH8eZTWEbPIU0rPlhk\nw9GM4EI2KGTRXrggvuBNXAZGQSecNr8pZ5YKAeYFMx6mn1DyCKjl9ey2Gifz\nxqJ3KS29ecfV2AqlQt/qE1/E3Q1b5ZrAYf0/AdiaYf5C4BrD3a2ZiIsnhxxQ\nwHkKoEUE9AKEh+ITZP7e4k0FrgmQXmsSol6+lokV2pyTTde/xxfDtuiU2r5Q\nYJ3LGTFpZIH9Lgf+oKhWJS8S8sRxmxyMr3CCNghi2UN5ibvXc6Qp3K8vOfkj\n0b/x/hW87/VzsSTviO3hoW6mC7Qm6xarFcDaaRK3PV6D09uD20NXNQkZdUEA\nSXlt0HN3mUH07e8zblgy+fp8kaiOl8KAjIPuF+nrJQfSQoP5KlR5GNqLqyLO\nMINNV1vqzWkEmXot3S3O4vtIf6aQxhggh0aKzQVZbXnahql8BdMynWORewzl\nBuqF+7J2tucqup5KvexjpOdtAt8nnbC5Xp+CuN+7nBKklcmgnjVwfHYjN/AK\n6ihwn6N8abwHUsfeQBjf25fCoO+YLTvGaf2raSD4TzGEwnCpZ9vOf0uMEo1U\nqOmBziA/znH8ibcMc8l7sFRaSobwQ0b2c7Sw8NzrDWspqqx2ek/OBGdxZxxC\nyw24ZZT/Mkq/sSf4PHSUjl1FlWCX5iKdZevM7iD1Z9WLMfe+awR7A8XcW+hB\no7rb\r\n=jwos\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCn619TGGrZZfbFGrdHg8OzxB5dIpHPdvPZyVTO6borWAIgEJjdrfpOaLXdMXZll7Gs1id9INuV0U8ICZP2zyec2Fk="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.4.1_1556530845730_0.6353405521897655"},"_hasShrinkwrap":false},"1.5.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.5.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"ef1caa3dffa0ac84ef0c43103c1ee4de1b02c9a5","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.5.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-xuY0H1TZ4uU30OXF+4dWyumz/gBwX+lv5hR5kxYX5N2lx75weuGshGXm5vtnYmo7DO3PfUwQlLcMKJwM/SA1OQ==","shasum":"f39fa854bb6c1ba68d5a326e8b04b31f39c8f79a","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.5.0.tgz","fileCount":15,"unpackedSize":621969,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxsbbCRA9TVsSAnZWagAAsioP/RdNoIDo2dJHbKjXQ937\nWgi4khW6pH3Wk8gLcKJXwHFPxXsxMT5WEteVEUb1QL9zUYLOrkrt3+y1ulrT\nsqxqG/dx5dj8DrY8o/MDEB1LwpNZMGjzNcrbDphCBhTsFC3GOq5znnS02XFo\nBnTgFN2xrC4JoEFJGpnViYbBNTzNBC/dK3gpGIMn1L5TG63aKSLzeyBxJ7bN\ni0auucKmRTeqxH6TndYbyfGmx/A3JwQOdNGLFx3+AH0SDbHeFSMPz/1E+sfm\n7t8OuO9pce+dve3BGmwpBD6VKX7RKfyl1iaxJZ28uPWXAH5yA/NzELE6u+yr\nGt8EpbWFOAG8cgrSTGRWCO6vhTJ8e3h0DFpBYD0lQZCS7i8huSmOISwujegS\nU0JDrTEVsqNh5Lhdi15oSNN6sFdVsD2D01s/j3JF95//OJ1magMAGHWDzJMf\n97HxC+sYx7xDt1Ud/wFE626U8IkXsoCZvRa0WTayLbOpT5nkrnCzICfOsVp2\nMiAGZvnHHcs7OK4jZNy9eB/0yY2QBp/QGxgIPjg6Zckl22DERBQY2fgmHG4+\nSwyvOxT+7UpHeTe41J3PgL8xF8Tiawtset0KKrw5tsfDL6KJuV4nmEEsQVtw\n8cuMC6iiNz+5qPce5+CWtq+UDvBLqHpJnA9sgvb0vYySclMYtBtf4RfUquwO\nFobE\r\n=q9zm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxmQgIOoMpLpmKhAgRvlPUYFVhhSv4IFBbLJCdwrrTmwIgcH5Ro49eZP1oHtDqhKeqofoOqVPicibTdHNi3GJ4cAY="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.5.0_1556530906581_0.4226069065642102"},"_hasShrinkwrap":false},"1.6.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.6.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"64e99f46f68755ad7b2066b514744bd5e090b6c1","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.6.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-gSvrPwjpqMllLAUSd1VYvndW1eRKI2lyRn6SX7i2Ak+uCkdYOXLlz2mVYT/gCdEkmCGwH6pV9t+3eMapkt4cNA==","shasum":"ffc0275bb3fcb63a1b07249789877d8da5033d37","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.6.0.tgz","fileCount":15,"unpackedSize":624769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxurQCRA9TVsSAnZWagAAR3UP/0l5hqB18U4wkWrijht6\nMrGKUe1Zs3munTeudjXV/Gf1Kzl21Dm8itouAptlyPqUeRTs/rm2oxjKKF5D\nUtWWqZ4O2uf7V0vh05k/XLqYzxaQmTalkfMajKQ8JXgmAkUFNJwZdmrZuldm\nQvxxigDbj97pPlUZio5MQAYs96p+wFeCYuUSviVMcPlhxu0ySKGVfWtAsFpU\n+ZgKTrWwiuy17v+pXhdjsHzpUvcv8cgUliGO72i7HXGIWjeSuSU31E8IREQ2\nFQMjf3FXjt5RbgkHYPfv6RyREUvdSE/jG9wDYHc3dxfcChWg3Qw+S6mdHSoK\n37rJbyfeIyimbUlU6YgP9ed9TE3Vrbjn9PK3sFWZqsG7gHalKpNgZJc5KmZ4\nx0bmkkt3O6Hr5xG6Rl/tadWkAhL8fcYgb01+lGQobz3lMJg7m5zgl0+MzIm9\nY5hOOD7KOFWMqMetZfnkuzRKiodwB6jCgcpM8m7IAVTnSnlF8SpRW0oagQSK\nqCt5IU8x4bMDHtZJr9ic/mmLO+U4oglRanR9//JXbtg32E7OgvkIC/yakNA1\nmSNEV2LHjNnUy1uyHizmTwMZhVJ0VTbAlXLtlNGuIENuR0Rwk/BHsrEgbQxh\n/jMwQXY3ttRNZUXAbIQr3KI6W82Z4VhKyjYzvvsDmfJifHNEyyq1nC+ITWjx\noXhL\r\n=S3T5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHvKYuBffNA++xErLrlSvgDVlVAuOthnyVx4BZjXfAyAIgIug5BWKVZRp63UoXXxHuECHSYsUZ/NZC0XldTbK3mvA="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.6.0_1556540111766_0.07924562270874969"},"_hasShrinkwrap":false},"1.6.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.6.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"b733dd2e79a3cadc68fd57c333c77ca28c43180b","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.6.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-Em23uziBlKd3W33BrDtCKVbadqlTYH6rF8nEJE0THJnOL2reA3G54u5fXzLHxXlfys4QcZrR1oejYhsruPS2dg==","shasum":"dc5414477aa98f9e4880aeebc01b373bb4e15053","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.6.1.tgz","fileCount":15,"unpackedSize":624767,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxuu5CRA9TVsSAnZWagAAhO4P/Aw0kkBruEcV0r92kBtt\nCUJt/MqS23OrJ+zedIIoKbg8YlGTSXMfvITu5vkQ+UwY7EYBgU4wiWB08aZS\nfLzRHGquEHyPtEvidN+pTrA+nrTaGy/oKwx0BoQ9893s1P1xJuvTOOfH3Hea\nmFj3/o3EJ1wVapaKvJHgrzPoFvSIEO46ntScrSnkIscaRYOHkcg3WeHkVqZm\n/fJ5x4mer7uZw4pYE3F7+L3mwFTX/9VurkMR9lJ0PWncTPSwuzSQJTF0hf8l\ns6f/mOXjYwOROaNfSRve6C3YMRAsAN6bl9QMeSkjZbTz6nIKpJCBr5vqslOM\nin/fK7Ltl3LMouQTh045lS8QpH3raXPEr8wbVsSCFrZ1ze5NxhwUSKTQwEE0\n4dZXJ8dv7plzV271GlzOW214TNexrla95RbJC/AAsSzm8TnWu4ozGfvyX1V8\n2PP4zpmaobm14EGivxe4I/7LXbSol7wb6Maf2XnZuGMvmuwrVaqBTmu4O1xo\nvWHuxTTeOJzFCY9knaJI0DJ2vZc6bWoIohj3A4lo8fj8lVqYaetvIEkovRl9\nh97nEc7GkndYLaSifQP6J9leRwB5AoBEc0VIx0R/ziCXYjrCeVz6bVLtJ1Il\nG9e8DwcWcr3GkwVjhjRjugIBBcQQG8YqoXnPTubFQeJRphuv+wriJtbLaszG\nHbDM\r\n=Y5xC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHHh4w/X8TrOP/njCRSOzF8KMiseZTf1AYWjyjG5FenvAiAE7AbXMDbkkpbK1XYnF1Ab+PWqZWNQ0YPtcIva4IFIYw=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.6.1_1556540345132_0.2694707348430345"},"_hasShrinkwrap":false},"1.7.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.7.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"b75b908c59e4b4afaf3dc743b9cf6d6e8ffd83ff","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.7.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-hdFb45rwD0JEgjsTyNJAv1iPv+RxMp0MK21it30kYf4k1JB0LYrj2Lva+3KGRfhC4ScKQ2Ef4Uw7NiOhrNJvgg==","shasum":"a8f65fcba75132e0237d5054b04a28e513cef018","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.7.0.tgz","fileCount":15,"unpackedSize":625161,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxvEUCRA9TVsSAnZWagAAw2oQAJSLWR6f/wW0KqVuUMy1\nSutHpBvLcr5kg6njmR8oXWb1vPDflbbZYhDrLMDSuYTiMcvZFFK1+Gv2KAOu\njELKowpVrsvdHb1YSzoASzWLg58PvOJlRTmWvBiM0tlQL7wMFBRTVy2Udgom\nGCXmwIc2LjJHmx6yRpNqFp7mVOsZOa+BAr73JrPynnxwy5a2DPGC0z+KoDnL\nGwJ3a7rZ7SekfKueCe/LJGHMXEDt5JzdRmTpZQuMuxKUhEaRsdXc4Jwlpbpm\nsqAh1MFnS2en833qS7L4cXIIUNjXauymNYI+5YxzUheE2/9GAznDcWa8UhLj\noQ/D2DOhXY3ceg87V2h3R7+XZwx3ZBwqy8+JVTC+Wwfiw3ZHpAz1KuUZY28m\nGUWquD0qd/6MgQA6VbcNuu3ljEOcPuOQrmWFkNM+ug3LW7UfY2eYq1NHZ5Pi\nv1uv9m/vshM1bocigUPplH47JWoXUmusEATEd/3nZteJ67BUDRmU2f5GbFk4\nL17+M0e9/HSBWWqX/UzEOst703+NNTmlgVZz/rfN/GFP0v2Ubvk9OJ0XG1O5\nRa6D2500j10oVVsy0XQYS5iJPeOMkFgQ1/UryQXMDNnvxlSWRYUPePv8d5bn\nWdyS9M4Q+p/lfPVWy/GzaRHwzEace5MYh3YSapvbgR1gJaiqJMVwx4TlTxla\nPdSm\r\n=Qt9O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDySHUZYCkuZxQRzJpyCYkRYkjD6O1gOKir2+T1zfxQmwIhAIsBqaTM9nhEDCWBH2Pr9ywTMaRkSIm56U1kjfNjHChN"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.7.0_1556541716074_0.5345609295531599"},"_hasShrinkwrap":false},"1.7.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.7.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"f98550e808ba9fc89eebf2b84cdbaa8842f29e12","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.7.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-AeHtCwITPVnEbasGLQZTQe+O3Bb2Nxvsg3yfq40tqiTEUD4bgH4wjeqsH7824Dm+uHjPklVdK99R2VteonpwxQ==","shasum":"e3eb6b51d1fd02d21ce7ce50aab9ddc7f6d4bdd0","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.7.1.tgz","fileCount":15,"unpackedSize":625208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxvINCRA9TVsSAnZWagAACR8P/jOASoJkgKgK7CkU+RUE\nuAFqR/AUjCifdcKO3Po47+YguUsS5C6V3Y3qGfUXG4wYM08toRXA4lH9rej4\n3Ews3CMjNlvliRYP2aKXjEvzx1KPo0EDOu6/qLoZO3Cl6Dnftvkq3wSQUco6\nKhmprACMYERTlwZeBO3waNgD6bGpNZpjJ71RoQpqG9Suu5qksi3JpxBU3hpL\n6TbZnRUswuxz+O27uWJPqCqCW8Yy6Mt42rD8+7+A219iqhYxrxRiWYHwRzVc\nlMuejpMTOTAJIWWLAokuMYAqEP2LVItC8nVRbWMx9mRGAPuFJvtAp4KU78w6\ndSvpnzvos3UzYq2zxD48+wk4A/hfhsJO3SdjzuGmH56RXfbQzTXkPiaZrUq0\nwR+JOJ7dKjKaxQaKkJBDtWXQtm1AjYZ3Zr4IgU48fn9kBQXGMMIVyCzpqdjV\nbREzG12XoH5zv6kYjBQM3l6LSUM2XzvMSrXZj5v4qNH5NtkhMXosnV/CfJLf\nYwxD40LcTZWDbK2z2ZagteVCotPef7vgHCPKk/8pRGGJYtL1TDz2l1cBRALk\nStMvSDfByfWJEmSD+gm7GKH+n7/CXtdysvURIzmjLMyJBkQGcKGDt5x99/M7\nEDeBPyS66pvMLeWToc7620ETFVhCQBT8OY75j7oBA60HvPb+hJUgJLMX6wKc\nOw/r\r\n=UWdW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE0rZWmUJYvHNI6ZFF1koDH/bvZkyqB6fMZsPNAgYDo3AiEAsqXl74qznFLFf6VFzbmN9Uj+SBSqDkkKuQuksmseNdI="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.7.1_1556541965259_0.5142021909393109"},"_hasShrinkwrap":false},"1.8.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.8.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"2ad4089a1cdb61e2da9a4a1e8a874a01918a676d","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.8.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-Ij5t8lOepPPh0HpEzmb0lOGPx4/aEifbP65dq6gqj875WESHUKz7DE5qchRVT1ueb3QTLUoUTYEgNh98XlcziQ==","shasum":"8c69b4e5dbc63e28611409d300b4d81d9f465a0c","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.8.0.tgz","fileCount":15,"unpackedSize":625605,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxvbPCRA9TVsSAnZWagAACm0P/jBCvVXxlHpvwpxSv1zs\nD3W9dQq5wt9rjaE235lP9FIDmjEGcC66ECReZ62Kv9Rn1ej1s9q68X+aZO0Z\nDMSJvB26Px5Kf+byJEkgDXm8bikIDLCCK6mB9x6CyW4xbkkLWhY+pBPPH1mo\nuSplLEm3cb0W9zW5rxh5qw5tvRStUlRaFkqqYAfSrmqV0INohO5o7sqFpx/Y\nhOtX5lcZkBhZp/9N03sgdqtNw/Vv6Vn4/jAxgy5GbHni+7F4Qj4RiEQm3Di+\n5BRPF59NnaHCD5ZdCI8N3+KLXENHth3LpXOSazPr0AEbqUnXCpzEWMP6DMu0\nPs2w6eq7mG3Rz+xkrpYhhaSn2N7vHiUmsNlXAszJhMemC5rjl6BUayScY2nn\n1A8YQDlxtogXkc7cbqZnnoHCjIlgsSYoPV6pQ1FC4/QhTA+PVHmiDuGaecog\nIkU0GgPzjpcJwFwF8DvPxnP0RHXgtbQnxNl//j49erKKH2OoiCtb7MLKSwSa\nn30c2KfZFXOZc3h3MLkrDG8jCZ4pJzIDVZPSDKZnOgdxXGesQkdp9JUIMyDe\np+RVJbfL9nxwIZu+8+CYqWknsZzxZEyej4NkRY0TwaIvewbpSNEJ0dFmp8Sd\nv0Dz/37lICX38b0mOyOJPf+JWr7CvJVRcq1N3f2lUmOPDaGiAu5REh+4yVFV\nk9Hr\r\n=Wxhs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAQem4rRJZTN/648fpIt/Owyv8UwjfubOWpKcIX2oY2hAiEAjya8pHj5nmuY9LPNKP18ZQNK5cY+V6uQNz+4rhKs1Hs="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.8.0_1556543183089_0.0999521237419787"},"_hasShrinkwrap":false},"1.8.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.8.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"3bb63b4d3ab929b17f2e10d9c7afa419cb046329","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.8.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-6WauQeOMiPMAtik3dPpyhCsDWJYBL7EYKcL6G6jVP/+fCsp12Eej8VQi0XLCm8+Wsoqr5BriF2zpSp52yzv+Qw==","shasum":"87bcf0ea2693fa4d766ddc614593f7d93fc53327","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.8.1.tgz","fileCount":15,"unpackedSize":625827,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxvc+CRA9TVsSAnZWagAAMdsP/06sqKNrZLBDSdUNF57Z\nc34mlnBJU42FUlJTBC1YpFyxmOB8A32UayCMQ6b1wA4LEecQqENa15Mie0ac\n2vQYCaoxbmA5IOMzGOI/9kFad9CP5zVO6HZcfX7UIR7tIZmgnL1pKpSgIgaK\nnMxSkKLk3GYg8QAqecQ0tUMViMZTMxwOZY7OOUf5QIAMaxq+pJ0H+K0qIBcE\nEgaoZjaRStV884JWek/SVb4+PlAH1oOrZD05wL8KpS4nshC4/UUAxXt7QjTt\ndEdUNNeM6rIvSQbtAGeiZhbU5y0uABcJ9xYNI1/7ha/BkVqzXz3MZ5xrjVuy\nZy0XQuvowZEsRA0L1iHqCq9t70qttIVuO97D+0+5U58TWS9Afx3qvEBwCO3N\nJ/vPcpR7JOOXI8TWN48pD7lDT8taW+nZTiMmlHE8DVBPkE8zsd3a3Z+1Ovu3\nB9dBKyFS5b9o15PqPhmAQnTPRKvIT1ZoxDloj2y7JIeuHrbJzNyW1MCHp/Zq\ns0mcFxrfaX49t8uOodRNSkn8CQ5siGv+U2Ia8rDS7dGjHRXikcCe+xYOi2vq\n5Dd0RfSvjh1k95TpPiEOdXv7qR1m0i/NFmQFuY/seSXy0D5SXCRwz/l+MhQo\nfEn2MAfoasGHcUmCO6DRYW83+/vJyWX3QPROwAmx16eEwmQ+WiiNb3Nuhem+\ntoQG\r\n=1KYV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBPNUx0UKPyKjQB8jTdHJfyEVqa/JxVwUbosQGCuIfl9AiAcNsAYgczUwwtvPT4/AFLamAW4ook2qf47AWQxB+1CGA=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.8.1_1556543293782_0.6880388304137461"},"_hasShrinkwrap":false},"1.8.2":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.8.2","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"2e9d03473149dc4762f98f530ae049c8ae989750","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.8.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-7uRJZz9p4GpbzWxdexYlbklqprSflj9HyTn7LuFoGL+2Al+gNzjoMBvPSFlR+CPSLbxkGihkGmznTX79G0arnw==","shasum":"b25ea3e48069834b3fd3d51d2e4f8d993baba947","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.8.2.tgz","fileCount":15,"unpackedSize":626432,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxvgTCRA9TVsSAnZWagAA7mwP/i3MGc09PS2XDV6j8PGu\nxWH+w0JvA4AsrQfybYtT+zpr+STjJR35FKEwh9Oam/CETq2qkrjdmy3prZfx\nKL8LMuM1FaxYv3X3wZWP9sNp6zFs86QWon6rEgfVzkYLaqaaXfZcMcl89/ef\nmGIYEhF5tkk+M+utC79Nr/JfcLHVvPiVndWCfIiQssEb0F5Nq3U32/ysgz/j\nBbI2RKdZwMKDI9tlbQLtYTyocSebbZTgPk761cGfsW2J14wjAx13x4d1DfwV\nUruKHFBbcc2oOMlc4VWhvKVV38G1krAPiDdfc9yIiPrv3efEUGZw5S+LbFO7\n0P2v2yi1G8Eo4tI4cuTb6SdD5Id5bxpXxPbThE1tVsKQq3W2v5RdCwJXZyu3\nIBKPq64kPm14ORzEDOl5sUY8QkKfUaxjvcYShTdH6RGol77kzpMx9fYleYeW\nlO2Iu8s6uqdxudrPeMkj0kyd2IBMTCIRo2CcXi7n/DbXXB4UWTqaoVlAw3yp\nluhSG647hfab+RAcw0YRJZzUcg9x4Z2XN2yNQiB2Hkuc/WZEF6FxVilZI8EL\ntSd2aUwrCJf1vmBx+u5Nh5EPX7pkF1qAwC7wM0q0+qL798zp3401CoFVNCh4\n2FqmgpbpEhqFwgXrmXy3UolIOT4fX6pmTOvGDLt6PoWQA/NBj2RN/roOuVrF\nJc9j\r\n=RnDu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPFzHgtE3UkW+DEvaI39/0M0CQ9dCgcjbX5hJraqb/bgIhAMZjp0JTuf6vuI5NzOapQo6EZnLi/P8l3eSLidrNCfKv"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.8.2_1556543507111_0.5719459129791296"},"_hasShrinkwrap":false},"1.8.3":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.8.3","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"a7fe645bddaee4d756445ba3cef46b42d9045839","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.8.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-U/+XNjSflbkOhIDHZPbQ6KBnIxc6po6ZbpwXfXznbJc/ueBlMw5KXWOWRpz++i5P+xKhMS0yL7JjgajFOdFc3w==","shasum":"52892243e91f6d4732810cd3388d7ce14819529d","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.8.3.tgz","fileCount":15,"unpackedSize":626539,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyC2jCRA9TVsSAnZWagAAvaoP/2exQg3gT/LxQC6ZMZKD\nUcWqAA32tKbqzqITq0nTbIhdjO1yofbE+9Gc2F+9PNHq2Ly+VQDbWaxdEsgP\nLNl9H50/Z66udH5FBPlbPxlBqFjbOgxyJxSjUjSPTfawjFlHHCUodE5hkM2s\nVJZTZmllozp32dcs6SKJnPa/6q3Bx5uSMBRdgGaPBcOi7xp66SMWB6glYrVg\nWEeU6rXDLqwXifQ9uui8NtCIVvLvJ4klj59cXalMTAEn/frYUDRXSrALwaWW\nVJoNBYnqMoUR91v/ux/qoex7D7gncgbKwGCNzCK7nLoW4XLFGsy3YAOVFx3n\n+TPcYgkaBDUcxzClsfeRvzjUNroCAmxrQw5+6mS3KY1XRtF4LcpYUcL4L0Wz\nqmxZ6iE07G3dwt/zMh5Zs5XQTlsbNhyMslNxAOZGDCNCrIrso9MnHM2VzzxH\n0R5XDmfDomduLT4Xdy7VvGCWs6HfQ/PYk/nJBglCcU7p//NO5EK6P+/sAZjr\nQpx1kHZxm1UOcxcS5vseb2ERgyEtYe7OYcfxGSi7Jq7GNBOCHWZ5VX8VLvxU\n00oupmwXidmU0PZ8cEa8LDVcmifi9OGXRIr4N88qqQmFl5hmVeN/hpt0HV5L\n4ghvUVcfk9ngWG7goDIa8Olxc5rAOeLgEqqvKDaZwRNyyZZYEGu7vxfMSU0s\nbsDR\r\n=Zvtn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/TIVodVP7Ungm7SuDRmO5BVLJB7zqoXXoQROGzpzp0QIhAN2EjNSRHCdRyn0XAnMsYm/ghzgHHnD5Dw1SLhR2Woxj"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.8.3_1556622754751_0.35129987485490344"},"_hasShrinkwrap":false},"1.8.4":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.8.4","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"2932373fd1cae9b45d3e215e7bd803ed479e0574","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.8.4","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-3l0ZeJ2qrJHJyLX0/rC/WvhZUr6CX/OgepFEooi6vTeP+fIINFn/TQm/6EjAXYVZeoypsOfpE0rIUp7z8jfVOQ==","shasum":"cd4f246ba88dca1c41132ede03706fafb3a0f324","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.8.4.tgz","fileCount":15,"unpackedSize":627849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyYvmCRA9TVsSAnZWagAAfCcP/RrTSdye/gmfEzztfAKZ\ndTijKOHgzRV1G+gQesI9jXAA+e4+nmzwC7QczmGCaktWdcFU8rq9kwCFWeiA\nalme/dU2CEJk6LnanomoCJmBaYa1ihKFQ5Lmy+xX4Z2u7ANt2JTnQChAU9xc\n/xzDcRVD0cVqF8ko2qBTEzYdcp6wJgeqUcP30Xc2+CBnzsYHJYJcUhSPcOMd\nC1paOWKpkwPHUmTABRcCaltvYzZUPYzPEg0PMtq4gM4QGBTK3FfE/iawUHcK\ni/hetodvNqqENpHmWtVwsCMzILjgDQJeyYm1GpL+QEPpt0GvMM38oJssxwU0\nGWSYf/BCuu6POBBtzTzY7lBxXbdccOt4s/1SH7u3l8hvKKSBzm3bLkkQlkeF\nppLRA1+0g3Qz0IfPWkXA8orktVZVOiFdA1IOYScAJNvHfffZ+eVzVvtuMqdp\nWWnbFrh2NFgykW/+3+I9BDztQ9NbetKciFBq/K/6cZmVLAb1kbAT1Q9fk9Sq\nHM9fWvIeUhlEu+AizTo3KowvdLPG6Z3rx9aCiXd0dA/N7pKLUeMxuxOtFW79\nzjk88hGsFPU6akPk4sNmwDvzvOilk77pf+qidyuGnpGUmPv8YC08JBo77pSt\nJkI+DDmaP+Qc7b/Sdi2/C1/XcUtLue1AvivMBldtGOwH3RebweQ6KcghTxgt\nczXc\r\n=YxXv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC9/Kk4chQggy2qF3pRmtibUAb1hPoSzjuRkjhv3rEmpAiAwZ71mxzjx5aRbkbtfvmt6+CeVD+ozxAZdj5TYsgp4Lw=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.8.4_1556712421813_0.31722596625011157"},"_hasShrinkwrap":false},"1.9.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.9.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"80a607d4ced34ff9cd9a07c62ab1ed219a381a58","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.9.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-nGA6Brwalb8I+w1a1Zt2EdHOjNGPuufEwbYnNzPnRuJzXtTgkO7exAbqeFeyEo3dUFjOIIp7z6gzz69fvERaKw==","shasum":"cfb3d7091d090943c876da33d386d143d7fa5b9e","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.9.0.tgz","fileCount":15,"unpackedSize":629658,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyZT2CRA9TVsSAnZWagAAo7QP/2Jd2DOLdxse91AStk7B\nJek6RAfIRnKyx9uCgftyOuEHMy7QvPXyvZCsjsJDrLlsHa8r1cZmvaiFkhAD\nUP2u9knD1zK/n6vJyCZCy6btFxfU2JfJY7dQx+MgYKSpvRdMIwMgPKlIwKJU\nKjtAts3SpyQN39KxsvizHh2vUKD+5qqPDELVPgD6DndbFO1bB6hfviy/JgtN\nPmuJSASSET5bx2biNKez2JaUUQjeoecy6ELbbLp8HRkTpoWLPQn3OX5FiPwp\nXkTthSWvIdTWibpUinG+HrVCEtsjeBAinjbV285pNwWrmknJH8vKZvnkM+hK\ndXmZ/xtFLrdVX0SoedjVDMM4IRy7yOdKQwdW+qndavIqfPrPKisctxZ6i+VY\nYk7s9mz+drRmCy1tdFiODZAvuEgIUK8V+dWgTJs+wP7KpwGOZI02HvK9h50F\nElRrLrWAfTk63l+nl9CDLiOFSj1CiQs2jsAZD3Ab5XRrWiB09sAgVituTkn9\nrviRYyYVnctEBdOvi9sEExp+ANxEUPhYwsp+rKiycTLhLpLPDWkzsUqnEYt3\nX7k9sGl/GG23i5yJ6dugCLR9mYUL1SJYddbcSnaBPH+e9hXOfxDoKgU+WXpv\nXGT8BrxD6gPfuik2P1GxTIWodJuOO0fPXgfVfQYrGnI8KjiLeuy8vAQlRDcY\nzLp5\r\n=rYf4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAaV1FqXngAz1a5gtjatCNK7ZWSAmf/DWaTPeN2GUD7MAiAbmUVSTpHGAsR75Le2XApMxkeQI3OaCZ2Mk5YLVB5Sdg=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.9.0_1556714741272_0.7072022732323322"},"_hasShrinkwrap":false},"1.10.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.10.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"63859fefdeabd27e36eb3113d09e39b3c3757793","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.10.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-WYMYdYIDwOr0Qz8B8pO1Vi7X6GwqakQkNuxqdi8k+ijP1XPOhySI49BkSen2nvSFxYlSq9ZZ7w4Gm+Bt4FLR5Q==","shasum":"646407a1a6af83dd96e1ed6c72490def188a113b","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.10.0.tgz","fileCount":15,"unpackedSize":629729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyZXrCRA9TVsSAnZWagAAw7gP/3vl/Y3swJecadfzykey\nbHmAPXkea2BQ8WUYlYvFhTZcYZ+budt8V1pxKuDlyQu+lZh1T8RSp6lK7eDs\nzTnc5UaBYSCIbQXk5MgNluxBQH+vp0Kq4uGJa045AXDpuckqDmJ0voIdrbwK\nXlWShi0AcMV/jERCK7Kd7E40XZGbyM9X8XrfTGc6ABzskgec41vmiIFwbmn+\n3BG4yRKmOEqykjpV+gXWAr6w6NSBZUd4wDRIcs8msmPSaRS2Szvngk5cvgrU\n0nX8kjb2raa4CpxFhTShe45Yed1DiJyqAKy68/VQKKivHGxOJ1v0Et2q+2W6\nC9nee165wSpOcBO7k7HLBT2B898O11sHYQ0rqs+tq5CIJuxy7PB6nVPGppXG\nFTRMzne3t9TUyoBI6RtKidGwtmsYXNRNyLIQTuOPHthRwklIn4z/fyu2kvUN\nPRbmRFCwxesyeeg/o1rGGYkXfXaK6fyAYnC+x84tHk1PeZYgF3lnYJqUGK6g\nSKZqe/veUth01gBwR2Om2LRtnokYkNCsuOCUESTNsVynPgGolp5LK5IIE9oO\npPL1jYOv8alGAZhXjgvHr5t4+N/lC9DLVpNjgPbgFS4I9CQQtIE+F7/xTxT2\nmkQoB6MaD2YMCiBDnxHDwAhlA3j1m7sSCqPFDEbF/Yhc69BXy5f/GJe1mrot\nWSP8\r\n=uTZJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE2qlwKrfvpRR5uA17HfF29rCelSxor1cESqCeKQlUQ1AiAJdLxra7WiQIJbZ8MXCz8yhcVqSPKgVHC+QDRaBfg6Gg=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.10.0_1556714987025_0.3361895248992828"},"_hasShrinkwrap":false},"1.11.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"build:all":"yarn build; git add .; npm version minor; git commit; npm publish","build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.11.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"bb5d85e26c3819f53b51e0b336bef981eb627a7f","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.11.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-jFSlccKBed4Si5RHqvGfFCT6trEzmgRv0MRqHz5Kk+0vp+6+uD1OTe0UfYS7Y84pYVkz1H2bjvWMNjbKBfKMhA==","shasum":"9e1053d1662ab51afd24e32521a0abe61522c628","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.11.0.tgz","fileCount":15,"unpackedSize":629881,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyZccCRA9TVsSAnZWagAAq9oP/0aIzOF5QfZrcEXmVgM7\nk5A5soQUUNu93dSinHU9apMZs1rsnF67SP7poB2VVgAEfU2jeIn8jGUsaqyN\nsZL4wYgHCSc+2NiNBuTqSeOFiBKrssRm1GhSMD2gKpaeMUpzA+CW/RBHIQ+H\nomBbnPV4NzmwnVc18t7wQSFhgbbj0GsCiaBo8WOz+RyOS1W5TSzCzNh9yLlb\nrLyansG7J0/tDzQXZfAfCMs+4bI60jOoU/xPkkis4n3iZPYm8IrXE4B+jVBR\n5lDtTgGOfiz0P575uMIBPdGJhxlkof15/6SRhcP8z1OTTOgu2M2E5fz9QnSF\ntqWU5BoUA0R9/I/QobNeZolffZcPvP18hl4mBcagTGqRoW3I8ULvy/uV/vr5\nTAYQw19LL7GQDF97YOIdhnQ/MdcS3ksw1Oy4eEZnx8HaIhAKav5c+c4ul0Il\n/LhPrUDLhUXII6t0dW2it/EZQqysK3dZ0FbqJEspbpmYU0rEixR6MmdVfO7I\n9oFOf1TAEkgwfOZrKojKEYGmhuaRG1iY4SFNgoQN9txkXaZzzEN78SooT5fO\nGTqeUUcXe8zMpVYtZBKc+sFsNMXoX9SiJueEzXzy7loveNMzqJHBBxpPEmiz\n1twWOmpeP+hBa55HFx/JKHhk9AyuaIi8hLnSfv72xDrNL5yXP8ApvEqcI3Sj\n18bu\r\n=1ePz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaqjZLktbtxdYhsD5gp70Y+n7O8M6WJGYuS+B/MhMESgIgTeMIiy1RPaToOuOfklXVyqQXjH/Xt4guWZ03fnuu9Zo="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.11.0_1556715291308_0.8736760454215091"},"_hasShrinkwrap":false},"1.12.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"deploy":"git add . && git commit && yarn build && npm version minor && npm publish","build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.12.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"465631e838a9afc159e638e131fd1edbb603b747","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.12.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-7JEXTz+soHOKj8vmNb+lgLYM+KN4cswOy5qjjgSPDwCIjBkWwhgqWfavfBX4+dQM/cjIGRKQcmTZvyMT7wDZvg==","shasum":"6986dd26e3a2125527de014c70dda2db118208c7","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.12.0.tgz","fileCount":15,"unpackedSize":631122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyZrLCRA9TVsSAnZWagAA2mIP/1v/Rez/YL05rEIMeaiD\nxR0DV7c3dFIUp/brHvR62qOqrlhBwxCi1VhCzykwqnMhtZVqtzUSHg4bVH27\n7Py43EmfMTXid6N4Aj9gPSDc8CzSGlNpmnMcs0+2CYupWNU4Aj4RIJy69yLK\n4tPnju6SvmhTBUlOv5dOEe7EMsx9ES+qv4SWipgCPBY/ikWKYeOhm+OzDOoO\nPMOUmaFHUqOVuAGb/MejK//9gUasZyNiWF4sk8oyY2uY3WVWBe/i1Y++/Q3M\ny98Jzet/j6ccaVUzbdCNPxuoH+ShfbTyNFri063U7GkfgDnI4Du51FdL6oYx\nAEI6tpK1IH/ZaKAZB3zuGkxctPC6TG7h2fAe1pzxZHuSSCiDBTquUUnKVRCK\nd4XAyGhEUI7T6QDkILfNr5dW5EMYalGGyRY+IbjUWQRkRr8oXHgBvTC6lQVl\nO67RbzLcoLAjbkBggf81AhyBKjBztv2KBE0XEw//skGBpMeUTEe3tF6lAibd\nD/tEwhDKU7FIGqfsJ9KKx110/qFKihjZhCEWnXonT5S2YwgVEiZ28jSKEB7J\nnawWkgd6v7JzRZQtR20qry/Sh0XmhgUoC30YvAi17sQDiDbvIeB/KPTtE90C\n7C5+aWU90D07Q661oTBldItOHkeV/ONDsv+VLD6ijQpQ1GB3VcTc/n30A+Bt\n7dmo\r\n=KWFf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1QDDMXZN1NjFtEam5zhFqyxO4tT8UAW/bIFrFHyOC4wIhAO6NPPjDcOvA+dEaQDfApilPSgLA3nJgnfdKUkis3Zh8"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.12.0_1556716235249_0.11051356487940134"},"_hasShrinkwrap":false},"1.13.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"deploy":"git add . && git commit && yarn build && npm version minor && npm publish","build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.13.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"9da5952719ca39cf64657d881b9ad9bcb7ca74ac","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.13.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-g4myt76KCq4lU3m6okgUrqCDESB2NBu56ZzRK0q3wwVkgBt6xiU0ta+jZiIaClPDkIwxbk4v8BnANu1xNRys9g==","shasum":"b079b0da4de4e46cb441f88ebe182181e40be12b","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.13.0.tgz","fileCount":15,"unpackedSize":631288,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyZxMCRA9TVsSAnZWagAAV/8P/0iVu3zat0L3MKoUkdbp\nf7DOB3e6jKEXb4NbO/JaoIRpTs35hfD5w5F3IMgp4Ph3/KUhB0iVxX/hTDGv\nmrpluo65M+6O+jkOgqwNGfX4WpBfI5IR9bzs1j6baDhxOZSH31W10LpjXLK3\nPKyGlXlGUa5gakpabT3CIfTFEfB/MUFHANsAtj0Nymg20p/g0xjWCqP8Ly1f\nvh8npW3txhfLQN1/NXddgAUJzaI3Nw7ZzVRINvTJ7h/c2jBZPXe6W4dW7zfl\n4dhlLC7N26fRyhlZC/JsCNm95bMklgnxNcQqA/oyYoGf1w19ofSImyBiTEKS\nRFQQVOVPDiTLEE66uZ3IB+VWP67/nhepgPB0Zmo3n8q1gZvojeZBH/QlOrAi\nOJQC0inwV1mJQuUx9iZCXKjvucfynhsWzwbEXJGBfbbquZWrmpMct35ByTU3\nIGi29ATnoPY3sbdAvMH3tXKtXp6V55oVTDYLovmFz9U6MHsMGtrRuIcY1dcj\nUQvYnWtRNtpBn9YO2CMTudFHhNhF9gDPuxeT69L3EQift9I2KgoaWB+nlnRW\n2OcjK0KBQ4FcmRASEP7biN4kREKg0+JV/eQv2nnfDCNgpUax08v/eGV8srJ8\n2j0J+wAMB/pii12pv/yol41S+Xyr+uNPc5smspDDLZZoE19/rfUDwj17SWFA\nSev5\r\n=mbNv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDCuFFfp83IbSOtHR7OZbLd6q4RacOIXo7MmG2X0sKb+AiEA6QTH/Vbx7sRuMhqQiJLxYLaKQuVIMBhbKazX+uLUGwY="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.13.0_1556716619864_0.8838674277128271"},"_hasShrinkwrap":false},"1.14.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"deploy":"git add . && git commit && yarn build && npm version minor && npm publish","build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.14.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"d411b484ee5bc0d5d52c4c1049c96aa3265ab3b0","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.14.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-gi121WunUpqdDHk+XzJ0M57s+vAVICcdOARDgnpMm0CALGIViMGbbsbmVl8n2lqkCiHXtVzsxU/WWNBfe8ib3A==","shasum":"8f710d0491a7bf0567662e235a61299fed735262","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.14.0.tgz","fileCount":15,"unpackedSize":631995,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyZ8dCRA9TVsSAnZWagAAfpYP/RiQYjQKeUNQCSgR3sqB\nPa4pJENXgRHaPKAAlZGp6qirUmLN3ZQAt5loN4mcUVWMJslI+u8r5TrIoXHu\ncUrv1BQuxoT/L5SJmjIPEwSITy0eUsKsdw49rwpyu9YU4e0kCrkFEARfrSV7\nill1nqwV1AVdXsCI1nmJoXyw+cgsEhQ5TWn3ZkYq70F/At1gedlnaG0UsD4r\nJXi7XQYRl5y6YuzEBWcoWfcfUhWy7z840Dunxb2h+IbRe7KvaVAZCxA/k4fV\n4ToG6G4gtjt5qqzuESwj6Dzro0jfNbpthuVv/KyrP8qIy3qzjaqAYVn+7i0P\nzHaOXiBH4tgb1AW/dFEm6RJYYb/qYr6qlQSRiL23TR97kOyiThkqvmm6BJDO\nsUFehkFRYjvvs2LOIZsz1ZlotkqC6YfV/zWrGxBemvuYSxAgCVwRv3LtWQt8\nfRDVZFagksbWTgvdMfin4cCTaef4OnhMaYWhdw0go+LQ7hcPQRcf6Pj/rT5Y\n5hcchrx8qnClDrgjiqVO4ViJPN1pY6862EnG9ppWQ22M0I0q4zNJ6PDVYLgn\ngA1h5+TA2/+xTE2TlI7xqp6GUmU66lJGnqy9o6gvtuPUUSuf6e/CKH2Kn5HK\nLjLN3rjGIcFxyRBcahWdcQCB1qK4cPK2fSuFE/CXCdX8wNAy5gyvD228p0yY\nSbu7\r\n=wdQD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEyyBjql99ITnmG9W1O+m/C90esBm5AETxX1bT2+J1MlAiBRvNj04M3gn8kuyYRJzxwq/Cl9efM2aPn0/7bSA450Kw=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.14.0_1556717340733_0.31589448290130884"},"_hasShrinkwrap":false},"1.15.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"1.15.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"2d0a837801fb695b17433d0a235f4ee51b1cb41f","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@1.15.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-eDaRaeANsZn2f1YKhpp+imrPObwPQutu/xvt9LVejji2oNt0FxEcBtyd4f/dmNfBXcav52ISiS2pyNoTehUV5A==","shasum":"9814ecbe2c99c370fb5673a248d3516b95a66c56","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-1.15.0.tgz","fileCount":15,"unpackedSize":631950,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyZ+lCRA9TVsSAnZWagAAECsQAIYJqoH4PqRXSFLGJ6o3\nBTVuc8XewKCW/c+z/sGyGwYeoZPwewUWIQGNYh2WvpmcnT1+8/yDKtzQNl3G\nYTBsglPwwzXCqgxfka7JCLpNyQeadZMi8fwtFe4lW9PEYu/8/NrCDXZA57w3\ntiiv6rQPxkKcpdY5J49sBdrL2DkZ3jAZbeIt1KiDg3Hc6V0iyQ7QZMgs0wMz\nZHG2GeAF1KftF4eT2jqqTny9uczpPil/emtO4IU3D8LwNehNRm2QAoH/zdRm\nvnq7tnBI6/tU9h4L3UuC372iybpiR6TaH0Zk5PR02UJ/Unuu7PAXm49YUtEG\nISl94kyvmLqVRVwbmQJuijlB/UPzVIYMUje/ICVxS8T/89B66X0bFZSLUowe\n2V45fN16Bs5rBw7B8oAHcqqahi5ysV3v588haMURXDT3Oszw4vGbQKEEDW7Q\n2/0ZQDFeizBWIsvq/E68Smhhb4yG1kSuLmiIOJm1Kc87IcLcpaHTYj2gD4se\nDTT3kvxlYt1cGhltziu/0Q1oSKBoiMF2fAm3KYGFT5GtOZTOWJPz+FQyQCEL\nwPg7IZrSB3EVOFhiVLF/SRB+QpyQRSdAnB3o7LnG9Ix6Tv0DGtbvatpHaQHK\nUtUMWRNZ6Vl7G4fApdUc9WYzo+DiMMYTPFtecf32s8ZDpKr0NMOfBUQNDU0G\n47ih\r\n=e7uI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCRs7rosIEMNkpv23t9uILdswx7/W332vdoPNCd36jgQIhAPJmjQE9IsBMjYa3eHOPtGM4v47abU33kNHmc5xJUrHK"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_1.15.0_1556717477215_0.7604574661526615"},"_hasShrinkwrap":false},"2.0.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.0.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"218925ccfe69612a248c5c080722efac38363b9d","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-WnxdFhuR6FthSaBW7v0R7BDpzAKflOND0yAvzA+csCdswokHCelyyouDwNonuc4TRWKO717VLKQWpBlLvu7zfg==","shasum":"c1d790f2d385f4070196ce9574ea557dbffd0174","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.0.0.tgz","fileCount":15,"unpackedSize":631969,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyaWcCRA9TVsSAnZWagAA8b8P/2BVlPV+JkOiGh8m6B1h\n9aOW/GmMSslR8sK+tNGLSb1qJE2oLdbfXGfpk3S/KSWZKviTc8y+BRYaEEXn\n0SExYbVAYy1LOKDy5OE0KrhJRDsFayHY9U2ir2KbqW1mo7zHZ1GxfegSY/3n\nZMFznAcg9zLqUhQtEsHyBIogmveSz89SnqkGHf/WGAZpAPemnSi77aOb4NDB\nyisp2h8n8VktiRs6DxZKIeXKqgqoNo7a8qr2yZfJNJ8AwnU42HLKURM+Ecj/\nuAlTh+tvn3KD+5DGEdmkX+Pv8m+6iu4crLuFeqCUK81j7xtaUl/u0HZL7PaU\n6ob3/X/MAAviuqO5ckRaTde3nYjBCbXWJhBBJXM2VsHUN2ErqtXLawx6pFBN\nCH8MQohfpMW1/TMIg0cV+N0MuE4xgsKjLiX2naXdAl8SOfHZ5bdh/guqftBF\nVN7PGJ+w4gzvTeTZdE1l/WHx360zovr9Q/YK+jYDIGZQPbcPiFun42tIvP8O\nbJLPJ2/NvqLMQjCN1zDSpYPjtBuU8Geox2OElG+ahrvRcbHSHaUft4aDOXrC\nxhV9qx5ZAa52QVs3y3gdi+9QYrcKDjYY2L0uTBmJpozyoXqm4pIkHJsSjoId\n6qwiIRqVm9wy+vyIFOlUDwV1wvearC6sSmNXF6MxQvqf6/XRDQNwH1MhQbeG\nQbMy\r\n=mVov\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPU7HFRsqYel/4azEuEks4/JPUAfCg3oZSkAEtrdKpMgIhAOK5YpbEQti7CsVp4WASQ31oVlH224i/dU50gHQn6qry"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.0.0_1556719003970_0.3540660754347871"},"_hasShrinkwrap":false},"2.1.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"devDependencies":{"@soulpicks/react-scripts":"^2.29.0","@types/jest":"^24.0.11","@types/react":"^16.8.14","jest-dom":"^3.1.3","microbundle":"^0.11.0","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.1.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"dependencies":{"url-pattern":"^1.0.3"},"gitHead":"ab3bae44ac946d53e899a9ee01daca346ea90c01","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.1.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-82qr0edPsl7zqgLxq/RbchP6bmMSzSmxymE/OluxSzQSRrgw6xdOWaWV4HdoaWmnWCq46sOkjIVte6FgjeSoww==","shasum":"2ef03405c2297265885738ff9428c03bc00eb2c6","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.1.1.tgz","fileCount":15,"unpackedSize":632172,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcyafCCRA9TVsSAnZWagAAgcgP/itkf6KsjzD7WEvLrQb6\nUMf3MWBSNNIac+Gx8/dYm3lINh7EnhVqA3mbwZULookBY8NlrG7LcEkV3Aof\nZGzTuxbz0gC4Mfx3jl/Amr2Z7BQ+GPMmihsj2FEvfNDe7yEqtH/ChKgtswE8\ni8rORyJyXRaZsJiPep1M5A2kAx/0gafQVjoglZ+1dIkbculXEK0OdG/RRvPs\nJhoZBtzoZIgu6kzlF09EoP4YxSr/jVOUTquC9CFFBBGCK2tyEs8SZilItvM3\nUoU8RuApjgMUsRorXm9F+EPcQL9XHaNMwRZjieBLg2xn0KrjM7FDx5pycW0U\nrztoNBow1bh6+GLIGyyLim0QYBVT2DvOuhixRp3/f71l8MK8OKUTdYpCkGds\ndh1+m913JjSuN2QlPy6NuRqfg6bJttE5ybdRjGvhndIq7xqyMWEcXldXGYhU\nftEO8TNvpxUsiXiYbVIICkjT8T5IV7GCUzuGg2NtfASecFRcVt/Z+pUwQIT1\nDoltkIeT1DVubAmksWsDgQ6/0fXr3AsIpuCBIJ2FPC3AqV+S/UH9of8KHyKB\nOChL45ZX5raRbqId+nxavL0axa5kgqp6ZWcVB2IjGM+tER43vKB2XCf/4vrX\nXlo8/ggBdFfx/zMGlN6Xe40Yc4an8CmZJ0HaRVqlHL+mycMbqPsfwGGj2f7Q\nsKL6\r\n=zYWH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHJ/sycoty3mnE3v1TjMoD/MOkKuGP4ACSQfgsixLOLYAiBUed92zCK0qP+QXx0hDAgTp8ZxDoK4Q/G/5OTv3HZnqg=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.1.1_1556719554095_0.11072184081209158"},"_hasShrinkwrap":false},"2.2.0-beta.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.2.0-beta.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"222\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n\n## Introduction\n\noatmilk is a minimal, decoupled, routing library for React.\n\n✅ SSR Friendly\n\n✅ Flexible\n\n✅ Testable\n\n✅ [Decoupled](#decoupled)\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nYou must included a route with a name of `notFound` since this is the fallback route.\n\n```js App.tsx\nimport oatmilk, { IRoutes } from 'oatmilk'\n\nconst routes: oatmilk.IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n## API\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onExit={onExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md","gitHead":"fc3c5172a4d852a73913b6ec63e6ee470a8b8ae2","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.2.0-beta.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-UXLOMKk+dhGlIrd0YmuNx9Vzm3O5uTFBrogtacoxPuVD2q6KtTuM0u5O+byZXkI1TSmdIoxyBX1RGHb7oGS6SQ==","shasum":"8eb5dec77700dba4709e881b22e0b70d1f14f8fd","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.2.0-beta.0.tgz","fileCount":16,"unpackedSize":641376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcz+gOCRA9TVsSAnZWagAA5D4QAIBYUrsohfrRe/MDkqMf\nbcMvA5ZmJyYl0dJ4DasmQMHNtjIiWeGXL7NFLBqiA8/+abCtWq66Cf4Xa97X\nupDpqdt8ddBNZLZlYfKpl8MGHFXZykac6hPuJ+CNOQ0pAcO8/c9FuQ6gkFgz\n2wFJUSBZkvNlqPHwp2skFQ1+3lY4vfmYqgdYjcYh+1FlOmda1JC2NPA+fx0X\nITYwt4EeNGSifVxakK7tzBvUtW1cMnwwVujULUaD3ncp04bj3UWCeqjzCYrP\npyKue3m8TM/pyrPBdw8HkwO98rY55Fw3DMxouXmoATpvk1Ep8JXq7FppTryI\niT0whXiBMO0pauoUjJg0MCbzgY0PS9QCNglaFPi6K0n60+uCxeF5Vj4Zu0cE\n3y1po3A3JUFi7bpN0gHfyoFim+Wu3y1nl/tGtY3ruuni7OJgENsADxoZwVNG\ndiYcC+aAKTmnXH/CNy1K+jxOTowk6NzW5nW+Ucol8NlVvd54rzDvCyoqqVAR\nxKiiN+u4Vs4OEUIApFRr1IldrcnEKEUhD0mz7w+fWGBWkraX4tOnbxM7xZYS\ncGdy1n5PZuHDKJvJ1UCfhXc99uRhrkaahNEyS8T3kWZwcYPVGY/iwhDRZb/j\ndzssoLc5/DVbRpzvOpY/94q7/undhHtLI+6XEFh9RwzI2eRA0V2bpxe0Qj0Q\nQJa5\r\n=2ziz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICO+VynkbY+5hU2abEDWJrYj+CBXmHI8yDJtACTzx29yAiBHX3FZ4hoXwKoI+zOiZhx9iXNMF2wqecVVUpNHfmWgKw=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.2.0-beta.0_1557129229647_0.8874298869434867"},"_hasShrinkwrap":false},"2.2.0-beta.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --external react --jsx react","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.2.0-beta.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"222\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n\n## Introduction\n\noatmilk is a minimal, decoupled, routing library for React.\n\n✅ SSR Friendly\n\n✅ Flexible\n\n✅ Testable\n\n✅ [Decoupled](#decoupled)\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nYou must included a route with a name of `notFound` since this is the fallback route.\n\n```js App.tsx\nimport oatmilk, { IRoutes } from 'oatmilk'\n\nconst routes: oatmilk.IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n## API\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onExit={onExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md","gitHead":"7417f70c0a6bfd65d8c4b0427cf71fdaf09158d5","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.2.0-beta.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-4MSVQ/cPsIlJSIJtWDXCMKnMEhd3jw8GCACUxlDVgT7p4rjXboLWQ4HxY7F0RTBxMdzVmFea7sKGthCygIUAcQ==","shasum":"f5c46d225c4f51c8f722f9248bcc9aaa5238fa1e","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.2.0-beta.1.tgz","fileCount":16,"unpackedSize":641941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcz+glCRA9TVsSAnZWagAAUnIP/2FX0MU3qeATKLD+DdC6\nq726tHbua7M2QMZqzZRcs5We1baC7hnIJwwVfUEC4+e6DH7spzkt727Rk0fP\ni0Sn9+A5XanUUVcJYZplbYuESC7hMqpfr/hpLIQ6Oazocxml5Pe4MamEF5mN\nxqClPP4i2r710P3PD5LBXYThqVr+6zBQGSbUmQfi8UScLATDJ4te6H+psqxW\n+q1TdnkLpPtm9IAxnlxuIRoTcSUhI2T2WwDdKqUKcGUQzO0fn+hP7YPqAqi7\nAAsfMxR+Ix3P0KkRO9/TcLK0WoM/SfEepMAg1Xs7HbiNm8cNKgElL70QPZJr\nF3D+cd4g3HsqT0gssTO8CmTVIwfxYaR7bMsjj8XCi3kvR64yUyzg433xZSsD\ni9Z6EXWgk1CZX4nGCwTrXTERwxH+Vl7232VHiih3/qyjU+2+ceIlPdmGDJ/s\nnBJdjmFcNTv17j4U5X1uDmce7SvfSNCNZxmEeuRFTHWbD+hbNJGjm1YOD0HB\nXjOY/jGHq2hPudZGVP7bY6rqWjGBMzM0Omxp1jr/WIh+/uAga3TrbByL8VKy\nHebZHSQQ+ndnIY4AIqGvfn5kPjbO/mloZRe/aIJWsVj0bCXLK607yzcQnFyn\ngNS6AmTim0Eix+LayzAZIGXALUNwQ0j8PxAiAaMQYKZGqEx1+MezUq5nYm2C\n0FcA\r\n=vdCW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF/3yOOAGP7+sw0QQtTt27XjJ3IYFk6tgnq9Jxo+avPzAiEA72Z6dTe/PlFY7Dk7w6BiUsjtsYJont/xR4+M9xZEaAs="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.2.0-beta.1_1557129252309_0.4977933947499935"},"_hasShrinkwrap":false},"2.2.0-beta.2":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.2.0-beta.2","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"a29aa58a527901ab65b0c1c345554ffc96727f12","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.2.0-beta.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-CIarPThgt75FM8etjBiFIl2rhRyf1vLdLh13tJbvjLcGmEnXFqQ2C1PrrXGFUO+coMRTEaqJlmQCguYHW3LkOQ==","shasum":"d5194d082a5e6299d95a3b30b58653155c449f4f","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.2.0-beta.2.tgz","fileCount":16,"unpackedSize":552852,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcz+lmCRA9TVsSAnZWagAALwUP/R6lfLvGlR+iRWNHlb1q\ndnprJ3x64ZQ6VE5W4A3Q3M1znqj3nwkLWwG8gD4J8YFi85TeSW3XEVDNV0pu\nw4VQhQ/IIE2fSUHcLgZ8cZe6dbl2flOxJ1ANcjIa/qpvD7R/Y1wn3SkRkjba\nMZjhNlcQ2edkjYB3FLpemZe0XXzMMWBsIsUvkCPtLZLHfHyMgAALaKHS23o5\nnrlebzC4OXAlChW9ahts46cgm7usHj9YAW3lthYHL1CksUIawu6FyyEHx3uJ\nobDyOjLtc+H1ndpDNKdPoDU7U0lfvuNeFInpieG/i28td6oMv4PUbpL0aiEq\nmNIObA67V8O+b7yUSVY25VVDhKRQlxiLCMvuFN2zhcpnRqHXktUC3fAnS6hL\nX+rSeAIQUw4xQ94ngfo6UnAdrBnPTzzxUoRYRiaMrIRNlzC6mZejkV2Yx4Xa\n6loeoA3UCQQXf9gDkpQI7SCuMms2uzIYSP53CslUXo6v3vdz+YdHo/xODLkV\nv7RJUmPRRBo4umWk/brePMNVf1s9cUs0BHfZU3BUmU87dd/8KdsoOHxK4RlZ\n5LV3zw1tpAObNhcHKUY6Euad92jyP3vYMITiu+h06VV+NR9fJH0NbbERLcPW\n74pEpSxrkhRVVBvuo3SXL0oUfppF9rD77mDGT6gJY2ebyZjZjYcXypev5Dgj\nQ8HO\r\n=tURL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDtfKtRJwj4OLDfw+nnW4OXcsX0NJ+rz3Whb2uToqBIeAiEAt2RUg2lfi8ercMUr8MFsdldwY+hih2rZR0c0Izg9IPE="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.2.0-beta.2_1557129573552_0.14221213462939497"},"_hasShrinkwrap":false},"2.2.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.2.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"608b95aff56133711f6803bdd7f22875ab586bed","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-zxurbypVSmeIRSB0uxluy/dBGHQc7cxUD7AWv8hee3UqvcGQeiw8JAYxlF4qJ8pBWrFfH8eb2GsS7iqyNJ0nEA==","shasum":"f8f60393ac4aef374c1645fc5bf2d42913975895","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.2.0.tgz","fileCount":16,"unpackedSize":553739,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcz+ojCRA9TVsSAnZWagAA7lkP/2mhE66nmY+CQes8JeB1\nGNJRp+T16OUDDTTPnuie6q1b5K7lDiDRttEOq/y3Lubu5iZPWMms0ooLzcLx\nreRyiamvi86XkW7Fw//J/9TDkelpe0hUwqDeTSIICYpbJYwE7GnAG2eiypDl\nS7Xsp390LOXVVmmeGEHMeZ9LZ1Sao7wJBCTXIdICbRaCKHZU60M/4LivUsVt\nxsQEifizsi1yBl9JnPv6v7k3OoMUaqFSxLB4Zuk5xdt0ErW+BGcJax0bmTRb\nZG5QwKedEm/q9cpzLka6tQJkrEnU9CYApGJMskTM/B/fNGem1ZZmgG4JTbdz\nIz320IBsq51HbwhgrueIX5KkDAaCarhTuiHM3icZObCNQgywVD5jSsYmkp8L\nFdG45/a17zHnLsIAkePY6+8rHwPGXWWWX2MHw9D4gu1g48U7NgAGi9lvI3Cq\nV2tjOgjIaw9w3fLvNlimiBVMmk5q5TsPMdgWak80PJe1qZh45CHRqlV4zp6u\nKDkzM+HjLx2WDcmLj3pYcR/8lnBpJcSSU9OZzGs5YFWMzm8Y+TVb4hSeVAeO\nG1zJGdCOgKkf2GgiVS1RrwdBoT9zP//3Ip9irPkLJoZaUFmk0lk0euqLSUBf\nMm4FgFHr1zJcYOMIUvwTk2FD0CE8PM9vTysiLMsGJ0zOWhYxhYvx9roQ8MDM\nMSe7\r\n=juwY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDLW2E1WhwsRVb9Zf5ohmVOGyNDHTy9M+VaNYboXHKzcAiEArsiWbuMHAYOHyKhCIMGZApIwGsTEJb2vnZhKAjm6Bu0="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.2.0_1557129762592_0.7334801141134382"},"_hasShrinkwrap":false},"2.3.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.3.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"506033eb6d5a17cab6c513424442714cb043edba","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.3.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-Tj9DfjtBDMSCg9Cx023oaGcBEtYgcqGuvGrYFu8bRswXKVPDCqrg+EOaLXMRMSLtznbayBKhpknJ7o+lhkFUjQ==","shasum":"7d334569829b8b6015934ba3f9c57ab6110fb520","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.3.0.tgz","fileCount":16,"unpackedSize":553801,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0rvzCRA9TVsSAnZWagAAAYAP/3iqnKEoI363mDns5XJD\no7jZSoD1ZaFJaJ7XHd7mxFdxdj28zkjdcdRei0fndafgiikmrAPVAtiDto3t\nZpJY3kTvKYVG/5YPup9oC5diMXbnyy5BXWtJdiuTvHEmDq49GqrLu1WYcvK/\nOR+ph994GvefeLdOLbzmGa5oDb/hgirO4jc5dUaCj2rPPQTePX+3roHVC99O\nPxRjk0/sAfRNDSK+7wbOrSAVqHgaLIVFxpF2d9vkKnbAqAwtv8v3i18DKAMV\niTBwfaK6AjyzH8rRawRpT6w4kj4jlv7mjvPzQTbawmtV2fRmpLJsml+jnnJS\nJlk+We3cn/LnyyJIp/ZjaoJ8geV+//4efaHJWf8eNRsyqlhZwdqOxan7+D4V\nmdjcFvNTJxsufgbttP53AVCTgNEhT0NKBBOs3PRGU2vxy51+8KY3WMlyVQGG\nz7k4mmLFb9BX3sJ+e/Pcnhk2btaHsYEPSyNem6lMyZqCtJ5bhxVZEk/tL0/K\noujfFxVhzAxy5KWzRW7KjMbI69Wj0qs/WqYkEHrQi1+1nB7mxMYEnG+qx+Z+\ns5CHoKPUBt78msN1+2ZwFA8BU4QwRMQ7JdmqPoPxuzsnSH+3gyNqTTqLlUf+\nf6RpHL3iWQZCeW/cCssrXtgi8Vgs5jnTRQ7rRJOLUQAHgKBtBdizQZIx3nmm\n6iEJ\r\n=90R9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHZQCkREzR+dS1WNtZJ8W74SE6Bw0jAp03qtfzqMfS0QIhAMBNiSCnmDx/3gkE/+0E3aNuCZeTrQElpW+rOZKU2lEW"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.3.0_1557314546783_0.45882406000469533"},"_hasShrinkwrap":false},"2.4.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.4.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"2cb3066bd0bff073f1931e82b4c2b2b2c2642fed","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.4.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-Gl2DClfyxFPeuNRIDkW0VcYIgQ3mzQyAedW92NGjEik0hQ4ed81CoAqolmWmLvz6hoEXKV2YFskp51f0yCQOUw==","shasum":"8cd6e6b43cfe5e31f1603e51261c7f9bb6f3be07","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.4.0.tgz","fileCount":16,"unpackedSize":553801,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0r3vCRA9TVsSAnZWagAAoJgQAJTSmJ3hsrtftg6TZMpL\neAh+4/6vq/uW+VN9gIhHp5TqDRP471hgkLlrm3TppPdpESOmBaJB3rGTZtYp\nZQp+PZTd4TFpFodnhcW/uV8OF8ZIHSUHNwVTiXfEz+NjIQ3VKi4aWLQTL21/\n2bOCmHYxlyPh07kUZIFoAcXsRONrbWD4JA5j7CAu0KXD/JD9TIwmtUgfCiej\nS6ckKxej3YdSbljoZAFlef0YeIJN+rmeJKDkpcSS4G8wlRiqYK2Yh2KX4h7p\nvrA/SAPynoDQAv4FR/pA5yMZcjZ0slFzr7onKqiuyNvMAK7VwnuXctdvNfuM\nz0TXsH1mtkCFnpfi5fxIACaFcVv1C+hTqRTkuLUe0ABWEFLFG2zW32Y1edJz\nrq3fX/brjclpMSX1d4UKI46pfzo4h+AYeJnvz3QOXKhIn55PGeqZ2L5tyHWE\nklnI6uUkL3cs2x2GfGQojj5qtLbLL/g2MuBRDydxYphWvA3wUVIcUYXxCUSJ\njTyIV/fL1DP1MBEoNHWJa3NtylzJIL1k85KiiZwBUeAvFINGw+6gv3E5phEW\nHe92VTljqmA1KyS8uKPni8OdJyA7Fqg0LYc9DdJqaFkEOcmG91bKvwe+WpgG\nY22mTA+cAzZlABM5LSMMBPCeGZwNN/Hm4iXc09VkFRFbyRAG+iA1zl2/VBKT\n8B4N\r\n=hgJI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIERGFT2OFV45oNo8K0uDMRxhCqX82GtD8F7qiMvCjzBxAiBWZMNVs3IE+p6naxk5nx4v9Hw3A1/bTncicihQwFL3pw=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.4.0_1557315054812_0.23854930710195554"},"_hasShrinkwrap":false},"2.4.0-beta":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.3.1","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.4.0-beta","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"8840ae0fe812ed5ef5b6933a9535c05808983244","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.4.0-beta","_npmVersion":"6.4.1","_nodeVersion":"10.15.1","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-ogBgdpfuxAD9G/m6UFgRrSXN5h/3sVEZtvLXXd+F+HIMmxVjmeWsoqDJACW5B0gMJX4yYdRl0EzTC1hdCqu8lQ==","shasum":"2f4c75b731b18edd313a9003d174dbd227480508","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.4.0-beta.tgz","fileCount":18,"unpackedSize":598260,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2IOJCRA9TVsSAnZWagAArP8P/j5d1XZy0w/O+zuoql9Y\n+65hzUOXgjuDUSncNsQ8sAQ7DhMKP7tk0C8Eb/mwBKdJG07mhUOTTxOJeFDB\nkr09vTJrMeWSxdrc/APaGkr+haWbo3o/nX4lqOLY+9iZQSTSHPzkqPRSJ+iN\n0Fj1hCgyn6ZcybEe/GzvDiY87sUVu2xU60AS1yRjJpbA/q5U10nLPTim86x3\nwjqx4+j8Ow8ytnrM59K1auR1FuBSD+BNcqCmQxb8s/yqPo/hu4/VzAHlolTo\nBJ9T+njrgga7OwljsIIq/65Hqm1RzTyxvmca67xAdUwbrJk31bKaZtZs2xYV\nfOyQT+qwVpczC+hoAJDsg2lr1huXejYs4bxaN5+T59RtApcDSjUzgV9xIrCB\n1ovA349xUnDeC0xIdD8siJmbtCRgi7mctX/ZwIfj+8my4RjL8cCX5nk6dQYu\nsxkvEdjhZ/QMEXrx5Vs5YIO4iOVh/PjBbsIhc9XMIb0si5wxFJMg/xxad9pc\ncKRB4LsTKjulQ7TGzLy9wYnux/0TcuqvurHMXu4hPy9fFPTCHFVpEQlTo8gQ\nCh8Zdpjrepj0KoRvqJ5uhXw9LZ7cXO48stY60lFp6IJey9U43MGPYAH+JMyq\nXOHELLdKcTz6m3js7mJy773Uddg2V4cAmYqvE7fwH+AfdLGICymUoW2MX3/e\nN6Li\r\n=ASjY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICdF7kLGyr/1boN70ap+FbdeLgo3SLL1OryDWFk4jvq2AiAGNChCtzf8osXwcfGm+/kju6hFdGFgMF+x+VDSX/KS7Q=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.4.0-beta_1557693320610_0.6899894740079138"},"_hasShrinkwrap":false},"2.4.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.4.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"128565d8269f2aadfa45ef0578a57e25967ced92","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.4.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-ZmfojUFo9Jw3Ot+/5/rGcREpq8kj1jVF7K1qUk58WLTH6z53ldEINV2hnRM0C2z1DYz8C+EspsvBnHAgxFA3sw==","shasum":"bc1e2df94c1df2a6b7d836c35e3e98daa949efb5","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.4.1.tgz","fileCount":16,"unpackedSize":555233,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2p4pCRA9TVsSAnZWagAAV0wP/0EprDvxEmMt3Rk88ksL\np2VW3GCBys5YKAvtUWH1PSZjyXAFFeapGaSTFkDQ7k9yqkcon+0AAKDLU/4+\nIoUvj1XDwK7pdbGhuIXEMl3xr0FEOS2q3WgTDcDIuhYSYBfypZghQjHPeb45\nUxj/B6VRN6ied3K9lEjrVqtqrIRbxjVAHU3fPxbZnYKwyFjkUTCxLk8j52s3\n15VRlWUDi3nFDFvQcnJTK5UU2fIsOFtx28s7Zl8tDdlTZo5i43lAKczPlUhR\n0BXqcZ8u+n0l8sbPLZxRCW2yGvTWM/fD1ozI9QOaCn7duGlUKJ0Ys47BaJGw\nX1/dD8y/ZkL3T+5khHyLhZ8c33jmSK8AiN9ICHQL2ytQB43qppNc4LwyH9/c\nfkRMzS26juuUScrjhAVeO9aGXrnxszFISCIji9ePPF7aj1aaBxKn+la5SNcm\nON3NOQa/IiBBXIzsA641qJJNi/m79PDHUQEN7XtMf/asxlPZjQXmyk/Dcxss\nW+QlQrs5Af3ma90B/avDK5hSsxZPBSO0+7yVe3KKwgo0tdzcJX//23dszPiE\naMGG17Qagek7hVXoueNrdi1FZJmTj9o9YgUE74SYBQv28FNI7blEOf0roQmX\nhagCD4/rWOxtQIMEH5qwScOlKimsmlioZBYXkQ3FR8zeOaHbd/RI50I89qRo\nkm3s\r\n=kZrj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFECK26FpHRJjzX4Fh1Vb0B7BqzFrmFngx1qTNin0RbwIhANL1R6jp9snqZqLEojjS7BpD6bpd0pn9CQJM+aXhzl1r"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.4.1_1557831209034_0.6859773564911062"},"_hasShrinkwrap":false},"2.4.2":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.4.2","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"786f88b7a66bff2f0ad6483e775c706fa88c1d3e","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.4.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-U1myuYCI28fe9oeRsBJR5w5XxM0gxJewO/7vRv7GeZgoNHH6pLjSGOXBZu8xuEKRGcBBnCV/cpzpQ3lhS8iYFg==","shasum":"ff361999fd422b2d17f2fd6f8fddd4e91e5f3f75","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.4.2.tgz","fileCount":16,"unpackedSize":555262,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2p6rCRA9TVsSAnZWagAAOMEP/0Ewif9CB7m8ZVXtCnd4\nCZ8PTIVrsLN0Udk+XbcL14gKHRP5uCQR3AezAlQE++0RCxThmGLnuLqAN/2G\nN+vES/05JC2dsWwde9cyggaTisJRT1hX/jE+wyzqJEnRe2emge5eQAx+rW6V\nFEbQegZTkPosF5QSMiVnzeFEkmzK3MVNWJkognoJepjF5uO+iTD8nwDW8D2U\nKw3S6M1EzsaT8GyD7/s2nfVjQqlKdsysORpEKa9m7joeTzR59E5Lt81nhc2Z\nPoYrc2PZ6w2oNMdNcvtJYIsMdaDxqWRcuuSkt/1OzLVZP3RBGHVS4FaGrhdH\naZ4teLLOt7Dsje1zgsmvCBHA3/BIX7VGzPnpfALIMzWiqQZaluBZjnxKXPFf\nZ5bX3rEx+NzCLOWaRIqPOfuu+7GPoR0We4uvYRpnu5hPYjx5nJZtQ9cAYuvw\npf8vUYpyYzZU97ZS2M7TcvuerROTGK9YkcUqs/ift3s9zwNf36m+NVzyuf6r\nv/ntR4TPGUnFreZYIDXm8RTR3TZrRL1woRErcfImE8X4pAQjcz1XB/LYEosp\nNP8bcyrsvFivu1idxAXv0ZDsoNRCzMdXCIvt1y5bKD7zrskA2/zls8bhxIAc\nFGoJpf8WZJUPP5WzW0R0KQ+4McOTs/ZnIkyqnmdjiVmOvtoLUFnbKRpyzarv\nuLHM\r\n=rrJP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAtyw2Jn/ZFMkPs+0duztoVZmVC2qiDr2SaLchgrC5hSAiAma8INSNLnNBk4Cb5j1Rd1+IKN+LRroe8P35veExaaVQ=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.4.2_1557831338411_0.8054043692288186"},"_hasShrinkwrap":false},"2.4.3":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.4.3","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"889c10fac69499b8e627b35e2a46bba1dceed365","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.4.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-c0Ewb2UVIgszR55gEctG+zlsuMNuSFrPagK5AsIcY0fnoEpMl3873nlITYJwQQ/tva6/4xyxf1vp7qVpGy3pqw==","shasum":"fd6a49302b30f5c11e4f806e56cfae0d054b98e9","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.4.3.tgz","fileCount":18,"unpackedSize":557166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4puYCRA9TVsSAnZWagAApxcP/1Rz3dLEhB5aKogfkcs+\nrl4TujTzUnfQ/Nq+JYFT6WYwFjWj7DPOVLna6Ct9EVhofnF60QEApwnATDb4\nmNqb2cFVKDS9ul0k/gfnS98D6XOaBgkndAv8NMU+vOUJX7WNlpi+sB9vz7DV\njDvWOoXecEOoQwno95wfnzX6VA+2v0cXAI/p9DreBv/oCXlgvAvoqo4ufK4o\nCCHqvi9B2+IREo3SD3oC5w2NEJKLLvaQtZuvIbtDHT6/xUasVnLt8+qEWVaH\nsCbLs85vOE7iEFnt0VRXCKltBrp/yT/A4JEDRAwEcla0aUsptCaPbaPRDhdC\nwWcuJCim4fQYkxmn3H3d0+v7GFlm7LqDiJXhufb3q++xRCgGQvEb9/hanr79\n++K3CSI8b13/D8g2SkMNNPY4eROnjSLL7nHm0lULRynsxxoM6OjeuKH4jQ/j\nJJVqwA6R81MzLgAyNbKQFYmqgK26hJqM/0nOl5m4+nKTFyI+det+DGnX/cGh\nxcVyrUpU6nuI7+BOEitGibms9nQblZzsXzcjC7rVVf6p7zev9YX8jfJmIkZr\nkeDeC1+Cp2L+lOLjii9BJcjjEXhHTMYiTgY6wcdHE2i2p8iB4Y/6mQOTexQc\n6mbvD0Ru/TIDovU7yWkzC4eulmk9aBjHxUTYTnX/oV6CvkZTPjlXQgSBvFwY\nKhqS\r\n=Wz2T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICodhnXDCs8+yUDNGmVhuOdIAcpK89LjiyFF5/gvHi4KAiAoMQ+TAV9UaZuZAMFAlXEr7/EN5eMOPPuQewfRu8nIcg=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.4.3_1558354839849_0.03217072895888906"},"_hasShrinkwrap":false},"2.5.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.5.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"d3125a785624cea9ce023ada832f79b895fc4b10","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.5.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-lNK9+wlt7Rpd1JO5cBnU6CuSENY505JFTsXyXI+9r188fqdCd7jMJW72Y43vejrzRY+6jvFjwIXtaOCwprWWvw==","shasum":"781289e31513e361c42ab9919edf0cf0d821c64d","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.5.0.tgz","fileCount":18,"unpackedSize":557166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4pxeCRA9TVsSAnZWagAAjgwQAIFAUI08dgq1T1CNncLF\nV9sgiGBEq+AD5VjbYRpB9oYmQXscy1dWxwgcOT7/fU3rP5bfDCjxjIG5EgVO\n2hpJ2s58vFb1fw6e72XYv8yBa88ejlsSudkGKc9lNnJxGL/FiRlp/138qS9d\ns0D9RU7+3+FgxXYxVAgFQUOyPka+Y4vYXUKbgpsIXG94S3qV/30rsl2RkoJO\nCqcjeoRexuTvITAa86n9L/qg1DSY7pTCtD7iYfAG/z3hKQKj2MMvdGMSF1of\neDBUEul5xU3YGWn5W6p+iTP3kLZ8KaGFv1TE61KkJzMHZxKbefriXaPg26qb\nIXh2CMcEGCK+GjTJV4Zug68mU/WNAbDNn3dpRAr9J17e+kWn9M2e1+xwY6Wk\nIywkaWYolxGcHmg5gQwKzWXbcL1dVZs8yB0cbzRuyVMMc67pQWLNMreQDX2H\nbfjzIURbPUM8VygNjqnUp766rGlnw/uhYnI8bJnuucx2OxqqRzkSPUK+D1l1\nDVK+nUl75SpJ3tveq3GWRridB/jVG9LXKGOVa358Mmj27UbBj8g6OgKxTrFj\nEI5D0C4ZosxJCV8k9Pn/clxAH6Wt0JoDwTmc4AgghIi6uP17d4dwa1tF9L4R\nXVIfXTEITL0lShZ2tlI7rH/SaS1mND81UqSS1j33+lQtYS1y5WSd9os2a5uR\nstTQ\r\n=YCXO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCP6EaYL3Uhbny21+lG9B9r7jZlknmlXZ3S3HBL09M0SQIgX5mksG7HuSth0ogG3aEnv3UiTsA5DthBMb7jpqoxTfU="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.5.0_1558355038205_0.31312587902038125"},"_hasShrinkwrap":false},"2.6.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.6.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"bc9f03ffa9b17c18c05f664c095adcc386e4a34e","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.6.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-bPsfvRl5O3OVc5pKvBvh0nwn+yvQJloagmPvpa09/HxDPNY0Q0fxH25Zg4/yj6/12/2SRj6Dr+MB86f2U+zLtQ==","shasum":"ebf38fbe2eb94d045c25f7701150951c2baa0032","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.6.0.tgz","fileCount":18,"unpackedSize":557166,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4p1HCRA9TVsSAnZWagAAB2QP/31GSC1ktOy0RDZuYmkZ\nZShbEKeOap+RyAFfIgqXfXGgxTJZmm4RqDfaqbq6zh5LHQ0c5bvHu3HkN4lx\n/Ru0870fpawIfp7MgHk3QCZrbT5KJ4WpnperqtwDjfbF2yEvP4KBvGnC2qrr\nTisGx/MAF5GxjAn2OChpEh5ILxRlgg31LuZwDSPE0h0EJrs+rYRh77N5Dcx8\nB6Sk/1O6clSrY93UT7goh7F4LqVWBtgiWGMVGY6I78/9hhlj7Jyr1jqM314O\nVKydYbN67+74HeLH5g8Nh/JsdoqxF4qYnW3oDAfaqdkiCAeeja7SsKoMH5Ns\nWMeRtC2gTKUd1G8dY/4TL6ovat7kMnrCBIjFrSYs1BN/cafHqQaPt7KpMYMK\nBAYpu4jC++wCV0eJNRr7UpXjffCxz/5kPmU/N885ZByTe9T3ffkid7FNrY0v\nVHSBQb+uBXHgqoAlilDgqZurdgs4+Kst9kbvqRwH9qretH0Xt09QIwWj9SE5\nESY6aTt+5j5rYpx9QVmKfs6zRgBtVafgPh3JsCXP2kWK7k+447bMwyRcAfw1\n6yb75N5/lyAkBoXC2Ys9KvlxNAMvkcz+Eobtm7nyLy7gKsw/KC0Fy/6IC320\nQctqVeypvZe+BHsnf7xRmipDQhFsz9cVJjAA2HJ+ez3o4g69VZEq8CPW4rZ5\nZfHy\r\n=xSQ9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBZOFCvWhXf7cgqO71oh484YEmG4pE0Op6HCETsgWLD6AiEAg7NWa50DeFf3Hdhc64w7CBiyILLbyEe+BzK+wwOndUU="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.6.0_1558355270487_0.3779761467210232"},"_hasShrinkwrap":false},"2.7.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.7.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"589b28d63a5f77adf14af745671acc48b4060b1c","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.7.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-VXDGtopI8gs31CDz1jmu8aZSDjjjji0+s/XUjlVMZbKYIrE4rpmblY828HGTwrgZolu0+CAw+fBC3/bnjoC5Xw==","shasum":"271f479b98d1dfce578e06c0091d246cb202f94a","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.7.0.tgz","fileCount":18,"unpackedSize":557951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc4r9yCRA9TVsSAnZWagAAcmIQAJIs0Aig3ZgyPiLGSeLy\n2qQhqv1dmyhpXCfW8U+X0NmDCr4iMllRSVCOu4LMAM+NdEFjJPYqG7bhhDyF\n1Tj9OKBwZmxjI4ovwrgfwUTuesdCfT3gODhWxxe/1bxALbJEm9dw/A/1KDC2\nj4HaPXSL76GgamVT5zPOX37jmRnvGcD3JhluqZWZnnwkwB52xpTk6bSSEd1L\nEpl0Hr1b5VTtbuljdI2FpylZo1Y7Z3A20viNkkgVM5qXfAPp1GQott52lxF5\nuGXsEVq5ejNs0t06f8wzrwCVoI8HYgBasPd7uoAfAR6iHCV8GlMwzW5+3NoG\nje+bU9wkCfKqa+HQa2VEJ60tOWhfaPjH6Z7GXhY5wxs7V2RYwFN5jip0sml5\ns/jLkuQDPx0at6GLOhzY03z7pav8FP6imNoduu7MEBqMYhhJ6Xur8LVW/uXR\nHFy02J1GGI4RCV0q2o07fVmNSwOA5KACEPrL27Bq79KItLldBoKo47nZMTKD\nyKQRufVe4ssTq0K4QMjGLclFXIesvWxT2Y8WhGXA5ZzCEBA+U4AHCjtgIztN\n4BnPhMDg9vk03z0E2X8ZNL8UJXzlCKPC5jm5yWPA7zaH2kFKZWQuVOivZGBV\nxm7oBYqX+LxiDSsUr4AY+/vo0Zobha55UWmSRSBGJk9fHhzOI5vuKrarFW6O\nw1Sm\r\n=d9OH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF2SejSdB/xIw0ySJCHtZWegUhW8IAWb1rQ9audo0N+WAiABA5eJu29buz7vwJiqekRurO44Xq2LU6fRvAqnaCbjsw=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.7.0_1558364017743_0.7201432433930524"},"_hasShrinkwrap":false},"2.7.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.7.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"895b0ba7df33eafef12aef97a5180505f6cc2ef1","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.7.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-6FxZmsnFwR4xdZisJrdOUSLLt4OCGFcjWOqSZSDEJedBu8Xux0LV9CXrDPp0Gdy8LiahSMzcMUQrbEXC0qOdgA==","shasum":"7680d221ef31c72ea4962fa859ad693431719584","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.7.1.tgz","fileCount":18,"unpackedSize":557994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc69/RCRA9TVsSAnZWagAAAogP/R731xDAudXZDCKcG1+c\nC8CBsG88nNfE9G43caS/Hn2MxZQ21Zp+mdmTNtCMv2uGItXLXVT8a/KdZL5q\nQz45O6uvgAx64Odgxu6ruf44TsXuyVdHHrpgcOGdCgjmUdYSpVfpgfvNOyIS\np4G9tkNGYXgx722FFKMPwvOWzet7iFG0R85wqm0sD01/CxNLRp0cXV+gQVrJ\nzMthbcCu8L6ToKtPKMgDnZHldGkJHf7ZehfJPrFGWUsl8NHLKOvOFGmwkl9m\nX7z9W4sV54rba6XpznzqwTQ65EGHpNKTOLUB2cWjUsY97rOFKqxViZ2OTqf3\nmO6s9MMrh025G2oCp6GBKdt+rGAU6B9KctvlfKd1E4jsWZ/KPYE1BlS3oy+z\nWosZHzI9JTsKmv8lCrO/1Ynk6J/vBf/6t/YKPs7OVocH0M56l8XnAZK++g4p\ntPTKhTpcE2mgqSZBDcgGOfmFTL06UoLgBNT5FnvNtPNGLm2vk4xqMLOwOGeT\nxY2sIUy+yoJplb4Zu1LDXejOUer8CCMemym0iPaCtIjvPrBmZg3wSQf1tZnj\nBvBXKNPygM3hcecy2V1f3LzpZf3L+TxXCY4V0KgQ7ePSFml6JMEF2jO3XqHX\n/XKK5njaqm8mRNIP6DHMCooyR5ySzhtWDEXwvn6ff7pXNVKk4mIu/dHTfmjj\nEfgs\r\n=o/oV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICY1BGwcygOFcCqpr0nPGhPa/roNQaPdFdvUwUIlxKmNAiEAs17n15Z3M42BHb/cpL2afaz0NNSwPZIp8rA2jAYtrvY="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.7.1_1558962128940_0.9964737043400702"},"_hasShrinkwrap":false},"2.8.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.8.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"90a5a781411bb1e855cd0ed10667a255a72efc9d","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.8.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-cyMGbwErEoUY6gWgHFwUqIAjc7LeEz7hoF4Tv6enw1/vYFy7LI4HFtvYHgAQWV0Mw9iil8vqdyYDww/+YHjYcg==","shasum":"2b2d6f631ff30688ca1a55442611852e1ab2e00e","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.8.0.tgz","fileCount":18,"unpackedSize":557994,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFIeOCRA9TVsSAnZWagAAO0UP/3/FRp6MZ3L5PwTrLZYt\n8+ev7XIG6xVQxzUo8hViFS+67V03/Cv3VNJNNolRNRfqVHJJsOA5Y7Jmgx4Q\nap4CCtoegm9lDgmWSC1lpve7vAJPW1yLOG46GfGwlkYBaBXPnj/WsMt1OZmE\ndwmIBziwmizdovscYWDBZvbBYJ/vQsBydtQmfF9VZUzm3QCpQAY+s0qgRrrU\n029eNH0JcWQeBMROOUgvCDeWMwLkZ7F3QU5/E9iUvEueZApjZKLNuwaBOYKP\noo9vKYgEVtAV7MtVbrX0LLxIwtsKJpv56JdoqLODxqz7XZxfM0qWC9uHie17\nYuo/QmiGCs4Br0mTi4/RXKjdCJ131ft5GE26tlboPaP+JMoeVh5nz3VzxwAq\n/DsCDxgT8Fay4HnzFWYGZ57xqHgGwqMcygOICBeiW9Z5qgNv8Bx2iXPAkVch\n7knvhRHO14PUdleWf6zhcDl7583LNqckCdZEl1iLuRnvKdwdTyLPFI38T7//\nJSN4OJnYb7TRrlIWnP5ufwnQkff7o1lnX9ylTXKE6MCuhjL97rQy06h0MokX\nKai5N2OTnBZjDCeRrmxbTyYrzoNDi225eMTKrtbaCRr55lS7SCN/5HxIEkhW\nPZ7LrysiUivbt0BmtmCm7Is4N2BGJUBItbZsYwc/HMBZAxddBCA+yWfHgqGQ\nU3iE\r\n=4bn9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGtavwhIETr0Z2CmraZyE88mM9SEvuSxTfFzOgVPa9xIAiAy1CBqPeMhubJIVp6t3oJ+rkcXxo074NPJRfZAX4dycA=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.8.0_1561626510291_0.3192975922528334"},"_hasShrinkwrap":false},"2.8.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.8.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"c18c444d3268a8905f6874594a8bd40d94e52dc6","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.8.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-FFWmcJWQNFa/aUosxAUv2CLW6Etd/KyPBMK7yTeUgSZOXO8tjzt5nMYUFZc+FrMQ0KPlrsxNDCBVgzp7sRPF2g==","shasum":"14d850ee96fba354d26b9a9fde013713c79f5b22","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.8.1.tgz","fileCount":18,"unpackedSize":561141,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFIkpCRA9TVsSAnZWagAAQQMP/RQCdq/MWLSt8Yhp/kAo\n92OSsgACzlf0yFUpxVfqOBBPGexxxP4IeF/cXOk0oBS2q4zeSyALn7xZHIuc\nhS1JkCkw10cOtCJh8W9euGcZxdP++QgjL60q0Khpz/X0EKEACXProDgItUq3\nQ59Z4gztXegehgdI+Ntbe2iV2ATtZ7tGh+71A0BM22Mi82UTYByKkuuWpWyE\nVE+TZuIA14fC5k8O7yKNvftXQDXGB3caEJ3Xze7sjPBvNGtFJASQbmu6M8fX\nZJfGJcVLC62Ma3bfMOCkYCof7LNt45vgwlzcq42FkIJ5ZjUKa4qgKNeAamYh\nYOCSVBWBcvzIwRAQSBefDrqwSBy1nj3+axB5ywPFFenJhV+1YG7oYTGegp8O\n/bNnSGTHj0H2xmaamIYNwEC4zkWL7yiduU+MusgUovFohR6wLmVqGqqynRj3\nIfELFZCiZ1mZHMtQzcf/g2C39K0E5h2bn6rga7yzAJRDaI3G9XPqOi2DqrVX\nzV8DgMy1yNOIWzO0reNqh3znHzRYZL6jzqP0OvX2K2+JATCB55c5BzWiu0sZ\n5fFQO9rOe1D+/uLI2PhDw1azTrjZ6FfcdXrzqftS9lUhj/FHbCb58ULe7IQ+\nlr6jK24ESPm48NBmXTarjnPm0Dla5Z1he2IePf8s8TsMWzIOSP3W8bBDJhXC\nS4qF\r\n=83ls\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBa7J+s6ST9A2FYxg0Zk9LJRGU1zcd7f9CG9CSMCuajdAiAnlJtRQDjYlH30S5WjfDl9qGbB9zmTw3pfP+6ELqkQHw=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.8.1_1561626920381_0.8557563438048559"},"_hasShrinkwrap":false},"2.8.2":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.8.2","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"05b6ac8e30a73b2c70bb7230cbbac8906aa0d53a","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.8.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-ukvNVzeV8SwgwMAbwBd5+McD0Kb8DatnjuKESaDlAkI7jeeTWOSnNh3CWtoPQQyHST/k4NrNPae8wSGIzr5LWg==","shasum":"70f123cbc46ecf60128cb2f49b5ee002d795d0d7","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.8.2.tgz","fileCount":18,"unpackedSize":561987,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFI2ECRA9TVsSAnZWagAARxcP/2XvfRoPdPTrld13cwkB\nEB+NVFBKJjzFUmJvK54nZvwGbiZnfSrmF0aprLHnJGQ/jabPDoYr3eJhvMoU\n4RHK+nPvwVtIEYQdKnkKHerpyrOCo1E/fVcchaOxpK1NYvAUsNFrZv/+udFu\ncWFmS//Kouby28pSff2/0AvU7/2/Bhumf4K7jETvBw2MCxarcb+h+11lCcYI\nqkPX21IGf8XKkViuHP6qqVIRjBEwW3170da/S2HvG3kIXbVw3VLyzpHP+TSt\nvxuZj2FRvBqobbm93kMEBBiOMvrBlQJq5WPLmEo6RndNvrFGL1jxD27FNpaC\n1nwCe0/FzmXPColcRcCrP/uR+cnlCNvfqUT6qcn6+muq//x78M3KGHWn2dWk\nIagHOscNvpVLiSTZ4TS3v4GVsLMcDtdvbsqzh6lm+oFUtunD9+sqMYc4rIsc\n87pbBlViABESQb9f/jGR6fW1nFhL5Q2fSF05tzmRXxXkbrNC0tRcDe/A6JUu\nqR3YNE9lbcKS0fsiIelUnMp2cLxuAQzP/nAOI3eDFY4Uf8RAC/+wuBdSYOud\nZEhGDrNYRC7k6SJOBG9X4P0YiaOi8QSgBCTxWj9YjkyWKOhvG52qiwGyB+3H\nAcjapj4OI3dORdqZO7fq2hRqe0C6uFQ0UvXzirXiCSUr2o9M3IJEP4qpLRI3\n5ndG\r\n=jbhv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAuxqNx1J1Te3Rq7TF+p38vG+prax2U4PQGzB/z9DjTgIgfJenp2aZPzUK+K2/89nCL0xPQJAPuUFbLihUtbw0XZs="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.8.2_1561628036061_0.9539168051282492"},"_hasShrinkwrap":false},"2.8.3":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.8.3","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"d6e00f6daa218eb4d4caad51a5565875989583bd","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.8.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-58hwuXoJe7Bu5luIdeIReh3HDEFxBs2vO9CLZvIIWZc8Zt2ukgluUY+Acd3zvLvsUVpw0xXFsLRK6JiBcAWHuQ==","shasum":"77d3bebdbe868d7c57050b31014eafb2dfbc4747","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.8.3.tgz","fileCount":18,"unpackedSize":562203,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdFJJXCRA9TVsSAnZWagAA6LEP/REbG9N3Gm4qDzqNnhPH\nNAOlRS1UGwbva/aWk7Hhk6DbZ9Hvgk6QcE0Uy9AP67ho4AWfx0kUNVmImYUO\n8Ag+WeLB3qjaT/bfy1Q7h2dIKyyE5/37j7UnFXJfsaT6l8uQgcXpCsU9sYWM\nKuhwgKN4xnpubS3kbz6rI1aymS5wSjSr7Vp3YBPfZNFN7BuT+nOE5q2SkfFN\nSQbACrb8TPYWW8O2NENrEonld2m3CZ2QuIMJlo9/hT+TNp1IUGKHdfXhWizl\nDxsg8eCfu87Q/0xP53zBPY3+xc5cGg2lYHomO/CPtJz/9fxXmyE0HXrPgqdR\n9r/4xDoefqJsi63zs80ram7GHQ1ZjtzIxvpwFjyTRwGLb7AUIWtEyG/d+a1y\ngTF60AF+2BknYwfuaPKmJq6U5T2BO6JZ00g+8y5EXlicQfMFE2acBRK/BUYO\nqmXPPhsfHaIbtxt6YIoHzK6Mn1GNUHMfsWQ0AyX18gSIRhtsYYW+OKo1XsAt\naH7gs6kluCl8Llc4cZMjOsHqkxIGZB/KjngJ8odVIMhM5qsBihZ2CKkoDueO\nB+2KIjxOUuLIAhPFfDwKh/Q2CAYdNHjVaValv1nNXelw/TV1h5merVojTM44\neh+nuudcJtcdIhdlOV6ExOYd/vsmSvoBM2TMqqGOHx9POVWrHWG82/AS4EgH\nEcbw\r\n=Aeiu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzi/cxgsW1iiYRLOCN0vrA9qiG+eUP5JrJZ6Z1us1Y9wIgKwtzmAuHIwGS98UkC/5ftUurz5VV7JGymaPAiMPjtJ0="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.8.3_1561629270475_0.15303872930936846"},"_hasShrinkwrap":false},"2.9.0-beta0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.9.0-beta0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"3c4371662dcf5c010c30ad3a2c12c9a74714544e","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.9.0-beta0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-39Wm3hQBCnhJ/s0jkSjsxd61LIvDDNl9M0RlRZaDBD37PItagG2fMlFYiZqBvvSLyDkugTJwKwIruo7czjKVig==","shasum":"f72ee17e65a42d57f05fb5e21839b92c22b13305","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.9.0-beta0.tgz","fileCount":18,"unpackedSize":565282,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGiX5CRA9TVsSAnZWagAACewP/RsVSwk7JCx7NxNKiVhj\nREGca+JSQyjGDf1eVZrWTpLnwvhrjgHneND7xV+V/xS+QcJ/zcx2naS/fX+P\nqstYKMfHbJBIgv7HxZDGHBw+ZwLDDD9V/qS2abmoUX+aEd77fVQz8H7jVpzO\nYySTQq0YrypAsQtDipQm6imJbW9csTRG7VNdIOzQ6RMU2T5lJ8AzyfEpX1o/\nj2uBnHPM5A+MeFpo9Id0fiS3B+KqB0rbxBTAgHS+ohP4Om1NEP624Ibr3ksQ\nA2YEstPoo/++PoX3sDuEKA47zPTGVgWPwOb2az9T7CevJ7stlM1jXtqjTfIA\nvE70155o8pqlc93C4zodbawRd1TnBMGTR3lUPtS7r4LQEftgaTvbk1Y/61dg\n/tDEgX/mcMmiZs+4lF+35u2QaShGzGaYlhYL97EAeO+Z4wP1a/ykXHD7ZVt5\ngmmgVgS99EMx5OPOo4/5oQIOLbeTmLaU1abz1RIp/x9EDErWGItvzWR6GmWN\nJxJHeHtvxF3ooOBuwir6S2RrQPu05HFYU6g7zGE7OVQyhTXlIVgPOvOSwuUU\nurrEWn5rlmzkq4wEQrCGJaBROoIEZdPH4dt0BLYZQWos090F3L0IUvIoh+vP\nlUvEAyjKzr0JKvI4TLO4+zzk59+D7MK2ibR5m/EN2sZUk52Z1CeSAU2tgSq4\nYJ63\r\n=KZpj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEUbLjfhgLkhawrSXFNpZt5eud3tTfaRpzLrNV5LFlAOAiEAlC8T5qHZCz/eIn59jAllcOdgsxtaNvbTI9u7Es0NiS0="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.9.0-beta0_1561994744921_0.03708591237069592"},"_hasShrinkwrap":false},"2.9.0-beta1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","react-testing-library":"^7.0.0","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.9.0-beta1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"2703e034d7fbf78822df97590c17a4712994fe90","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.9.0-beta1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-zp2evAnT4/o0AhOPb/rpSqnSNJ55B1mGoiOYN6Ivbzwvzn5g85C299GMeW6R3OJhLJxcwthUyG3mhmGHri6PPg==","shasum":"f5ad722c4e75a92eea75c8d03aa765c07ced243a","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.9.0-beta1.tgz","fileCount":18,"unpackedSize":565691,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGykFCRA9TVsSAnZWagAAlxAP/i6e8Jh1rCEaHWNyFCow\nv7QVhHC9doR80dajCN7ROh+AsPnu0YmDjNFbrlmdNICMAcqEv/B6m7847S+H\npe9av2KfQJr6h0y9BM3VsbGHtruoOEl94SXcdUPuqDhpBsOIAjhGnInbepT1\n8ldZyZEEXJ6SJxrLPQGRb3zY1d5e2M4q2g2+kASThOhRU+aWq81Vob5gqGF4\n05VL7aCNzVR2VhUVm5rDYCV5x9Y446qarcXYwac/HMKJD3FfEHlMx1ETfQv4\noh6jofKX5mV1kEpYcv72WHfCSjpknjQJWlVM/XhV6blpbE3O3tvl4844LjdB\nF6yL/0Dg7ICLwRc0YpDo1N/crwyhyGmOdxDY6W6tWsdI/NlwDP6qAWeBtFzq\n0H6pgcCb7iPINxKEx/Nq6SGwoGPdWRkbM4oO7/Mbrko7/KZFHlNvN9vFoTTv\nEr/jUC0idhQAcvbggnw5+ts8W3nbWhal0nNtnd9V4eTH53aoI3JiMrmE8loY\nBr1qD/geT2rtQBwksEbVkf2jPrqvu2Hl0CqbSfTO1nY5U5QJjTc2RlqJrmub\nDb6tFaiLESBhLca5w91T22iqZB52fyQdP/JFL2q0BZC91myIdj7P2ZFHNtEk\n/lXJ/LWPM7/n+yr23+RL19eeljry7MOH1WH7GedDnQ1sJkS9B1axSNYzBmge\nQNaS\r\n=QCA5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDp7rBtEBCrjLIpO1heWc32j72LcuSQlywj2YBT1qFqNAiEAtyxB6857m0nEfkOE1GJHKiS+o1SanHoo+HqMUq/0F80="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.9.0-beta1_1562061060712_0.7242742996724745"},"_hasShrinkwrap":false},"2.9.0-beta2":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.9.0-beta2","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"c83605f8dfb51706463ffffa983d249eb5d9c0ba","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.9.0-beta2","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-gXoap6oB5zN5xlhoAM01bZx1r8L79O8YMutgH+wmcaDClB0OGTBQCzzPdEAXRijfcYsFiZskUPK6BwP3skJbAg==","shasum":"3c5a6b30df4d5dee4cd38c94c1c0ae57df3a3a2b","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.9.0-beta2.tgz","fileCount":18,"unpackedSize":566544,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHL/PCRA9TVsSAnZWagAAS4UP+QGHLijhG5iExEuK3tSO\nEzh7ecIL/s7tutRtZDIwq6KiNO/6WHjhKOX7MqV1OH8EoejbWAK06RzV2OyT\nkvRhk0PWuKgA7cPFqtczmLe+v1iVEUuHdkHwwZzhVU0ubzG3zDUdLlhEM78v\n/VWLq931spk7SNAUlcPhxSb7HV4DpjtG9S37e3J/azompb2qIchr3a6gVpqx\nTSy8G5UGII+pDu++Dw+qUhrcLC2sHqdfBB6XsCoTYE1AfaBCRyuOaip0Y4Jy\n1QdkRTg4jt+ZPMJ5MEYLoS+5OHciRXS/c6weQ6wYQb+IJOTYm162aaaSvdMN\ngJVeOjIKL+ipcTv2nwzTrOckPXMxJUyvCd0pUwtXTrqCC3O4ZncbN5dupKnb\nxOdFPfaJMI9ZvgG8jMXNo0KiOWciFAhfngCCtAIgWhwHzqN13Nd0VjeFvV7t\nk7TDZ0WKswiaKs6xi+ngnIv412r8pyMdyeGelRbfaT0g4O9HVOAGmOgLxkz8\nEnGkY3hNG4vFpnFNSAuOVqfsYnWjz7WAtT5xlOuvH0hMFfA4p3LdLR2WVqvk\norx9x5Cl2oedlNT1bYxTg+KPVVqr0u/45qL1ZP1Uj710zMU72WWYe4DeBar0\nO4QfU1I49T3M1L+aDs9qTrS6qSYOvNho4PELJpTCw7rHpKsBK6FkSnpSRSCM\nucvJ\r\n=kY36\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDadnU6AqwGsVVQ/kUyUNhGk+KskKawXrLw6xdw3a6tsAIhAMdvL7+tRTlFczEgo6HJcb1ykM3HxHObd5HyRfmqBl9/"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.9.0-beta2_1562165198688_0.23197004888064"},"_hasShrinkwrap":false},"2.9.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.9.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"671ccea1e1d1f50168c7a6944186a1cc0846ba84","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.9.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-fs1LazO74vyAg5E01v6AG9Gj5sUM+5llf6zlrez2bimYy5A/Q40E3nTkp07vJ6fzT0uwjGzVafr4DoWABRIhFw==","shasum":"cafadd624f13f71e0db5f70275406f07339cdf0a","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.9.1.tgz","fileCount":18,"unpackedSize":566821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHcG+CRA9TVsSAnZWagAAhD0P/iutsc5r6XZH+Fr6FcrV\nk4YVnqVcguxw6SYTV9Ir4BvQZvUTOwp8g0b4Z9CxyrhDiHUsg7ATJmspj6s8\nLhcmTGIxvQ8v8DgEE2ionvkyBCrmI2P7P5FrJDNNDWNGQeydSTqNUNJ6bjR/\nBol4qj8+q5UF89pyhcsTlu0gaiIMM+NNetCZBw5N/JLGQYdqZo2+htYhzv8M\nhJmmtnKDtwnUlpgT5UGGcZ9phYt5Atdixch1bKrT2xUWYQrp3ZsouqdFJiW/\nKQ6N4tCauxzVaoTEKyOyV2JAYHdF4uf3SCCyVxpFd0k4po75HwZk2FXmKpkO\noSCHjgBuRMKOQUbIzdgUwu2RdI3EdBAohRayzWDoXNTiD07sjfpKhf+Jsz+0\nysyRFgMRo7x5mO6bRAlJ2/FkJe9TnS0CEMajt+VGI40flrrKD97Hk4O0ZZJo\n6XSE+1zwD7FtcsdofEpL7S52Njg2CoZXdZkBPfVwN0xius30nZVhfgVtdDgu\na4UVQmfRXqBtgdmioK4VMxUqM3VKt7K6cgsScF/4NZk5QcClk3SDBp3rGF2j\nzvJ+6tpO8Y5g1I5OVA/gxMQ/pzEijIlFxEwdY2AvjdTiVb/GLDvf13qOLnvM\nGkidiAugNIq05tj1MhfHwljX37K8vRckNsyAhGKvk/rd0psbX2/lVVfjaIvc\na6p9\r\n=lvSe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOc2xlX/VvD/r2m2stnHvDafLNLIMaWjd8Kujcih/HYwIhAK1oarMbTMtfp0tlOLvTY/stknRDrxQmds+KzUnFPIaU"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.9.1_1562231229942_0.2520017639569194"},"_hasShrinkwrap":false},"2.11.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.11.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"39d9ee5cb02802939c00b7beb5ed375e458633c6","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.11.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-AaESLap8580qQMA7UWeZ8vpH32HF72JqucDV7cFCa2Dj0zhH+WhCW6XRgqtewPcrYfjT3EScdLyNMaG9FVXe7A==","shasum":"53ae5a85d12dbe155f9e8f7b130acc4cc73fa438","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.11.0.tgz","fileCount":18,"unpackedSize":568755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHe4XCRA9TVsSAnZWagAAWFMP/1p7QoxquZnkcJCXsYAr\ncTDeH7wUcX8Jyy5wVqVTMWnpHVOioXfoPUHVTpnVsrHBd/h5bc1sch3DwDxb\nLjJMfrjYlblx6N+XXhnbO82DtKcJ1VDiyuy+SvcyJVRsvMc5nM9hMVDNI1oA\nYFAtI8L1AJdCB8NOD+zHnV8n5ODqpUg1XobPFlgJ1cpZuW89T64KrCKVkbu0\nLCtjCLLJx0Bqw9GUZxykVJhzn/jdfa4+6npE0qZ1g8TitRUtMnOU0aO5XGKS\nN0bSMtZAZXngAfupo6d82pRk6vYmWZr09ZKRQyO+QlrmhIxAcYpD9VJJ6wqJ\nBrFkZtw41GznALRygWbleQ8ItNq2+9dmuzLK7ZTm/PJOT0m+5R77B5tJqpF+\noSIHkLeGZcaNm2pIXFVLkSf+nZ+KXCBJPlNDzhp0/xYgr/tkx8IPJECUd90B\ngKyodxcKh8HEt59O1wqlaogK5toAYOW8zRMj00r56bL1TRa6s8Osnb2jd1im\n1ZS+1LEeBOUKCAGV58WVqLVjI53IifjJML/yTRPsBpdOyCj0r+3rCrBw8IEb\n3DLuUx2K9vCr1ignNlZsL72dKafoudcY8Xsx7511FMcZujHdsw1qv+lw26af\ne8iab//Pd2yR+CgbkAAhxLIwKI7OBLqXKJ70OepbjADg8aXg6gHXGWnCxKYh\nHJLS\r\n=iiTR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDapCRffkeoc4FpW+DreQv0dZuuBE9n/KkhslBute4P0QIgUZEYQ+OA/Xt9Rr0RjeoCurfGCRLV1qPvMHh6WVHAkIw="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.11.0_1562242582473_0.4765263033978189"},"_hasShrinkwrap":false},"2.12.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"2.12.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"54a847c608f44c95b6d972fa537a608ca27a3ba6","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@2.12.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-cpMsDHskCAT+NmYP6ab9k8p8eUsRa3FmaN6dq5iQ3o8ezIAN2ukzgbLoJ59UTOWHeQAZ8i/vWt0OQYTZODwqwA==","shasum":"a839049a4b0d603623e93b16f4485fde2b21475c","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-2.12.0.tgz","fileCount":18,"unpackedSize":568835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdIv+lCRA9TVsSAnZWagAACjAP/0PR878ettBYT+ClpgLL\nxrmmAF696O28JjvXEopxm8KQEmbQhaODFIO0RbuyGJj2EO4uS1oNUlHtTk4Q\n1xU7M/iQodcgXaIQzRNjnuZ5o+bOmCZEu8+BCxZ7L0SUpjd8gGBICrm1b+Yd\nXin6c0xMX8BsaAYqkY+hoc5iRfdt6OKCQPrTmGWWyNFzRq9ZuCq4BZ00kln+\nTG7kJolGHbehEMiSuWyIzI5dO+JUTsJLFKwrgj6wmPMPlfPJ7cjmQHDeRTL1\nprtJwBobAZZejAJZZSqf7gds3o/uFlB5lsnXjB8BhIMLRL95YK5p6u4YVvfn\nlO8BnLOXIfBH0cqPWRs2csUFfD/kvBNJJxmK9KNMavvYGabnRyQdmapyhqvw\nMkMyAonuBF+5pEfvFwBrK3lZPOldDC7DC10RZ3MfXe71j7qtSCahF92wGDZl\n3Y9vGDvZyUHoc/Yyck8d0Rxl7T6oysX8A+rQlOt01mbUUnkEENrDyKLxJIie\n+F73o99lyPnKinhVcYnN3hvTlgL9G9tCFD1sMvFb6ORTuXBS0ywJktereIKs\nJpwp1dYS3zjuyGTHOFpjEEWXrrfHkbEbIUv3yGmKWXfaOTGXu5b1lRwZ3CFI\nOHbzMLO13wWLqt92MBDa05SXwUrAp1AEqAc2nMiQyqjMD24aq5ZYpijP/ip+\n8IzO\r\n=xNeJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA0m0M4R+JkZIB4zKlHvbtw9i6y0Hu/Y4jO19xJ0F/r0AiEAoZ2ysAvA2rGhTBPiQ5fgIvjJ1SUHLuRr6DGjG2TsGtw="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_2.12.0_1562574756211_0.942655415711338"},"_hasShrinkwrap":false},"3.0.0-beta":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.14","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.0-beta","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"auto\" style=\"height: auto;\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![Github release version](https://img.shields.io/github/tag/bitttttten/oatmilk.svg)](https://github.com/bitttttten/oatmilk/releases)\n[![Commits since release](https://img.shields.io/github/commits-since/bitttttten/oatmilk/v2.11.0.svg)](https://github.com/bitttttten/oatmilk/compare/v2.11.0...master)\n[![npm release version](https://img.shields.io/npm/v/oatmilk.svg)](https://www.npmjs.com/package/oatmilk)\n\n## Introduction\n\noatmilk is a minimal routing library for React. Suspsense ready, SSR friendly, and flexible.\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nEach route is an object with the required shape:\n\n```sh\n{\n    name: string\n    path: path\n    view: ReactNode\n    onEnter?: function\n    onBeforeExit?: function\n}\n```\n\nWhere `path` is any default pattern of [url-pattern](https://www.npmjs.com/package/url-pattern). The 2 optional properties `onEnter` and `onBeforeExit` are explained in the [transition hooks docs](https://github.com/bitttttten/oatmilk/blob/master/README.md#transition-hooks).\n\nYou must included a route with a name of `notFound` since this is the fallback route. The order of the routes does not matter.\n\n```js App.tsx\nimport oatmilk from 'oatmilk'\n\nconst routes: oatmilk.IRoute[] = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        // 'named segment'\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`.\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n..and off you go 🎉✨\n\n## API\n\n## useOatmilk\n\noatmilk has a React hook `useOatmilk` that provides routing utilities and information about the current route.\n\nIt returns the interface `oatmilk.IContext` which is:\n\n```js\n{\n    // used to to change routes\n    goTo: (toRouteName: string, toState?: object) => void\n    // used to generate the href of a link element of a route\n    getHref: (routeName: string, state?: object) => string\n    // information about the current route\n    route: {\n        name: string\n        path: string\n        view: ReactComponent\n    }\n    // the current state object\n    state: object\n}\n```\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onBeforeExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onBeforeExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onBeforeExit={onBeforeExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\n**Note:** This hook callee API is a stand in until async react has been shipped. oatmilk is Suspsense ready and friendly, and once async react has been released it is recommended to use React hook based APIs for data fetching with server side rendering. Since we are not there yet, this is the API we are using temporarily!\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md","gitHead":"e7a202ee4b65956bab9935f8b091e1f3da6c7442","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.0-beta","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-KEpccNnHKrmKi2yNdBGDcSbGo/FK4jcXigrXdMhR0X5eecolHxoKGI3Up3WJ+hu3WNrylW/ZT9TSGGk6ALbi6Q==","shasum":"7f2b6952323159b7902e1d55b8e5331b3033912d","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.0-beta.tgz","fileCount":18,"unpackedSize":575828,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdIwQhCRA9TVsSAnZWagAAsDcP/0GrzZhI/PrXO1PUcTLJ\nnnsTL+B4c/a5MDXqNaq8vghPGP5f06RiNjVbdYWR0XQqWPvQSYnEPGrsZxh2\n10Z47EEAlgATVRjJHckvResGJXX7+I19abvemMR8Qq92o05ufVKgGZEP0mCU\na3KoiGLhkEvHYxefby6n8BmWT3xlcFUaxCpg+4J5mJcSzJsNiWBm5e/Lk4db\nwmAVlQnSB/RxO2ESNo8ZnL05bk6/WAd7M6HaL+NKNZJp2HAy96xM4c+KozNj\n4vCufROZ+eT+XVrNE+SWj+qKdQAVqpzqSrxhJePVcwyRXcYtmCt2tBTvfSIW\nex2e9wULSqzpPk7QaOlVPN7AdqavuDPG7YNxVJMZ6ZSmBV/iwQvsx5vCGXdw\nyJfRM8ijAca+ANm3TyS1t6gzI6utvLeyvNshwG5R00COt5A8peei4Buy7APB\novqwzxCXRMZq+wKlBdNoeT+xNsFXjYtAZ7PrgaD+F33Y7172asIT3klQ52JB\nsalEg/qnq5FjBpEiLHa7taVDiTDo/EGpeL8bRkvF/VQae+QKxoOjDncMAAf+\n8GdS0o+hlgbmaizEBrVdcJyV1VLouWtW8YaCky0DOIYB8W0hGa1nJ/bidQ9f\nZWQjx5/2HuEHhIcrfkAyjdMWwfMSMIH70nzFZKByyOZhytj5QphNDYqcRufJ\nRRck\r\n=iNwk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE0GeXuzMlz9kxk7Kb01hZRPrgcHxS/GoYchWn7Bwq7fAiB5Xb9q+u1cMyhqxwb4tJE4VH7kDDOXi37EjrkoIedfLg=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.0-beta_1562575904855_0.4896484480794723"},"_hasShrinkwrap":false},"3.0.1-beta":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.1-beta","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"auto\" style=\"height: auto;\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![Github release version](https://img.shields.io/github/tag/bitttttten/oatmilk.svg)](https://github.com/bitttttten/oatmilk/releases)\n[![Commits since release](https://img.shields.io/github/commits-since/bitttttten/oatmilk/v2.11.0.svg)](https://github.com/bitttttten/oatmilk/compare/v2.11.0...master)\n[![npm release version](https://img.shields.io/npm/v/oatmilk.svg)](https://www.npmjs.com/package/oatmilk)\n\n## Introduction\n\noatmilk is a minimal routing library for React. Suspsense ready, SSR friendly, and flexible.\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nEach route is an object with the required shape:\n\n```sh\n{\n    name: string\n    path: path\n    view: ReactNode\n    onEnter?: function\n    onBeforeExit?: function\n}\n```\n\nWhere `path` is any default pattern of [url-pattern](https://www.npmjs.com/package/url-pattern). The 2 optional properties `onEnter` and `onBeforeExit` are explained in the [transition hooks docs](https://github.com/bitttttten/oatmilk/blob/master/README.md#transition-hooks).\n\nYou must included a route with a name of `notFound` since this is the fallback route. The order of the routes does not matter.\n\n```js App.tsx\nimport oatmilk from 'oatmilk'\n\nconst routes: oatmilk.IRoute[] = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        // 'named segment'\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`.\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n..and off you go 🎉✨\n\n## API\n\n## useOatmilk\n\noatmilk has a React hook `useOatmilk` that provides routing utilities and information about the current route.\n\nIt returns the interface `oatmilk.IContext` which is:\n\n```js\n{\n    // used to to change routes\n    goTo: (toRouteName: string, toState?: object) => void\n    // used to generate the href of a link element of a route\n    getHref: (routeName: string, state?: object) => string\n    // information about the current route\n    route: {\n        name: string\n        path: string\n        view: ReactComponent\n    }\n    // the current state object\n    state: object\n}\n```\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onBeforeExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onBeforeExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onBeforeExit={onBeforeExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\n**Note:** This hook callee API is a stand in until async react has been shipped. oatmilk is Suspsense ready and friendly, and once async react has been released it is recommended to use React hook based APIs for data fetching with server side rendering. Since we are not there yet, this is the API we are using temporarily!\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md","gitHead":"7b0e7a8a3fe95a9bb471442c3faffcdca879167d","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.1-beta","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-9Stkb64h2ybMoDOIstFDJ5UxSWSWassfYrvktqs7yv3ADoKc0CVBWs9EA0LhnGz3+VSeDIC/ffkfK7VJEnFe3A==","shasum":"9b3653644ca44897a503edd7d7e912efca8f4cc7","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.1-beta.tgz","fileCount":18,"unpackedSize":575828,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdIws4CRA9TVsSAnZWagAAUHAP/1QVXbZHbxw3nzURkfko\nkWC7KZZoPGmLkU9/b3TO0iDtoPAX3+Bh+PvAcpVqp/0dZp5IcJ4ZyHQHmMpC\nR2e/xHoGkVAZiOKP+qDqh7jIgq+R6SPA0ir/046ap28b1iZwmL3Y1Bd6Ub+q\nJoSWRSUgaIxqrGB8oo7kxlB3Qwy13Hbu4LfyHxnBdjBv73p3i+1X+JKk8nng\nwxB96jxR6sQixJpQ00jv4Xm5zSPOy9OdZV9ls52Q/eTGU0jWFl5TGr+nXLnn\nfhBqCzK4vIL3yR6dyDsfoov0rrOYR+G+vf0oYx3yzXDjpBJT3r9Wu0dBwubv\nQO1uOk6+RudnX6MOo7VGCDLZN0op1TKad6YDr+5D+eu3ZCEd2rTkSMmlyVkr\nWcXtP3yZ+qtANL/zrRgi53qz/f8X8uSx/QRoWDmziFM9zZZbjLaIauoLsdIE\nm8ndO+Vlrdmy+9vIAdFrGUbDx1RyOf/GCGlM/UtN7DL2tV1uTfw215kHT9VI\nackPEIBQL8VIb+rFw1FOyqAhXFV+FzmHlm0MnR6jI1RgqDHZvwqcEvnUQWUD\nJ875zpFGrZZ8Ee89dlYjG1zB1CHoN631aBrhNy844247Exn4x9cBvjtxeaxc\n/D/RZ/AC3lFZRcvfxysX5SZvh+OVuEUt78uHf/VJ8xGJCoN9az2jHuHMvRnj\noZoY\r\n=j127\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCv90skZYRzIAoxb8nfy3dfHIdjWID1jlzGDOhPAt0KwAIgfeu1x/BnC/zmr3PgN2B4fjslAx0mN41NrrB2n7SOk9I="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.1-beta_1562577720293_0.9959635695267235"},"_hasShrinkwrap":false},"3.0.2-beta":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.2-beta","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"auto\" style=\"height: auto;\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![Github release version](https://img.shields.io/github/tag/bitttttten/oatmilk.svg)](https://github.com/bitttttten/oatmilk/releases)\n[![Commits since release](https://img.shields.io/github/commits-since/bitttttten/oatmilk/v2.11.0.svg)](https://github.com/bitttttten/oatmilk/compare/v2.11.0...master)\n[![npm release version](https://img.shields.io/npm/v/oatmilk.svg)](https://www.npmjs.com/package/oatmilk)\n\n## Introduction\n\noatmilk is a minimal routing library for React. Suspsense ready, SSR friendly, and flexible.\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nEach route is an object with the required shape:\n\n```sh\n{\n    name: string\n    path: path\n    view: ReactNode\n    onEnter?: function\n    onBeforeExit?: function\n}\n```\n\nWhere `path` is any default pattern of [url-pattern](https://www.npmjs.com/package/url-pattern). The 2 optional properties `onEnter` and `onBeforeExit` are explained in the [transition hooks docs](https://github.com/bitttttten/oatmilk/blob/master/README.md#transition-hooks).\n\nYou must included a route with a name of `notFound` since this is the fallback route. The order of the routes does not matter.\n\n```js App.tsx\nimport oatmilk from 'oatmilk'\n\nconst routes: oatmilk.IRoute[] = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        // 'named segment'\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`.\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n..and off you go 🎉✨\n\n## API\n\n## useOatmilk\n\noatmilk has a React hook `useOatmilk` that provides routing utilities and information about the current route.\n\nIt returns the interface `oatmilk.IContext` which is:\n\n```js\n{\n    // used to to change routes\n    goTo: (toRouteName: string, toState?: object) => void\n    // used to generate the href of a link element of a route\n    getHref: (routeName: string, state?: object) => string\n    // information about the current route\n    route: {\n        name: string\n        path: string\n        view: ReactComponent\n    }\n    // the current state object\n    state: object\n}\n```\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onBeforeExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onBeforeExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onBeforeExit={onBeforeExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\n**Note:** This hook callee API is a stand in until async react has been shipped. oatmilk is Suspsense ready and friendly, and once async react has been released it is recommended to use React hook based APIs for data fetching with server side rendering. Since we are not there yet, this is the API we are using temporarily!\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md","gitHead":"ccfeaacc004eb40aa095e915a5375827e5143d71","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.2-beta","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-T8PE2SJyLzCMx+P18j0qadRKlKEIw1PAJ2wNWMkxyqtLMkmrEiH908xqY7wYDxsnJuBfHpIZG+WCcYp6CwVCyg==","shasum":"1a2d27e62bbaed619a8815d236c2e04b15c544f1","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.2-beta.tgz","fileCount":18,"unpackedSize":575828,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdIzmhCRA9TVsSAnZWagAAtvYP/A8zBw0ue3AJoryHPd+z\nWuDFxu0nZYQUhjU6tdF5n+cJzhGra/uQfv5cVuNR3FFP3lVRGT4RpIBBjQsB\nJ92yzUbN4L5vTzMB6GsAgj4hPzPGtHXloKj0gfqgPKdcmE59+daKApopwgRd\nDwLmhtdz2vnP2gqIbLbHwzUn0jTCsv/LVPTOR6iyHPBtNGuCGzDyG1FI9QLX\nGZKB8bkhJrY1CroyMZ4R+8vg7zRwgv1joZZYynVQxogGzxLaMtWpkyimaFfL\nmy96gPy8rDneg5gk2nmDOdVSTunZx8pp7sX1f2yvJDgUrAHGqbKUeamsFw4A\nJea+t7ISbQXQjFn2FV7prVgnd586WzR//l/oeDAwI9IQ8mDg8zxt5lfPcf3/\nwKSnYkKPyTqEUKEozbx/hq0UArPfAdi+wVwFjKNUjcods5XQO3aTs2LOJYth\nSV1uO/HesoHCI3BEv2pqOayfCTjoE64TnOEldhFLpKQfJWsejdbXtR3Y11u8\nwvNbsOtlTnkBREegv6PHwIWxgvoeANq4O0+jZDwnPNw/yzqm5v24QqNhXysZ\nXrDiIL8Gdsk8qz0euPW+nMSz8K5CwJfugoWrKJWLJPW8s3dzd5FikZzA/gZ8\n3lsjXGP8u1Ncz0idKzwOu2VjG78ufXH86UmXYF13BcswGAZuy5nwAu2sRnBM\n0Ada\r\n=NKJn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJFcLjh5Q7PlN/KhCpamB4e5nB0ov4HreSdo0wCk/ZjwIgZ70z/IyRMhLqvl2KblYoUF0YoNhZbkSsy7WFNSg3jMc="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.2-beta_1562589600631_0.10707874127607941"},"_hasShrinkwrap":false},"3.0.3-beta":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.3-beta","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"auto\" style=\"height: auto;\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![Github release version](https://img.shields.io/github/tag/bitttttten/oatmilk.svg)](https://github.com/bitttttten/oatmilk/releases)\n[![Commits since release](https://img.shields.io/github/commits-since/bitttttten/oatmilk/v2.11.0.svg)](https://github.com/bitttttten/oatmilk/compare/v2.11.0...master)\n[![npm release version](https://img.shields.io/npm/v/oatmilk.svg)](https://www.npmjs.com/package/oatmilk)\n\n## Introduction\n\noatmilk is a minimal routing library for React. Suspsense ready, SSR friendly, and flexible.\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nEach route is an object with the required shape:\n\n```sh\n{\n    name: string\n    path: path\n    view: ReactNode\n    onEnter?: function\n    onBeforeExit?: function\n}\n```\n\nWhere `path` is any default pattern of [url-pattern](https://www.npmjs.com/package/url-pattern). The 2 optional properties `onEnter` and `onBeforeExit` are explained in the [transition hooks docs](https://github.com/bitttttten/oatmilk/blob/master/README.md#transition-hooks).\n\nYou must included a route with a name of `notFound` since this is the fallback route. The order of the routes does not matter.\n\n```js App.tsx\nimport oatmilk from 'oatmilk'\n\nconst routes: oatmilk.IRoute[] = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        // 'named segment'\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`.\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n..and off you go 🎉✨\n\n## API\n\n## useOatmilk\n\noatmilk has a React hook `useOatmilk` that provides routing utilities and information about the current route.\n\nIt returns the interface `oatmilk.IContext` which is:\n\n```js\n{\n    // used to to change routes\n    goTo: (toRouteName: string, toState?: object) => void\n    // used to generate the href of a link element of a route\n    getHref: (routeName: string, state?: object) => string\n    // information about the current route\n    route: {\n        name: string\n        path: string\n        view: ReactComponent\n    }\n    // the current state object\n    state: object\n}\n```\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onBeforeExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onBeforeExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onBeforeExit={onBeforeExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\n**Note:** This hook callee API is a stand in until async react has been shipped. oatmilk is Suspsense ready and friendly, and once async react has been released it is recommended to use React hook based APIs for data fetching with server side rendering. Since we are not there yet, this is the API we are using temporarily!\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md","gitHead":"6da3873e56d66685aed196ab011d01d4ede738d0","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.3-beta","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-fSRnWjq+I90WV2KrBUo1ESYwnA+1LxsPrbUMASWGJarb1eL19UL7a4s9/C42zIy83zyfYHWpHnPRN6sOzn8DJA==","shasum":"e3e13fb5cc6a92df75a7bb376b08909182922277","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.3-beta.tgz","fileCount":18,"unpackedSize":576770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdI0KwCRA9TVsSAnZWagAAs48QAIZKABtz0n6qRL95DJ7s\n8YGYby/FBiIH7RqGyDciN1X/b6ksIrOHCqRf3k7PpcHRdVs0XkrPPXfhkw37\nFRPk7MTjsgXNGwz36fdXhL10nCVMoTPb2mH8VZNUXylFvJYVf6v1NJUiYI3G\nVLwobVjy8Xz7u75R+pPHqQWBUv57BFHwPAyIMWMypqdlWAm/eBmiWt3rfwe3\nLEthpgAIDSZDkWNlCF825rvQqmCskKoqzmAF19FW2cEh/fBYymZ4mndfFTrW\nCTcrF0ZIBmIDBjKrCuqvt0qlytM20qYyXn0WsK2CxczQSfdnIKX5hoSqM4jM\nuVhJz5wk7385LAKL+HdrqPp58Rz+9NR7rb8GD2Tctjf/LTX6o9ERby/Md+ao\nCOIdwwiMayTC3LxE9ugprx8TUcpDtZtPltoMqmBKrHG9p8NKyRMQF70DsFm3\nErJacSRrLmNHT8M8UdmJciliO1JSFzvZmMLHxHJ3BJK3ZRPednrGxPUTFW6x\nrzwuJHgxqpiRat4rwHrwJzXVPs6soSsKlchea3pMTryLDxsZfgM2v6s3Ae0J\nxVRyu4c6/zA4/SfWqr9obPqI7dP4AHoC2aFNqecD7Za45E/eKn4hVjQQwr1s\nw9vMReKBnKYvn43sgmrQ2CQz9U68iEEqbwD58wyDUz46PloqeD7U2Rw/J8/o\nrae1\r\n=wsr2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA07qlkl1grmI0s6pDDy8JPKGiGTCLJ1dXBdOVG01HvjAiBxEOcCyiYT0VA7PElp5oyu37pz0dqeMxZErw1dgpvzlg=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.3-beta_1562591919648_0.02748072617984265"},"_hasShrinkwrap":false},"3.0.5-beta":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.5-beta","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"auto\" style=\"height: auto;\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![Github release version](https://img.shields.io/github/tag/bitttttten/oatmilk.svg)](https://github.com/bitttttten/oatmilk/releases)\n[![Commits since release](https://img.shields.io/github/commits-since/bitttttten/oatmilk/v2.11.0.svg)](https://github.com/bitttttten/oatmilk/compare/v2.11.0...master)\n[![npm release version](https://img.shields.io/npm/v/oatmilk.svg)](https://www.npmjs.com/package/oatmilk)\n\n## Introduction\n\noatmilk is a minimal routing library for React. Suspsense ready, SSR friendly, and flexible.\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nEach route is an object with the required shape:\n\n```sh\n{\n    name: string\n    path: path\n    view: ReactNode\n    onEnter?: function\n    onBeforeExit?: function\n}\n```\n\nWhere `path` is any default pattern of [url-pattern](https://www.npmjs.com/package/url-pattern). The 2 optional properties `onEnter` and `onBeforeExit` are explained in the [transition hooks docs](https://github.com/bitttttten/oatmilk/blob/master/README.md#transition-hooks).\n\nYou must included a route with a name of `notFound` since this is the fallback route. The order of the routes does not matter.\n\n```js App.tsx\nimport oatmilk from 'oatmilk'\n\nconst routes: oatmilk.IRoute[] = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        // 'named segment'\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`.\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n..and off you go 🎉✨\n\n## API\n\n## useOatmilk\n\noatmilk has a React hook `useOatmilk` that provides routing utilities and information about the current route.\n\nIt returns the interface `oatmilk.IContext` which is:\n\n```js\n{\n    // used to to change routes\n    goTo: (toRouteName: string, toState?: object) => void\n    // used to generate the href of a link element of a route\n    getHref: (routeName: string, state?: object) => string\n    // information about the current route\n    route: {\n        name: string\n        path: string\n        view: ReactComponent\n    }\n    // the current state object\n    state: object\n}\n```\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onBeforeExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onBeforeExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onBeforeExit={onBeforeExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\n**Note:** This hook callee API is a stand in until async react has been shipped. oatmilk is Suspsense ready and friendly, and once async react has been released it is recommended to use React hook based APIs for data fetching with server side rendering. Since we are not there yet, this is the API we are using temporarily!\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md","gitHead":"0b81c7beea9850710756b126d6c8313f7e91179a","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.5-beta","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-IFlnsbyQg0Xpw8wKE268olyd/iUXna7XjBq8OHAE6gjM25IT/O9DOMiq8bkUZ1H7+H75s3kU1P/uKeiPjmkNxw==","shasum":"a246d03aca384bc39e39dce45b5e9988dfe385db","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.5-beta.tgz","fileCount":18,"unpackedSize":577455,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdI0QlCRA9TVsSAnZWagAAXnoP/ifb7SA3OGSIe9EYfFlF\nIF/+6/dK+tJaLsVHkReNrGLMAYkN9PgMx1+iXgCMLWcPgKof/QFnMQokng9x\nW+AQwutnfCkidKcFRctuJRP7JIwbvcnF8MFTwpgor0cJNSKrgedldcN7Tjfi\nkF7KkRWM8E4JdUKPzqe0obiXzQ6Gi2UldSsyyuhs+4wVFJkh0Od8zW1+lfNd\nU8sbslyt6ULq1ZBXBIZYX9CfIoDsVFRBfOjLjeKG1+mbpOalKUyws1Lu5Sy2\nYTml9tIYZKsOTCJb9bTiKKK3/wzK1rd274ax4qK9WNfDs3wvNH9KCUdx0y4B\nBdiGz2zO1WPCjrGXN+lAVrOufJgEt9kwqvcOs+MCvtuuvGFctqsYeolOJIJR\nnVdq1jAVajkPknYRPKusrUVjMDYq4+ZyWvL8oZtj9Csd0NWLO83BmlEad55n\niZdpAdFrIQCnxEvsfqOH/W3oVUVFebbSrLbjHN8Y/Vw7iPY3E02e8d8dFljQ\n2vCBmDqCddgn9+UnJJJJvlxRXTkYWnj0TAX6HdyDJfgaQOqkaXHD32BjQGbN\nl5vZAz0P64No4k95hE7Mluet9+fjEDbtiWcODdYKcBe4z5/I5R2CxDSeUMpk\ng0nvFrZzGW1UClhHA+EXRdqaMlrFAPeM8m5ihEPJwLFXflOaNw3nbsl/xaZ6\nGuHK\r\n=303Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5qA2PSSRO1ji06Ey9kzXbanKx+LUViEFSIi32DbNwvAIgQ03RZ1Hj2N/xcBBg6or5rcsOVwCiPYJg2BKYfqqCXak="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.5-beta_1562592293138_0.5675939856869345"},"_hasShrinkwrap":false},"3.0.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"6340836458bf4f9c855b82a85a2dbca3543bc19e","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-jX5XSsGXDIc7slgdMWQt7jfICCImyeCso+k4J26ff0PCpHBMTcLTBix2vXGVBnJthHdI5mkeENd/tUvZeX8jgw==","shasum":"158ec9625df573a3dd8c5fff729fdaeb1c451899","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.0.tgz","fileCount":18,"unpackedSize":576017,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJc+qCRA9TVsSAnZWagAAgSUP/2nXVNQpAm9qfNJZuue1\nQBwrfS5veBD8+H5rSElLEMOSobr/IlyRTNM9tek40Vphrz7UUpZF7bCZbEkp\n6rW+7oQpeZNJqtxnb8fW7XpXxL898lvlOkRBn6wASHbi3Pss+am0Xnm3arYC\n7D7TVLMAGz85lR4kqtvLq/TyJiAzMsXOM17jzd6KifY5iRPzkHpBJhsBiPXX\noyYZBlRfWhUD46KDOsCR3tO2SVn5yQer1vfVuWubFseuQ6JU3Fzn1fOYdqQS\n8ADUwmgHzTkoYSQFiVZA87jrcdCIr0T6jd8um7QEMZpT4uGUaTZ1MeEKUARo\nEOgx/VIwEPXzzcZZ69lLOfia0YLwV0o2ua8kajPQMoTNviZt+STj9l7kffz2\nrT3o3Is6hiR3AHaPeYPh+M85w44j0/7WXcqz1rBXIxODY40EsJKE2ONlkXUb\naSt32EM2PSsTepRr1k+x49i+rO8tTpD8EASkBTlNG0bbl4WTeEi9+UV+Hczj\n5j5/4TiC4XX0T1Mb4UFQEsANFLbwVS0RT2ziwQQMbcxEazYq30zgz1u6x3CA\nAcsuN/MPAOdtz1LHecpuDKSQHdsUw3WVYbupEo0rJOt15hazE2uWYLJA8xs1\niGPL3g4pB4gk7Z5AR0WiYN+yNy4V6xfSgRMJ706EJXtdnWWYKzAp7v7+Myl/\nFHNw\r\n=NLim\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSTaCwiefJz5BYoi6t87S0fr8KpE6MF5Hp6iBoGIdBhAIhALl3KGhVQQP+SvAYuPPNZJDnyF0+OwernukPyLpl6+L4"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.0_1562759081670_0.3627612694878437"},"_hasShrinkwrap":false},"3.0.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"12804dde31b570d463930b6c9ac98866ef4a460c","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-je/jZ/OQaZh7iPFq9/uomDjAwrw5Ah9x0nt8S1dM+JDgAT462CDPJO8ycpBHT8AP/TN1y3Sujkekj+ZWyjSi1g==","shasum":"f8e2a437b9bb9823a4fc895f49be5ce8cdd50f30","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.1.tgz","fileCount":18,"unpackedSize":576442,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdJeRxCRA9TVsSAnZWagAAwOYQAKLOLjagJVQ61yzkCR7t\nrODkEnx/OL34sxBDkSTEsJFjBzQdvKpK5IXIa/O5aNR8HOX0b+VO3dWZrYbZ\nnKgPpGVje4v8r2zWEUjNHeRT6VJSHiGZhhWFVocrs6vddfe7XGtjsmgXD0VK\n82D/PKUMoHDsqHFUFLHDQC15ourx4eBABDwrDho6aHmdX0evt/biGoYWNMza\ndNRR/rCGRLDmCzCSaaOw/qQW2MuAiORuK2axbXa7VWD3AIqU/63FJJ398WD5\nMv3jmhIzqM/2tgjE97MYkP7sI0S4w1NwBo8Rrp3T9amk9eDrqmga+tCDRw4V\nvy84KMvkPQnReEzs5n0qdMsWy1znNDjOgLUpC68AffGtX5XnXAKS0ASWsB6/\nnoPZYIETu6XIt3Y1w6uUrLkdUVWfcnBdS/jFjng3vj45a41YC1+5yKHGWRIa\nzzSwk0e6kqVmSY/C0Rg4Is/m34cjrlLHdnbFSUAu8fcxUY/nZjY1pQ57MI56\nOlJ1vmFl6DTLcXAinqaHffmZCJdcThD3N5vZVzSkXToAZHELHvmy45PALwzv\nWh5CxJtwgkXX8et/CDg1kae68X2WxdIf5D7XBp8q19AtvPrOGAdeln7HsznM\njv5dH3lym4a4/oLhsqn4sby3+zJQG+UfKMjr51VDX2rdKbW6oGpsLkIWrc0r\nJXU3\r\n=rBCS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE02cATjjfEjQ0GCgWDmMC6lQWTAtklnzCUOgNXzNypqAiBGaBI+1GBiIdkYrdFQYzF8PNl8O0Qw2dD4wSUbo+6/wA=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.1_1562764400769_0.8962652958760287"},"_hasShrinkwrap":false},"3.0.6-beta":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.6-beta","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"auto\" style=\"height: auto;\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![Github release version](https://img.shields.io/github/tag/bitttttten/oatmilk.svg)](https://github.com/bitttttten/oatmilk/releases)\n[![Commits since release](https://img.shields.io/github/commits-since/bitttttten/oatmilk/v3.0.1.svg)](https://github.com/bitttttten/oatmilk/compare/v3.0.1...master)\n[![npm release version](https://img.shields.io/npm/v/oatmilk.svg)](https://www.npmjs.com/package/oatmilk)\n\n## Introduction\n\noatmilk is a minimal routing library for React. Suspsense ready, SSR friendly, and flexible.\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nEach route is an object with the required shape:\n\n```sh\n{\n    name: string\n    path: path\n    view: ReactNode\n    onEnter?: function\n    onBeforeExit?: function\n}\n```\n\nWhere `path` is any default pattern of [url-pattern](https://www.npmjs.com/package/url-pattern). The 2 optional properties `onEnter` and `onBeforeExit` are explained in the [transition hooks docs](https://github.com/bitttttten/oatmilk/blob/master/README.md#transition-hooks).\n\nYou must included a route with a name of `notFound` since this is the fallback route. The order of the routes does not matter.\n\n```js App.tsx\nimport oatmilk from 'oatmilk'\n\nconst routes: oatmilk.IRoute[] = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        // 'named segment'\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`.\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n..and off you go 🎉✨\n\n## API\n\n## useOatmilk\n\noatmilk has a React hook `useOatmilk` that provides routing utilities and information about the current route.\n\nIt returns the interface `oatmilk.IContext` which is:\n\n```js\n{\n    // used to to change routes\n    goTo: (toRouteName: string, toState?: object) => void\n    // used to generate the href of a link element of a route\n    getHref: (routeName: string, state?: object) => string\n    // information about the current route\n    route: {\n        name: string\n        path: string\n        view: ReactComponent\n    }\n    // the current state object\n    state: object\n}\n```\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onBeforeExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onBeforeExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onBeforeExit={onBeforeExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\n**Note:** This hook callee API is a stand in until async react has been shipped. oatmilk is Suspsense ready and friendly, and once async react has been released it is recommended to use React hook based APIs for data fetching with server side rendering. Since we are not there yet, this is the API we are using temporarily!\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md","gitHead":"2dbd4119f6b70324ad8e8d9aeeb9cc790680ee1b","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.6-beta","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-j7q9BpJDqzujJf/F8JHW0xB3W7a3apZKNBA5Q4vyY/4H/nWsR82kxAnhBTzPL7TnIlwlm+USbBtKKX0P04QtbQ==","shasum":"d7d8993d49dae87a987bafe8cafbab95154a2457","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.6-beta.tgz","fileCount":18,"unpackedSize":576447,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLDafCRA9TVsSAnZWagAAzuYP/jnjpI1Y97k5oiQMDSoG\nMt/TORiWRIAAu0ZI4nktDDc0czUNOuOt1Gdnxy2vtQ0Ik6PG9j9eiSPQTY9P\noXNk8E9nyzoR1oNk0BpbedmNLr5wdMR3wzdfTvqm/GK6D9ikExSUagDUxOYT\nLXPlBu2ERPM4Mti6laRvKafOotjx4vdhUsbWN01h2SpZw1+t6ZKb4bI1FAI1\nI8Zpt26G0hiMC+zI9fJ6lwjlR+7z1aje3er8Gm/8ZiEfvkTzVYh+hPobIv8s\nDH2No8hI+QWpL327LYLa62KUInXwt9WphVXPjYTGtTKGuLzPBe5u3Ct0Szmv\nfTjoVuSFjJjzMhO+8KepxntSRNnefPuQVkFy/HSt2J1kKm+JEnoos3gMnGKn\nS4Yq1mL2bw6MK9wbaaFwCmpKdpmbFbSPGqgM0eWtccnjaa2YIx0/qBu03uqM\n7MmYHuQ3aod7z7Q2Mf3IdRfhFPdz3nJG9O+0JAuClQDQLL80Ozg3Rc8a64WO\nlnYVLvQdgk+iMZxr2dyqnz1Jmj487LRRMel48v9L1sJR8v5DqI4kw//q2kCe\nGUJu6t6QzExmzzG/9KLciP7rj1nSRED2qj4Vu47lrlz09MOZTDFIhRWyQyGq\n2kXS+DzOMZuG1q8UvYv8J9O8GIkn49C0dIuUs0Y3N/xICnk9tKepWht1T1MO\nIzzQ\r\n=9OIq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbSfCrsDBp2n9Yz6b03P2rOoCwuRrzvh5Q2r+LzdkzeAIhAKumDRL2k6FPDWQ3+OYVK0MaPSfJqciiigjz6CngOl76"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.6-beta_1563178654628_0.5763778527825405"},"_hasShrinkwrap":false},"3.0.6-beta2":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.6-beta2","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"auto\" style=\"height: auto;\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![Github release version](https://img.shields.io/github/tag/bitttttten/oatmilk.svg)](https://github.com/bitttttten/oatmilk/releases)\n[![Commits since release](https://img.shields.io/github/commits-since/bitttttten/oatmilk/v3.0.1.svg)](https://github.com/bitttttten/oatmilk/compare/v3.0.1...master)\n[![npm release version](https://img.shields.io/npm/v/oatmilk.svg)](https://www.npmjs.com/package/oatmilk)\n\n## Introduction\n\noatmilk is a minimal routing library for React. Suspsense ready, SSR friendly, and flexible.\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nEach route is an object with the required shape:\n\n```sh\n{\n    name: string\n    path: path\n    view: ReactNode\n    onEnter?: function\n    onBeforeExit?: function\n}\n```\n\nWhere `path` is any default pattern of [url-pattern](https://www.npmjs.com/package/url-pattern). The 2 optional properties `onEnter` and `onBeforeExit` are explained in the [transition hooks docs](https://github.com/bitttttten/oatmilk/blob/master/README.md#transition-hooks).\n\nYou must included a route with a name of `notFound` since this is the fallback route. The order of the routes does not matter.\n\n```js App.tsx\nimport oatmilk from 'oatmilk'\n\nconst routes: oatmilk.IRoute[] = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        // 'named segment'\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`.\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n..and off you go 🎉✨\n\n## API\n\n## useOatmilk\n\noatmilk has a React hook `useOatmilk` that provides routing utilities and information about the current route.\n\nIt returns the interface `oatmilk.IContext` which is:\n\n```js\n{\n    // used to to change routes\n    goTo: (toRouteName: string, toState?: object) => void\n    // used to generate the href of a link element of a route\n    getHref: (routeName: string, state?: object) => string\n    // information about the current route\n    route: {\n        name: string\n        path: string\n        view: ReactComponent\n    }\n    // the current state object\n    state: object\n}\n```\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onBeforeExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onBeforeExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onBeforeExit={onBeforeExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\n**Note:** This hook callee API is a stand in until async react has been shipped. oatmilk is Suspsense ready and friendly, and once async react has been released it is recommended to use React hook based APIs for data fetching with server side rendering. Since we are not there yet, this is the API we are using temporarily!\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md","gitHead":"2dbd4119f6b70324ad8e8d9aeeb9cc790680ee1b","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.6-beta2","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-tHAzhhwXJBwTYl8dWZMNoVpdyHZmxBJJfSlOrEcLtKpvLKmWk8Wq35Of5/V+Hd7az8WvuQgAZWVyuyURzxpiFw==","shasum":"affc905fbd6a4f639bd8014091e3b673b9dce77b","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.6-beta2.tgz","fileCount":18,"unpackedSize":576720,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLDtGCRA9TVsSAnZWagAAz0wP/1VarzDPApbuYRhTXAii\na7eYfww3FWA9/VGkihmFwqajMxzEurbPK6/wvRTNCWou+vQlOKh8JJOw2kLV\nYBTLifWCfuc4sXNqH7Xg5ngV6asOycEn8ofTSRuk2eheU5evmy029orboTlZ\n0mSu8t5Gyx9aL1wqAPVg13lq6cNuFbtlDEC4a6lskWukbSYoEXfzm6AJGWeD\nogacVg6nvv7MDlbFOJJLJfECYAY8/XMx73v7pLnMCDzDwleWgwQxMzcoyxy8\nx4YL9LrZ2sB6Gle6TDmyhYlkMef4Hq5vjzFm8O+lU2Os/26HcnH06bwoJFNV\nbY7wsjqeQEPxmHchb2IRoyLORiQ7UfwjdSITf+k4KD88rKOz2wIlKbzBwC2o\nXPk9CZ+H6XekaR8gSng1IZ/ePe6ONPitEgdJP7rHFVfHgWE8x+C18hx2JgHg\nIXaEPZKQSCAK0FOYthaWxJ48CwBxTFl2IPhjDHbr6W9V194PvoxAYs2U2XRX\nZOf9QteWbGPlvkqXVVmbE0g56JV/yo/We8QHm0NUWnQgUoy3wndVuHUjuXVg\nN+HI7qt9n/UkccVdAJYmpGPeHZRuzv3/Ob5wTHGiP70GzPOpH+xBrs/w0xdJ\nbgjiOyvuH0XLKPTBwQ3SYUGME/Y5cMGHoV02yor3QzNTUd4qTHtR2ZZLoub4\nSLaD\r\n=P4qb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDi7LI1ib5d+r5RTs0WOAKR2V/HmRjGTs/z9zoPK86ZuAIhAJZMHNMyk2O3UPXmLqb/qUC6hGvh3GJ/SuNBIE+ihNV+"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.6-beta2_1563179845769_0.3503902016035709"},"_hasShrinkwrap":false},"3.0.6-beta3":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.6-beta3","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"auto\" style=\"height: auto;\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![Github release version](https://img.shields.io/github/tag/bitttttten/oatmilk.svg)](https://github.com/bitttttten/oatmilk/releases)\n[![Commits since release](https://img.shields.io/github/commits-since/bitttttten/oatmilk/v3.0.1.svg)](https://github.com/bitttttten/oatmilk/compare/v3.0.1...master)\n[![npm release version](https://img.shields.io/npm/v/oatmilk.svg)](https://www.npmjs.com/package/oatmilk)\n\n## Introduction\n\noatmilk is a minimal routing library for React. Suspsense ready, SSR friendly, and flexible.\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nEach route is an object with the required shape:\n\n```sh\n{\n    name: string\n    path: path\n    view: ReactNode\n    onEnter?: function\n    onBeforeExit?: function\n}\n```\n\nWhere `path` is any default pattern of [url-pattern](https://www.npmjs.com/package/url-pattern). The 2 optional properties `onEnter` and `onBeforeExit` are explained in the [transition hooks docs](https://github.com/bitttttten/oatmilk/blob/master/README.md#transition-hooks).\n\nYou must included a route with a name of `notFound` since this is the fallback route. The order of the routes does not matter.\n\n```js App.tsx\nimport oatmilk from 'oatmilk'\n\nconst routes: oatmilk.IRoute[] = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        // 'named segment'\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`.\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n..and off you go 🎉✨\n\n## API\n\n## useOatmilk\n\noatmilk has a React hook `useOatmilk` that provides routing utilities and information about the current route.\n\nIt returns the interface `oatmilk.IContext` which is:\n\n```js\n{\n    // used to to change routes\n    goTo: (toRouteName: string, toState?: object) => void\n    // used to generate the href of a link element of a route\n    getHref: (routeName: string, state?: object) => string\n    // information about the current route\n    route: {\n        name: string\n        path: string\n        view: ReactComponent\n    }\n    // the current state object\n    state: object\n}\n```\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onBeforeExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onBeforeExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onBeforeExit={onBeforeExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\n**Note:** This hook callee API is a stand in until async react has been shipped. oatmilk is Suspsense ready and friendly, and once async react has been released it is recommended to use React hook based APIs for data fetching with server side rendering. Since we are not there yet, this is the API we are using temporarily!\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md","gitHead":"2dbd4119f6b70324ad8e8d9aeeb9cc790680ee1b","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.6-beta3","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-Tjtww+PI1fZmfNfwhhlklUcsJXiFWiTwihOqI7w93mYL6mboqo6oYW16JzbMK2U6FWrWGCYdIeQ4jAwZ/ENbjg==","shasum":"70e5fd95888940e4a6e968895a13e1de44af9805","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.6-beta3.tgz","fileCount":18,"unpackedSize":576913,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLEYBCRA9TVsSAnZWagAAlV4P/jf35pHHxcs/D/6UEF0c\ni8hS/p1RIQZbP9VxPN/rLvjzG9nu9n8liSNrP8Dinp2IHSSpbege1EnK7Tts\nzxQNfDVMewU5FFiTnCJUljB54/NQIXykOdtOZo1wnI2kJTcVxWxqr0BDGnfx\nJcUEvMqeE50hOu5PYQ8FHOJk4CaMsC1MM7cakrV904pihBLqUDQjORgM0P1f\nmrq7LhzLLJcoBvtv4W9SroEiEvGw7UGzzuCRHHyhwV2Jr0A8bflrMSOFuB+0\n7yn9w6Lb/7hXJ2SfWB35U9ilo4d0ROvTwaVa25HT4HuksZ9x9bhzGWoLwQLj\nn1jfRcGspPSERPYalcUN1QaHeYNP2pP/uBRvEwlFAUVbgVhzsdEcXJsuHKmD\nwZiPPU8tdI62PQkWZfXh5dsIFDQCCtd2YRXUT8uAHetzzrFt36I4F2hVB5Wj\nx44zOnZXrcNGitoKKtvIXqHQ6rPS2W9vW79gz3WAxxNf0dGbdsxj8T52wZVq\nfB3hbWhJmslzCvVrwWdBMSx+YCzTRS6Rz+aCihkpoAkLLp3Jc6FlatKglcwH\npUc3UWPxgtwPIj9XZCsH7flOXD3Zo/04xgslTR6Nubib55yhdlmxqOGRuyqc\neJFkoFCJvnbYNg9ElB2UbqE6m8fGeA6NUxvignZjMiwB0nGAXg6dlvE4Eowo\nTSxH\r\n=ZdYU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBU41p9a9+NR2yAmCoyHVIYZQCRfEVoiZnLoWUwwUoZeAiAxcint0qcJXHivMwH+rfidwEYOEwStEaemWDdNlpxwaA=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.6-beta3_1563182592971_0.39759668990063957"},"_hasShrinkwrap":false},"3.0.6-beta4":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.6-beta4","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"auto\" style=\"height: auto;\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![Github release version](https://img.shields.io/github/tag/bitttttten/oatmilk.svg)](https://github.com/bitttttten/oatmilk/releases)\n[![Commits since release](https://img.shields.io/github/commits-since/bitttttten/oatmilk/v3.0.1.svg)](https://github.com/bitttttten/oatmilk/compare/v3.0.1...master)\n[![npm release version](https://img.shields.io/npm/v/oatmilk.svg)](https://www.npmjs.com/package/oatmilk)\n\n## Introduction\n\noatmilk is a minimal routing library for React. Suspsense ready, SSR friendly, and flexible.\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nEach route is an object with the required shape:\n\n```sh\n{\n    name: string\n    path: path\n    view: ReactNode\n    onEnter?: function\n    onBeforeExit?: function\n}\n```\n\nWhere `path` is any default pattern of [url-pattern](https://www.npmjs.com/package/url-pattern). The 2 optional properties `onEnter` and `onBeforeExit` are explained in the [transition hooks docs](https://github.com/bitttttten/oatmilk/blob/master/README.md#transition-hooks).\n\nYou must included a route with a name of `notFound` since this is the fallback route. The order of the routes does not matter.\n\n```js App.tsx\nimport oatmilk from 'oatmilk'\n\nconst routes: oatmilk.IRoute[] = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        // 'named segment'\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`.\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n..and off you go 🎉✨\n\n## API\n\n## useOatmilk\n\noatmilk has a React hook `useOatmilk` that provides routing utilities and information about the current route.\n\nIt returns the interface `oatmilk.IContext` which is:\n\n```js\n{\n    // used to to change routes\n    goTo: (toRouteName: string, toState?: object) => void\n    // used to generate the href of a link element of a route\n    getHref: (routeName: string, state?: object) => string\n    // information about the current route\n    route: {\n        name: string\n        path: string\n        view: ReactComponent\n    }\n    // the current state object\n    state: object\n}\n```\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onBeforeExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onBeforeExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onBeforeExit={onBeforeExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\n**Note:** This hook callee API is a stand in until async react has been shipped. oatmilk is Suspsense ready and friendly, and once async react has been released it is recommended to use React hook based APIs for data fetching with server side rendering. Since we are not there yet, this is the API we are using temporarily!\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md","gitHead":"2dbd4119f6b70324ad8e8d9aeeb9cc790680ee1b","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.6-beta4","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-Y44yjBWpyv8sPdFE6ogqSVOLTdX7gsxECEU61OoLznfZ/cF05cXUmGxByHdxge1Nk6A0N5n2pl3GT92TXWriMQ==","shasum":"e6018afe4ccc5052670782ba58627b4d5c44f48a","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.6-beta4.tgz","fileCount":18,"unpackedSize":576964,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdLEbcCRA9TVsSAnZWagAA/WIP/09x+keOjg8Hyvm+b/id\nZrl1ig1SEFeDkolkRafx2X5T6rF9PXPW12G1Ma/eFFhB9lw5phGlXHZC8qnh\nPsvYeC6fgKVFyEcf+kOrdHis1dHjwnZuH3scdvv/l0Dory8vPPe30ASpZPu8\nZc0QNNUF6ZoqvOofSQsv53IHPauXyrxjO82Gz+ovCerXS/+IZt97b1tv5ySB\nQm2ab1IMmVCJIF0MThEZrg90e7peItxSmbiGhRUtEGYoQmfeEdAnRo1bRnik\ny4Xk1AzQhCIVci0pduzmIksW1aqPlut520DPLSulhZmwUIY5EBTY3i+ooBfp\nKSX9tNdB5AwYH8re61LCajncAk1T+cbe2HZxv4An6B9KRzS8KUe6r0a8V2ot\nbYXb6CEn0iUCCmuUX02JVMeiMoNGF1LQULwfIks5axmpLTTRHfS61594Np5X\nK+3JMJocTTRlXRy9eIQ6Ezq1dMrIckYBmZObpChCWQbrVi1Dzj7NVrECT/Y4\nQwN3QYJRdmcTBSo0YPtDiJ6w6uqZkKRz4iptr0DYLwMdm0M42G++Wq2Wg8E2\nAzmFpQkpO82xX8yQXhVBAhoEB+ds1CpeCEgIZ9F7DiyJ4unze0hgpnqf1PON\n9zTcN03np5FtRiqOzEEwfCcehXu/DhJy5mNbgNa7FxgfDmEqhENBJvlTqyN1\n5Dc3\r\n=d6FP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEwnPrqj3vWz5Njek05uoZbVbeOyKNIMidZG8EBaqnYRAiEAou2uFsk8iGE/Mupj54+64h1W3tbh5frAfB604vH/xdw="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.6-beta4_1563182812265_0.9082205011310451"},"_hasShrinkwrap":false},"3.0.2":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.2","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"faebcf247b0b1e10b393e554053aa56eb7dc8b53","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-f5McmH03y80CNRm27YUnoRdX3tH1v4YN1pTqLwkfkneQUpz/Hr6gt5l6jXlH/3mymUeeUiH1QYZLcV1XDPJOZw==","shasum":"591f6b95b15a3330140dbacabce3fa58f6ab22f3","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.2.tgz","fileCount":18,"unpackedSize":577792,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOGY1CRA9TVsSAnZWagAAENUQAI0ZrD7SoqwGOTtZMe5T\nswXD+W2YtMBABSPlA4XA9SMkNA2MmvmIGjpHWY+4YuKDVG+TQ4BtxWZZJLuj\nOiPsT7vsExznhD08AGXWhU53JCwMF3WX0shULDGNL+JeP7Ma4iGfSemzMdxV\nZP3w7sw3PV8B/324+tyCU7w3iEvbYspcWSLI0s5IMi1PD78Zts0+vvnsFrgL\nCOEjb6GibPkuidzWaOA6OhKOxCrZTQq3uK7uRK/tzEIflTGjnrymdb/mkA0A\nZf31b9Uwdh8UqPMMjaFpxTtBXR1iBONundWEbY8G+Js4WkFDgEDDnwZXsCx8\nbbGSTrnhb46BQqUujTG2O9BeWU/r4BCDYs7lkCCDUEgGyyS1yMez4EjxBcyF\nYWVJ6vhWx7uQFIWBngFOPYSEbtH/IerWhj7T19nZm+tZy80BR/AYu6XRaARq\nnJo92JbIHIqyosFbW0fybcJDYLykw+l1EaamqemRz6IYGBE4Ss1b+4owo53v\nBXYpiCZ9Ci+REuLybEB1Uz9dlx+po86RxQdcCtR/aGZ/Ouf6i/KmRqU1Q+is\nulOgFgPza29qzyaFPQqpXSM3cWHMLQnX+v2i1TkIWYDaG0Qu1jlw8XL3Ycmg\nozLpIiOAGwCpCZC9G1g2TvMSmvLytuJBmjLODoLLLF/zeAvaXZnbV0FvfrRP\nyxb5\r\n=9DiM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDQAcRBmj8VH2CTjVN0dbvq1/9lrk2WA10cI6nwe7ti9AiAFt3p/ZptW7Z6dH4Ro/qeQ7JVics88d52iu6p0uacghA=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.2_1563977268196_0.5766568368503522"},"_hasShrinkwrap":false},"3.0.2-beta1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.2-beta1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"auto\" style=\"height: auto;\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![Github release version](https://img.shields.io/github/tag/bitttttten/oatmilk.svg)](https://github.com/bitttttten/oatmilk/releases)\n[![Commits since release](https://img.shields.io/github/commits-since/bitttttten/oatmilk/v3.0.2.svg)](https://github.com/bitttttten/oatmilk/compare/v3.0.2...master)\n[![npm release version](https://img.shields.io/npm/v/oatmilk.svg)](https://www.npmjs.com/package/oatmilk)\n\n## Introduction\n\noatmilk is a minimal routing library for React. Suspsense ready, SSR friendly, and flexible.\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nEach route is an object with the required shape:\n\n```sh\n{\n    name: string\n    path: path\n    view: ReactNode\n    onEnter?: function\n    onBeforeExit?: function\n}\n```\n\nWhere `path` is any default pattern of [url-pattern](https://www.npmjs.com/package/url-pattern). The 2 optional properties `onEnter` and `onBeforeExit` are explained in the [transition hooks docs](https://github.com/bitttttten/oatmilk/blob/master/README.md#transition-hooks).\n\nYou must included a route with a name of `notFound` since this is the fallback route. The order of the routes does not matter.\n\n```js App.tsx\nimport oatmilk from 'oatmilk'\n\nconst routes: oatmilk.IRoute[] = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        // 'named segment'\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`.\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n..and off you go 🎉✨\n\n## API\n\n## useOatmilk\n\noatmilk has a React hook `useOatmilk` that provides routing utilities and information about the current route.\n\nIt returns the interface `oatmilk.IContext` which is:\n\n```js\n{\n    // used to to change routes\n    goTo: (toRouteName: string, toState?: object) => void\n    // used to generate the href of a link element of a route\n    getHref: (routeName: string, state?: object) => string\n    // information about the current route\n    route: {\n        name: string\n        path: string\n        view: ReactComponent\n    }\n    // the current state object\n    state: object\n}\n```\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onBeforeExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onBeforeExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onBeforeExit={onBeforeExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\n**Note:** This hook callee API is a stand in until async react has been shipped. oatmilk is Suspsense ready and friendly, and once async react has been released it is recommended to use React hook based APIs for data fetching with server side rendering. Since we are not there yet, this is the API we are using temporarily!\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md","gitHead":"8d4d6721c448588d3057213bd514c952c66e6765","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.2-beta1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-gvZr+LD6VZjmGGJV96G+Qimgnu6U7Y0rAk6OPMJzMjOAk2V6IvJOFCjod3fGp7LZuJcjtg/Fp6qmpzQ6KXRISQ==","shasum":"59891cea4a3cfe0a92b1bee714b68fc03d97ffc9","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.2-beta1.tgz","fileCount":18,"unpackedSize":579068,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdOGomCRA9TVsSAnZWagAATbcP/3G3TfWuATTWS6VeBPtF\neR3osBqLKiw+RhPnidlo3Hp9bLM641iTAq+Tix29IfrjVRc1My7S2BRUxlqg\nYHq+Iyv/8nBAeys+bBRmZV6OzwQ1C+HS+y/SCRjTv21oPTeX+J7/ecZAlOMf\nK1HvsBEaG2g/iHi02G28v0I4RFXow9J57F4ULFOMj10XJehhO0EYLClXMMyi\nXoMMajJdx02qK8KcSDXcX9VS06tvdZmxLbD9CSpaP3VA/O01IoNUWxglTLHQ\nb2pX21Ej+1/WVdKqu64kbGn4CfYzAhnrNjrNs6BhTxLVyqnV01GlxKsg0Eiw\n6kxqK6dWxzXS5I65RPU5Gtar4Zy8qvRlRe5oatO+jD4Vhe1cnCMvWANIcB54\nPMH7XPenrWdu8IeVrGx6JvfxZ36etoQ7BFQ3JNG/N0fO8qaz/egHToHvKKPF\nUe0CJlwu6P7Wq4YoROnNOh3G0b5n//VmBeYDNq8kdtgqK4NuQ/QwGWHwfLfu\n28kXMk55VMuReepvyM9Y09IbBjntuGx/l5dQRllhD8VXU5DWDzQ0h9Zdiq5P\nfil91vZF1zX6yL+1I0Nc/vMum6dgIdF83r6TwnJ759la2eTkEXMVU4BRbZ9e\nbe/LsCcZOa/KrQbsWvfAmnMoV9wJWESjKt/DJQK5POluGdmuzQxrLdY+Aw5e\n7rbU\r\n=sQRv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDohjHVEY2nSlDe2GVCxNUlFVLv8z0qwepRhDx8h4yIXAiEA9r2KKm2DMCuQ8M9+SATHWAklrQlfV8lbI59870EdULs="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.2-beta1_1563978277845_0.30359821774957507"},"_hasShrinkwrap":false},"3.0.3":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.3","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"215115fc2c34c5fdc522edfc05ce55fb970c4104","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.3","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-qa7ZHjrQ5P4AVqJGgo3wXXofp3QnomDX13ptDgisqzQGm5k2jIHRGSoJjZTL1lhW8yjOHqpy66/BkTocqbBDEA==","shasum":"1b0a82c51278a92cb38ce6e11bfcf59caf829816","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.3.tgz","fileCount":18,"unpackedSize":579062,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdPto8CRA9TVsSAnZWagAAcVIP/2uHASIbTTxbbWZ4E+6V\n/F7DbxWnusv/1k7wAcrfm4HuUAWzP3EZlixxztXpHEF5lP3TH/MRDBhtsIUA\nQ6ayEJko0+oJGoE7cpFAvp6e7HlBLnsaKmWyZKp7ztsXNqBz8JQ9QVxB5c/H\nKeJxtBDm6taRNmPn9EdSpetdtlohbIcMCaL6OVdrqYxv5ZyE4HRH4zgfKlx9\nztckoqR6YgI5V0M1SvN9YznSXrpLSjO0pacyUH88aIzsguNT7eqZWVMPFW0i\nkOjqWXTbHJGXyZ0KOWsXwcak4lzMWtFryULmpXY+DhgQ34g2VHMP4Lsm7zLT\nh7PGT5Nx9Qb9p7wa4osu45i556QwvU3LyAmmxV7Ep7qamp3EpwkUSxZigxB2\nbsy+rMeqdkmW6jzdfJV28wFcJHOHUSVfqamqWcYEpOEk6/rqttHaVYYdfMsr\nUL9NKw+wWXWYb8L779qwvHzJGHRUs8qq9C/1IR8as3ofWwOCGjlJTvzZiDjq\nfJxj98FadeXvVrttUVdQLbcSGm+x01l/zKF2b/j8Md6d6nsm6uES1B6NBUis\nYfi8dTU6iJqyANGr1Q+8lz+90Qed4EmW+UB00sqyfQqP6B1mNV16swzU4Jv2\n+Agu/5Y/Rb+x+9wp9eTgysNdxZd9GYczDDafJLGaMdiZs7gnQ0XJU6BUFUMy\nHQ9p\r\n=0xVf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHHPu3HI/vCIxus5ly6P+CU5OwCA9qmzPIMAcwh/YOM4AiATzSrmF1edCa2uecIXe+OENt6WMy0SOEDoqwKt7jaPLw=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.3_1564400187419_0.07630337015727773"},"_hasShrinkwrap":false},"3.0.4":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","jest-dom":"^3.1.3","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.0.4","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"7292207b6cbc036981979d81006ad480877c78f3","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.0.4","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-q8XpyAt/EHlRabaxyeT4vL1YlHnYHj3CIBmwajsJKNqrrilcD3NuRQxJuKh0+LvjYsoy6dJQjRpdMF27lL8bDg==","shasum":"676357fb23acb30c669cf7e06f56911288f151c4","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.0.4.tgz","fileCount":18,"unpackedSize":579286,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVCiQCRA9TVsSAnZWagAArE4P/0eiVAOQTiazEpwyiaex\ngnx9VK/BnB3BDDlUJazVQfTGHIjOF5KMAmav+Ww+JjyPxdcUWvfTy38NUvdv\n6dLN2XQihtzjJOF9+MJV7wWveLJJbQAOPKMldHBIoUglT/BYbiMtYT+XLfjt\ncuKpUgydMrkjdpATJJGHp3qBvWOB0KS1i4B1f0r3eEb/8NWBsbbNZZcqLJFw\nqv8ZsE3DhwLnyzPhJbrhvJnFKDVsU7ihn1/yptk0IuuZQ679QqBjfnOmcwvZ\n20C8qbs3/WnHj6e4tj9c+0/KzFoBQoNwgQA9Y6mpkNrrXMgdtfROa7f3BUpf\njkISSlB+/ofvcOOUxUbZ9iRuoBPtnaO9PXSvQRXdqneklX/zY8WLCjfYdOLG\nNd4cZ1J6B9v5Mnc3haKMVMVBVBKh5vCJiJaXmLMIPaWbZCfBdtkaHrQdvBFy\nvXMU4viT/bOEzaXn+5uuvjttiOz/OxAXKeDDQs+QqzWiozpfS2yN8UICEILJ\n85PS5CvCNqMgPJeQP7vvA3FMbnKmrbp9q9D2gArSU7hRlf01V1eWKXKt8SE4\nw09JWruZdgwrQdFbkZE4gDPQBJyoSbbm4OsRDNymP2mcc5CeGb2r0kQdfjC0\nlc561Uqj4imy8mbTo8fq2Uupp6QVYJuzDkbj7pJi6icXmFmTKv1yfrhavtAp\nq2K3\r\n=0JbC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtMH8lkP5Rfc6U9xHCCa+QCacoZLSkKA2UcaOtMxlGygIhAOtBiqoQd5GnYJVQ7ReFaXyOMHD1JCFRDbYcBCHhAzWF"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.0.4_1565796495538_0.7490063017847874"},"_hasShrinkwrap":false},"3.1.0-beta":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/jest-dom":"^4.1.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.1.0-beta","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"56ea2605797119da21102f0c59a34de5697cf280","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.1.0-beta","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-iMUhrYOsnNTL7F5uh4GNkL8gO6bu5uIinZvojQF6d7IhdBnyN0WpDvUtNO5knKDKGjcQwMSQqoDjX3a8dLtHSQ==","shasum":"b40dbcc40d1f741037879dc263018b7377153545","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.1.0-beta.tgz","fileCount":5,"unpackedSize":537966,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgkhKCRA9TVsSAnZWagAAoJ0QAI0KoWrFdgzvOC79msZs\nrGZzu3cQQZwrO8JD6+t0QTJdGl128EBTNcmnYtrzoHoISBYG7y3fd2ULyjWl\ntjcstLIemgGCyV/WMXby40++uitPQJFqFOv2OctkXxNI/HfRTnsyRj/jdfcn\nHQsIqXaD5UwqUovsmfGfIIk1nBlBe/JYq3fUSroaIVKqZlHNkTT4upUrjDDC\nhI773/F/7HA5fMvYAEmlkBc2PbLBWk5EiWkrPrvIdjasDajr6jBwqg8e08z0\nU4pjVrWy8+xXeHSgKU85dkSATf1TiBOur1MbaoWKJAuKyHgB0MVeAU91tOpv\n3bMcco2qYPTm8LafZivELC0X7jZkVsm6bWlaxky5pcqs4iZpRMLIhkp96mzm\noTFJVu0u+JbXdebgLG2zdd6tDEeDOA/e1FMdXIZcIRJ/EZ6/8SYBA28+UxQj\nDsdrXdInuLC+p9MOk0TrFAUKnA4/Epi8iXz+UKWKVDalbEs2TRHUqqYkSda+\nBSzyPjZ8wE7l+UTQNjb3WkOV7YjIsna9xYNQQT/saPn5tLThD75eueX9hd7z\nJPaAt3820AVc3AsLl6WhqL8D7Xlmlqq3avjFeioKS7mU5EvLDDCEyTathgIn\nckhgXGiveLlsa0xVyfhJBDl2gKyHtxf0Ca7+Qtf1igfIGDW5ztkARnGCQmdi\nWwd5\r\n=C+CT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGGSGKu6U5pvv/AmLHoilNGmZcNazIsS4qh818fQmKMDAiEA5vbcWCfpbtlIJ3eZIOFZs9kGBFjzDMxlgLuJgvb7zfY="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.1.0-beta_1568819274204_0.5266907480476595"},"_hasShrinkwrap":false},"3.2.0":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.tsx","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/jest-dom":"^4.1.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.2.0","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"25d79ffb40f36ba194fac64b9a26ab2a8063e4c9","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-4m6+3Whv/Rai+YE4otW/7I6Bf9LarEYdAqNtG+GkxKB3KhAgFiRfhD6kX1+JEwBg3q9AUGdsJYXRwyWlhkXfBg==","shasum":"f20b690ab834db5ff6fcf97762369b20952a5b05","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.2.0.tgz","fileCount":5,"unpackedSize":537961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnInaCRA9TVsSAnZWagAAF9sQAIMyaFZlA1HLUtJqzcPH\nzmXKG2NzUoyNbJOP7cWZq2YDYvEYgGeKeM/5i6b60f+3PgkEGF359vJcXGOr\nbrK8dKq1fjW1b2T6Ou6ocGZR5qm1ZD1dJqBA7+l2wjR0RmrHMF5eu4T2gkAV\nCJjro8iAgfPYbulbJtEBbjRahn73Syz9VYG3yZMprscdzmztDfzV0gjvm3eV\nwUR/rfKI3XsR0NYVZOsgaW6L+HVExHMbCL+G0C2aSOudV2R+vMrf4RAeiMLe\nhZAkIWwcqGy67x4cEguF6aS4Zl1lC20j5Av0a/KRNJ5aLdHApzdWAfbYWg4s\nmKfId67oXQhVABoTvkHxqFu7bxUoMZDlrsPXPL08f376yVzExmv3SEb9Kd7V\nlrSBzO8733HYqUO3n8WPQkI2muEjT0cyF+tCrdSmHZOuwK15qnm2d6qdaz9A\ncgaxw209vR5RgcafoiUq/CN3XLfmP841g9smD08bff3khEJD82u4qCL4WxUH\nWCPFL3l45TWtf1emdRYSkSlSkBnYZt58KbSeAE7vinnCgCUxhqhxIN13nYBQ\nUA1bLgODKxaz8jOGIBk4A3ryOzobi0FvCao7CqInsa8nwU9/JfCm+t0lluWo\nvrvtLWhRznOnGSpJACOwIasVhE6ANafIeJEV3kkRg5a66xMfzKwA50j9u2q7\n+BAm\r\n=HG9B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDNJ2QKuzEyBU+M5aKNSbwA/Z9TteivxRJRIdu0xML0GAiBDvdx7xVJ0VqDdey6eKqhRlMpwXdVacrR9xvJtCzfHfw=="}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.2.0_1570539993446_0.3080501268206537"},"_hasShrinkwrap":false},"3.2.1":{"name":"oatmilk","main":"dist/index.js","types":"dist/index.d.ts","source":"src/index.ts","scripts":{"pre:publish":"git add . && git commit && yarn build && npm version","build":"rimraf dist/ && microbundle --jsx React.createElement","test":"soulpicks-react-scripts test"},"dependencies":{"url-pattern":"^1.0.3"},"devDependencies":{"@soulpicks/react-scripts":"^3.0.0","@testing-library/jest-dom":"^4.1.0","@testing-library/react":"^8.0.4","@types/jest":"^24.0.12","@types/react":"^16.8.23","@types/react-dom":"^16.8.4","microbundle":"^0.11.0","react":"^16.8.6","react-dom":"^16.8.6","rimraf":"^2.6.3"},"peerDependencies":{"react":"^16.8.6"},"version":"3.2.1","description":"Routing library for React","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"license":"MIT","private":false,"gitHead":"9e69cc5bfbbd724a0ada34672be635a70d7f380a","bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"homepage":"https://github.com/bitttttten/oatmilk#readme","_id":"oatmilk@3.2.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.2","_npmUser":{"name":"bitttttten","email":"bitttttten@googlemail.com"},"dist":{"integrity":"sha512-PKTch36SY43BkXJUAMLQ3MHROpYcUAfZzKEuUicDOx0XUrhkuWzF2m4NW65haX9KQngkcey5MQOYgx8CGGBegw==","shasum":"c141cb03507cfaae7fa79354df0e45a2060a8e48","tarball":"https://registry.npmjs.org/oatmilk/-/oatmilk-3.2.1.tgz","fileCount":19,"unpackedSize":606329,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdnI4qCRA9TVsSAnZWagAAbJYP/Av661iBuY2xSu4xszzp\n//961B4cr4Qh9oUmI5Paxy3NkgL5+j9xQcf5nlBx7FCgY3BU1lVe/wlA7Tzz\n5NyI1gQXubu54zJStbBXrIfzxsrMmwrk+DY5E2rqjeTStw2zWfcWfvW/AXgs\nWNYWIha39JBjkOx8BNZfWl5SMMZN/Dp241tXh3TfJJH7gaE85tea+zJ/tSeA\n9opFxJyz1pvkzeOUSpOC+LKSinw8M98lDuNMcgzWta8QeTONDB7MgENbSXlG\nckKV+yjIGZQirVSZSYd8V1fCJSRqyoP7lm7TBQAPkynGHuZVMATbtKc92R0g\nUr8nZsqKYVr2XkBQGu+8aQhvlLLqDqrsYi+6QI++thmyXdyPR1m7KSX0ANL+\nIova/MRY8JuOTxNs85vMSZAO1K30aItXlG7yY4Ujq4Rlpd2TGYiCnPoibpo1\nOjzEc83jcU/0Niyo531morTkZDEzYZkmD7brgzQlEFd1aSR6526qAYlThm0d\n58DJz0ma50DDPXjs6ERUxBhDOJcvAZy4cnRK0fSAE+gfV05Z/LgwzEIfB8ob\nmBF1CRvjuYnAof7benNHq5LrUx1l8fHrTGblbLn0k5nfZJggbvupixK/MSsd\n0V8a96Z5pcXHdW2mKnheSJ2SVrL8Gi8WItePKGw6h9EsT0Ebi5r8ByqJOWWS\ntKba\r\n=axwE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCf2CaV6VzE1Kka9LvR4Q7JqquH+Jr8G2K4ptSyOl/hYgIhANlpMpa/d6/fQUuoMPxm6f23Es19jXngVmmyr2zDrnfE"}]},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/oatmilk_3.2.1_1570541098106_0.8375573617060657"},"_hasShrinkwrap":false}},"time":{"created":"2019-04-28T08:45:22.347Z","1.0.0":"2019-04-28T08:45:22.535Z","modified":"2022-05-12T00:20:51.985Z","1.1.1":"2019-04-29T08:19:13.123Z","1.2.0":"2019-04-29T08:23:19.176Z","1.3.0":"2019-04-29T09:01:15.751Z","1.3.2":"2019-04-29T09:12:36.656Z","1.4.0":"2019-04-29T09:34:20.674Z","1.4.1":"2019-04-29T09:40:45.878Z","1.5.0":"2019-04-29T09:41:46.722Z","1.6.0":"2019-04-29T12:15:12.069Z","1.6.1":"2019-04-29T12:19:05.347Z","1.7.0":"2019-04-29T12:41:56.281Z","1.7.1":"2019-04-29T12:46:05.390Z","1.7.2":"2019-04-29T12:47:06.137Z","1.8.0":"2019-04-29T13:06:23.237Z","1.8.1":"2019-04-29T13:08:13.953Z","1.8.2":"2019-04-29T13:11:47.279Z","1.8.3":"2019-04-30T11:12:34.942Z","1.8.4":"2019-05-01T12:07:02.019Z","1.9.0":"2019-05-01T12:45:41.483Z","1.10.0":"2019-05-01T12:49:47.188Z","1.11.0":"2019-05-01T12:54:51.528Z","1.12.0":"2019-05-01T13:10:35.405Z","1.13.0":"2019-05-01T13:17:00.073Z","1.14.0":"2019-05-01T13:29:00.999Z","1.15.0":"2019-05-01T13:31:17.408Z","2.0.0":"2019-05-01T13:56:44.127Z","2.1.1":"2019-05-01T14:05:54.305Z","2.2.0-beta.0":"2019-05-06T07:53:49.865Z","2.2.0-beta.1":"2019-05-06T07:54:12.556Z","2.2.0-beta.2":"2019-05-06T07:59:33.796Z","2.2.0":"2019-05-06T08:02:42.732Z","2.3.0":"2019-05-08T11:22:26.956Z","2.4.0":"2019-05-08T11:30:54.961Z","2.4.0-beta":"2019-05-12T20:35:20.783Z","2.4.1":"2019-05-14T10:53:29.253Z","2.4.2":"2019-05-14T10:55:38.558Z","2.4.3":"2019-05-20T12:20:39.962Z","2.5.0":"2019-05-20T12:23:58.426Z","2.6.0":"2019-05-20T12:27:50.699Z","2.7.0":"2019-05-20T14:53:37.911Z","2.7.1":"2019-05-27T13:02:09.146Z","2.8.0":"2019-06-27T09:08:30.471Z","2.8.1":"2019-06-27T09:15:20.528Z","2.8.2":"2019-06-27T09:33:56.234Z","2.8.3":"2019-06-27T09:54:30.695Z","2.9.0-beta0":"2019-07-01T15:25:45.094Z","2.9.0-beta1":"2019-07-02T09:51:00.942Z","2.9.0-beta2":"2019-07-03T14:46:38.855Z","2.9.1":"2019-07-04T09:07:10.069Z","2.11.0":"2019-07-04T12:16:22.681Z","2.12.0":"2019-07-08T08:32:36.403Z","3.0.0-beta":"2019-07-08T08:51:44.990Z","3.0.1-beta":"2019-07-08T09:22:00.445Z","3.0.2-beta":"2019-07-08T12:40:00.808Z","3.0.3-beta":"2019-07-08T13:18:39.793Z","3.0.5-beta":"2019-07-08T13:24:53.336Z","3.0.0":"2019-07-10T11:44:41.792Z","3.0.1":"2019-07-10T13:13:21.026Z","3.0.6-beta":"2019-07-15T08:17:34.894Z","3.0.6-beta2":"2019-07-15T08:37:25.909Z","3.0.6-beta3":"2019-07-15T09:23:13.162Z","3.0.6-beta4":"2019-07-15T09:26:52.379Z","3.0.2":"2019-07-24T14:07:48.369Z","3.0.2-beta1":"2019-07-24T14:24:38.110Z","3.0.3":"2019-07-29T11:36:27.578Z","3.0.4":"2019-08-14T15:28:15.708Z","3.1.0-beta":"2019-09-18T15:07:54.413Z","3.2.0":"2019-10-08T13:06:33.643Z","3.2.1":"2019-10-08T13:24:58.299Z"},"maintainers":[{"name":"bitttttten","email":"bitttttten@googlemail.com"}],"description":"Routing library for React","homepage":"https://github.com/bitttttten/oatmilk#readme","repository":{"type":"git","url":"git+https://github.com/bitttttten/oatmilk.git"},"author":{"name":"bitttttten"},"bugs":{"url":"https://github.com/bitttttten/oatmilk/issues"},"license":"MIT","readme":"<img src=\"docs/img/oatmilk-cropped.png\" alt=\"oatmilk\" width=\"380\" height=\"auto\" style=\"height: auto;\" />\n\n# oatmilk\n\n[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n[![Github release version](https://img.shields.io/github/tag/bitttttten/oatmilk.svg)](https://github.com/bitttttten/oatmilk/releases)\n[![Commits since release](https://img.shields.io/github/commits-since/bitttttten/oatmilk/v3.2.0.svg)](https://github.com/bitttttten/oatmilk/compare/v3.2.0...master)\n[![npm release version](https://img.shields.io/npm/v/oatmilk.svg)](https://www.npmjs.com/package/oatmilk)\n\n## Introduction\n\noatmilk is a minimal routing library for React. Suspsense ready, SSR friendly, and flexible.\n\n## Docs\n\n-   [Server rendering](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md)\n-   [Typescript](https://github.com/bitttttten/oatmilk/blob/master/docs/typescript.md)\n-   [Using Context](https://github.com/bitttttten/oatmilk/blob/master/docs/using-context.md)\n\n## Instructions\n\n### Install\n\n`yarn add oatmilk`\n\n### Wrap your App with your routes\n\nEach route is an object with the required shape:\n\n```sh\n{\n    name: string\n    path: path\n    view: ReactNode\n    onEnter?: function\n    onBeforeExit?: function\n}\n```\n\nWhere `path` is any default pattern of [url-pattern](https://www.npmjs.com/package/url-pattern). The 2 optional properties `onEnter` and `onBeforeExit` are explained in the [transition hooks docs](https://github.com/bitttttten/oatmilk/blob/master/README.md#transition-hooks).\n\nYou must included a route with a name of `notFound` since this is the fallback route. The order of the routes does not matter.\n\n```js App.tsx\nimport oatmilk from 'oatmilk'\n\nconst routes: oatmilk.IRoute[] = [\n    {\n        name: 'home',\n        path: '/',\n        // send in any react node\n        view: () => <p>The world never says hello back..</p>,\n    },\n    {\n        name: 'user',\n        // 'named segment'\n        path: '/user/:id',\n        // use React.lazy to help with code splitting\n        view: React.lazy(() => import('./Pages/User.tsx')),\n    },\n    {\n        name: 'notFound',\n        path: '/404',\n        // or use @loadable/component for SSR support\n        view: loadable(() => import('./Pages/NotFound.tsx')),\n    },\n]\n\nReactDOM.render(\n    <oatmilk.Provider routes={routes}>\n        <App />\n    </oatmilk.Provider>,\n    document.getElementById('root'),\n)\n```\n\n### Render a RouterView\n\nThe `RouterView` will render the current route's `view`.\n\n```js App.tsx\nexport function App() {\n    return (\n        <>\n            <Navigation />\n            <Header />\n            <oatmilk.RouterView />\n            <Footer />\n        </>\n    )\n}\n```\n\n### Render some links\n\nNo need to generate the paths here, oatmilk will find the route and generate a path for you that is derived from the state.\n\n```js App.tsx\nfunction Navigation() {\n    return (\n        <>\n            <oatmilk.Link routeName='home'>Go home</oatmilk.Link>\n            <oatmilk.Link routeName='user' state={{ user: 'bitttttten' }}>\n                Go to my page\n            </oatmilk.Link>\n        </>\n    )\n}\n```\n\n..and off you go 🎉✨\n\n## API\n\n## useOatmilk\n\noatmilk has a React hook `useOatmilk` that provides routing utilities and information about the current route.\n\nIt returns the interface `oatmilk.IContext` which is:\n\n```js\n{\n    // used to to change routes\n    goTo: (toRouteName: string, toState?: object) => void\n    // used to generate the href of a link element of a route\n    getHref: (routeName: string, state?: object) => string\n    // information about the current route\n    route: {\n        name: string\n        path: string\n        view: ReactComponent\n    }\n    // the current state object\n    state: object\n}\n```\n\n### Transition Hooks\n\noatmilk has 2 transition hooks: onEnter, and onBeforeEnter. You can use it for the global routing context, and also for a single route's context.\n\n```js routes.tsx\nimport oatmilk, { IRoute, TRouteState } from 'oatmilk'\n\nexport const routes: IRoutes = [\n    {\n        name: 'home',\n        path: '/',\n        view: HomePage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you enter only the home route')\n            ArticlesStore.fetchTrendingArticles()\n            TodoStore.fetchTodos()\n        },\n        onBeforeExit: (route: IRoute, state: TRouteState) => {\n            console.log('I am called as you exit only the home route')\n        },\n    },\n    {\n        name: 'user'\n        path: '/user/:slug',\n        view: UserPage,\n        onEnter: (route: IRoute, state: TRouteState) => {\n            UserStore.fetchUserById(state.id)\n        },\n    },\n]\n\nfunction onEnter(route: IRoute, state: TRouteState) {\n    console.log('I am called as you enter any route')\n    analytics.logPageView()\n}\n\nfunction onBeforeExit(route: IRoute, state: TRouteState) {\n    console.log('I am called as you exit any route')\n}\n\nReactDOM.render(\n    <oatmilk.RouterProvider routes={routes} onEnter={onEnter} onBeforeExit={onBeforeExit}>\n        <App />\n    </oatmilk.RouterProvider>,\n    document.getElementById('root'),\n)\n```\n\n### Hook callee\n\n**Note:** This hook callee API is a stand in until async react has been shipped. oatmilk is Suspsense ready and friendly, and once async react has been released it is recommended to use React hook based APIs for data fetching with server side rendering. Since we are not there yet, this is the API we are using temporarily!\n\noatmilk ships with a way to customise how the above hooks are called with a `hookCallee` function. Use this method to inject your own callee to completely customise the transition hooks. This can help with server side rendering by passing in a store on the server and client. Learn about that in [the server rendering docs](https://github.com/bitttttten/oatmilk/blob/master/docs/server-rendering.md).\n\n## Decoupled\n\noatmilk is state first, and everything else is derived from this. The current route is held in state and effects like updating the URL, are managed after the fact.\n\nDecoupling your state and data fetching from your view helps you keep a declarative approach to your codebase. It also makes reasoning and testing simplier, and greatly reduces the complexity of server rendering and pre-fetching data.\n\n## Credits\n\nThanks to [probablyup](https://github.com/probablyup)'s [buttermilk](https://github.com/probablyup/buttermilk), which was a project I found after writing the first draft of oatmilk which inspired a lot of changes and inspiration.. and of course the name.\n\nMade possible by\n\n<a href=\"https://soulpicks.com\" target=\"_blank\"><img src=\"https://avatars0.githubusercontent.com/u/37078572?s=200&v=4\" width=\"64\" height=\"64\"></a>\n","readmeFilename":"README.md"}