{"_id":"elm-spa","_rev":"74-b0ebd249b6650b189eb7d7c5235481c8","name":"elm-spa","dist-tags":{"latest":"6.0.6","beta":"6.0.15--beta"},"versions":{"0.1.0":{"name":"elm-spa","version":"0.1.0","description":"","main":"index.js","scripts":{"build":"npm run sass-compile && npm run copy-assets && elm-make src/Main.elm --yes --output=build/app.js","copy-assets":"rimraf build && mkdir build && cp -r public/* build","debug":"elm-live src/Main.elm --warn --port=3000 --dir=public/ --output=public/app.js --debug","deploy":"npm run build && npm run optimize && gh-pages --dist build/","install":"elm package install -y","live":"elm-live src/Main.elm --warn --port=3000 --dir=public/ --output=public/app.js","optimize":"uglifyjs build/app.js -c -m -o build/app.js","sass-compile":"node-sass-chokidar style/ -o public --output-style compressed --include-path node_modules/","sass-watch":"node-sass-chokidar style/ -o public --output-style compressed --include-path node_modules/ -w","start":"npm run sass-compile && concurrently --kill-others \"npm run sass-watch\" \"npm run live\"","test":"elm-test"},"author":{"name":"Allo-Media"},"license":"ISC","devDependencies":{"concurrently":"^3.5.0","elm":"^0.18.0","elm-format":"^0.6.1-alpha","elm-live":"^2.7.5","elm-test":"^0.18.12","gh-pages":"^1.1.0","node-sass-chokidar":"0.0.3","rimraf":"^2.6.1","uglify-js":"^3.1.6"},"_id":"elm-spa@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"n1k0","email":"nicolas@perriault.net"},"dist":{"integrity":"sha512-U21wyDNBWiwMjLR5zjDZAtTmMWGxx9GZYxdGF6zCF+JgyOtRj/Q8+Y1NFVWG+Qo+Nmh75XqH2jBRIMGJWG25iw==","shasum":"821010bf34139dca81191b600e9db34a27d012de","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-0.1.0.tgz","fileCount":782,"unpackedSize":6016880,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBE3bFhvGXEcP+6ydQKbIzv59VNDt15WCHgMpqI5rrVGAiEAqO6yCTJcLwORRHr7Ayxi1wDrKw4xXVcrEKL7o3m+sWQ="}]},"maintainers":[{"name":"n1k0","email":"nicolas@perriault.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_0.1.0_1518588741247_0.14131243487164902"},"_hasShrinkwrap":false},"1.1.0":{"name":"elm-spa","version":"1.1.0","description":"a way to make single page applications in elm","main":"cli/index.js","scripts":{"dev":"npm run generate && parcel examples/html/index.html","build":"npm run generate && npm run build:example","build:generator":"(cd cli && elm make src/Main.elm --optimize --output dist/elm.compiled.js > /dev/null)","build:example":"parcel build examples/html/index.html","generate":"npm run build:generator && node ./cli/index.js build examples/html","docs":"elm make --docs=docs.json"},"bin":{"elm-spa":"./cli/index.js"},"keywords":[],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","devDependencies":{"elm":"0.19.1-3","elm-hot":"1.1.2","node-elm-compiler":"5.0.4","parcel-bundler":"1.12.4"},"gitHead":"634f746946064ff94ea9a2ba995986c1dfb6d91e","_id":"elm-spa@1.1.0","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-/K/og+LQBaqH3ft0OYfa4H7Ecr5jDrG1HJwJdUStZ7TIV1fMJdIqd0avGQoyPa6yl1g6w0wh352P5N2WCruAjA==","shasum":"a49f7400fbee6bac1e1b178b2c86623e60caee84","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-1.1.0.tgz","fileCount":18,"unpackedSize":118046,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdvdA0CRA9TVsSAnZWagAA5XIP/1QC1DqiOaQe2kn3yZmH\ny3BcPfXp9wjpwHIT9Kh1VzE+2/T/vYXXG4KhRWh7IVY0l6j47jVcDp1sjQKk\nKJwBSU1MzWgyBxddNrJWqcxXpy8DGewAJepvqm7hTWLZg1jEHOmPTsuSFlsK\ndNo3k8x5XU+SKKjvHW2ATakMiWDURXE+Zv7femOQgLPSvMHze6tco8Z0OzZF\nsUgg9MwM3gA/gRMn7bwbUZhTIffPZASDFFe2/soTchzlqWzs2nfBIAAk9u6n\nwxhfJsmUBp+TKQnrXjjtA3tyxb4eXfTRtHZq+ehBayRgrvhITdY3COTt9YTS\nxxnUQtiakxjso+SBbfXht95mk0TS0cVV1iUk+7gZEGhxXs/bvE4214Qb6YFh\nrag/Lomct6+QZcP51IdBTemfk/qfCbc7K+OFlcFLhL5LU2IzldHQGBckPz6R\nX7+JEoGBOciOGJL+QTP5OWft5vKcz/49tbxw8tJAcwK4hmPbEPGyD6fUK4OI\nnPtd/BvE+/SfJFefUBB8HUPaYA4QltrMlv9ok+Yiw2g8oibaznWXDKLwd/s4\nlO2EXd8lojnCU4J/YmNmGq7Q3GKwUmSBEvSQhnUCVkHds///9zLHNL2npVe7\n5tDG0rW7FgOWY4OTv3dy8M91Fbln5dptemtedaflx0ESFHY5GOufZQIt9g7t\n6dnL\r\n=6xYe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD7ybhBhUR1f11Nfpdc/x3xl6LIkifce+cJg/WoeXqQBAIgYwOoyQSfo89fDk0tm7xlQR124XKAc9sSfovfYJINfiA="}]},"maintainers":[{"email":"nicolas@perriault.net","name":"n1k0"},{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_1.1.0_1572720692191_0.18369351858015492"},"_hasShrinkwrap":false},"2.0.0":{"name":"elm-spa","version":"2.0.0","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@2.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-ToVaoTxANxcE7twOOXAeQVHnu8WJEWv7/yHzGumD6OvOEIgULVfH7essJczytcM4PyT3vQowdTWnfwMaSkF0DQ==","shasum":"dba581afea2910f40ecdded721b4d505a871e24d","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-2.0.0.tgz","fileCount":41,"unpackedSize":268263,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2tlWCRA9TVsSAnZWagAAOg0P+wXMT7Q2jRnLImIoAHZZ\n3tgkMOxGKZr2Yq0clcGetWcYR7w6sdy1dNgkwrA1vhA8P948y4I/TypfRmdz\nx0klQ5VNmyZwh2cFQ+VSsLUZA4mBsNTHzEySlv/fMWj48sUU6Wzfkb5elW6g\nR1wlXir+GJiHQmb0kU02usnq1PCUrGYYzn6FMtX/6+q2kKGR1jtXcArOXaHG\nRG1s8VVlFSBBVROmlK3yB6+WmaKgKzr9YNlCaASa/VFSf7EcLFhqshMiQIcd\nh1cvTXBolQFW8AcKr75WPv8Sb0BZgfrX2ATSrfNhEGtczFOfHnkG5wlv7yVW\nxx1n7VpWR1lvpR9FFrbRoHdYNkR2vEFs99brRPSBg29OZszmIBNb5C4TJNu/\n2JecLDXMdWZ6VIpYBpCMFOly3rCTfKk8zkmTXHZ7SdwMsBtuP9/GK6Z2B7pd\ng+gwkpOFUrlUaj4VQMp8MS/N+VSqH3BApF24aIzjH+9zxCj7tHhZ7VySJFmx\nJEw4YwfAJkeNwcrOMMi4TG9Bz9ho5/XsqjLshhBEgs4bGo0cL5Fy7ZtQOKGg\npsKlnk8DN1roqJAETldIaOC+dXY+a/Zzkj8FCBmQf37943/HVYtfyj4vyMEu\n7CIuqoQWtbzxsPHOudikmMLrxH7eJaCzbGOt/+FDL0kCetY+l9GFF2KlzEbB\n4RSe\r\n=NhWl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2Pugv+g2UMOzK7NK+7HUiMS82wCJFT8wI33BHZaghjwIgYP+qLZ5UMT/kjrmSvhdy5RxjXalzZwoTq2nXyVdhUoQ="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_2.0.0_1574623573713_0.3298044672650693"},"_hasShrinkwrap":false},"2.0.1":{"name":"elm-spa","version":"2.0.1","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@2.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-WGKoXor+Q6jGQnIgC/f0f8QSoWmgLS7RNxR2rS7Re587DfyDKOlP5ytTtuuRW5gRNvuBBLtP9rVmsRYxwHOA6w==","shasum":"e56f95c7daf9334155c6c1acdb2a85cf986d679f","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-2.0.1.tgz","fileCount":41,"unpackedSize":268364,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2tyrCRA9TVsSAnZWagAAzqQP/1pXZ3aSP+EDYhtkM3jV\nUWyZPex8+pp9iJGw+pTv2lJ2p34kSsKYrssYZqsDYLyUtcsOJZo1XaPyhbXR\nGpPWFysXkV99foam00pudEgNUMo/62B3AgxshgGo10E2rMfavINCHCwWvUIw\nR4sQut9YwVVMMRNe3q6Py9mdYWNbItjVdDgZKqX7HlHbKf4qdjB+qzNoDF5E\nBVQiw/krjLF6i70kp0UmFUU3I6fixNwaoocElQaDEHbY/9K1IQlhHOlYDqYu\nYMJ15rDtcBV3yPcmfwJBUs1VJnxHJTOrrVjmxr9Az8i4IqqJQkzFYMMChJw9\n8MtVWfWq0nRn93Uibw7gXBPoBZ109cg4m/eQbtuBtR+tn8yHswsdyON5vaDp\nYrmfXV5XBMnQIG7wSgRSDxJf7mXfOFgDigoHO83yST0u/puOeMrvstyOZY1h\nBmZjITOOuhv51PwL2vJwkyYlC8lQYRehRkDepXe5Pd3nWnBuQHisHUvi3i69\nyIRjQhmfnyhIMYOp0cZHreNZz283URiYRgUpojI+PELXHt/XjPTdo4/XR6HG\nIGU0DqkHGWn+6Te2CkJJtxJqZHKhW0GYpH00So+XzXhIXtQl7mPatMwKPDWt\n2f6NzWHcTrK/NaIHBsO6//hsjBHqqL8/DbXtIp8FevEEwUB988OQyS/Ks+3S\noPFe\r\n=QRuf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE0/1qCrC6zkqXzwjC9uMrup/BTI5Rdxr3HKJPTloQKFAiAXfmxPu4FVx4s5q2c8+ONlO0L5f3FgTEA4qNohzgA2bw=="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_2.0.1_1574624427431_0.9804584779203771"},"_hasShrinkwrap":false},"2.0.2":{"name":"elm-spa","version":"2.0.2","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@2.0.2","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-KVoner/APgGMfhH8ss39de4xYhBmKeyvAt8ssXKCuYt3x8+K/HAfQkgnSFhSE68k2yOBtjh14Hr5kuMm3Vm2sg==","shasum":"8081847b762ad747f313ee1de4188a77487531a3","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-2.0.2.tgz","fileCount":44,"unpackedSize":270076,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2t1rCRA9TVsSAnZWagAAMeIP/iWWf/ooIORuXklN7h/W\nw0zetLKtr4RkEg+7jL3OCXM3jkMlxjdo/CNRPyKA03lSZlTwpkFyyCWhSbjR\nG9+smWbar/CO4VpWGum4AsGWHRAL6FDfz+kc3VhYjoh7kgexr2La5h1Sau97\nyLQqVlZVRplVE6UW9nen+9uQPbgc+xS0dnP5T6Fr7jXTW9Hy4o/em4Zg4H3r\nEocfS9iHv+oZjbLR2K+NI5T64w0C0XW6RMj/IDtybqrO/md1OCss+XaunF+1\nJwR5rqNovzOO+YbXqiZ4UXclF4W0Kj19RbpspFum5XuTh0JaJ+tWkMATmrpm\nnDnfF58S+2UFZuEbWPJmmXawijTqGjChsY3dyE0XJP9OWs16BTHhB1yCqYbi\nZ21BQlAmJDg+D+DIHkbeQGFJpM1QvlUHIMulabv8BnZ+LszA14K4WlRJ2IS7\n4FATF7RovsDzG3UspQ4tYVOgsNurKmlnHdXAail5IIKkszLvDsntFz+1j8Ao\n7tmO/8/LRZIAr08LgRVUGH6akX6EQuYJY6Kfkt4dB3e6umqw2Rz+PvFg/he2\n33RDynIYv0adqcSqznSCvd+N4WSl0BYkuttHSTaFSyqU/VIo3rQ9JOs9la7s\nWfynhLAEPd6/RpDG94j4Hw8sMq1rV2x+mgKgnLwKuawFSKFe+/7UfmCG3E++\nhBbZ\r\n=gx8h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDvNLBLGAazLShtzpiIKka9OaDM1ZT0QIY0CQIDvqVBJwIhAIajxzaRKAWVKyKsSx5e89NVpoCDLAbc+vG2aDDlhJsy"}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_2.0.2_1574624619357_0.43967117097345"},"_hasShrinkwrap":false},"2.0.3":{"name":"elm-spa","version":"2.0.3","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@2.0.3","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-SVZh5UBLerW78VpIkP2Bk+PfxvHyBs8m+dI8E73ncEzg2ilxL8Pnu23HUB9LWAjP+f26YPv7yzWbToYmg7t4RQ==","shasum":"ef130113c31d5990966733960662904b4d1fa220","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-2.0.3.tgz","fileCount":43,"unpackedSize":269555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2t32CRA9TVsSAnZWagAATWoP/iVx1Masf10u4NYEpxek\ni6J3N16hy5/lnrwrhvatZvV7r7mnUtJ+p8+cWCSzch6onAPcKgZI29akrpIg\nviIaox18q4yLQWuQQ8GMM6DqmqaXpJjTkyWM5aefyiN1sSNgIqlnzNnvdJU1\nPKJg02OBmcRXPT13wTm4OM/8E+NNijR/cj9PQHn2iahu6WzLyLA8kDXLg4BR\nP3uCDIMqXiDpXxEj/yqHKLQCrmdRsnebyaXqVVAXUGdKKYe9MTu7wciejA/V\neUSErvidrpGuf1pRwfOQ16jhekGOb8HGmR4WP12qBLOs4PN33g0geNzBfyU/\nCITzdnB214hZOamJPPPFQP7VwAI8VBjz1+sI5xMBKVm3Ewa8x7Qyf3hw/p01\nGyPg859lz/c4FRVGvCMIco2IB2YbeChkyxymLEhfqrWFEc3OQy4mUtkjvB0u\ncFqBFPUKcZIgNH2eotPquWKWliPi5nn4LE+CV4PlOAPB1ICN1m0EOAHW5/IU\nrQgS6ihPIyd0EN2w49cfaF/zXNhOsF9xPxLySha7yhdS4Ddts2oa7xaT3EpW\nqEHvaPRTVlAWeT2/OvKz0emBBYdvp42AXPqov4P8oKDacOZuy7J8ZAtpA7D/\ny0tYgGyl71PZkYv8jKFB+P2lqjB4xMDnR32ud6RIpQ4c6f+hgzrbr2PANI8d\nk3QO\r\n=y8/k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKgwh3inYBs8IvEbdLvWrKTYdNQJQgrwu/K3gXmt0R9AIhAOSvxoj65i65Fh/t/lT5kwIhB4oqfjWnuHSreA4PSv1i"}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_2.0.3_1574624758213_0.5359666112401222"},"_hasShrinkwrap":false},"2.0.4":{"name":"elm-spa","version":"2.0.4","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@2.0.4","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-j9CkEEy5iYSuiy6/mgSWwI0eXIFk1ltRYgpKyrjZ1hvuNur9j3wKylXniFiODgWr2Va//6tzeQRjHnUJ0fCfKA==","shasum":"a08f094d83e1901b3b566a9caee30dbd381186a4","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-2.0.4.tgz","fileCount":43,"unpackedSize":269555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd2t8ACRA9TVsSAnZWagAAjCwP/RxqajTp69AF7IQwteBj\nO2O854Y50hxvydbl9jZO4zh83IyHVJP8WLeiifv/A/dyF5RkViGzNhl5CfQp\n9+woIcfiiuW1Ir/l2vl8wBbTJfAvOspgV/5axVuV3A9hcy0rJd449SvByCT+\ndWzQI9p2Zotn6Urmdj7ecNNBmYtNa2nlstNa5G8c8YaUMQu+6iKG1BWwgugH\n4sJnj3Okz3gFE59lzp0ByC6EG4n7OPbrCwSbtE9V1sD5pez2Ow/gYqMb80K8\nTafnmwjv1YpY0TYeBHWbn2MV8Wj1OgOk3e4tgWW/iDSn9yEBpAPeySymtJPT\n0bguptU0dI4uqsAnNbVZwrcWdESWQ1ZNbj/FBhmt+cp/SPr8cuWxcmySQg65\nKN1d22sFA/o8BoXMSOSM7jtKilWmFsXVeHsEbIKNXgNH3ex8v2lfwFW/mScD\n3JWUEQ/vfErb9OGXXp2HfF1FyImDL1XpMiQqJmn1/heqXs/X4niIa8yOPUOj\nHhjWo5mbOh9onpoKGDS29CqwsN3/Xd+oe0fF2lp6xyM/AigYQ2510zhrUiuN\nFUHtekgWHf2m2lsPpGW1nyROYssoxc1ikGwPjJb9eP24NbenElc7w/M2W5pV\nYSET9gXR5wXNx1WcM298CoZPtPPr6FAXVXi6/ksSAKTnNaj6kXe6E/YMucP0\n9ery\r\n=o3FV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGmd9EaIIpLxgiLLZ+NOjFZxdIIfQVoainh3G5Zel6gQIhAJB2Sl7XX+W/BSPwoCnA5+Fp7MHHWjGCdtMeyk8W0Xxw"}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_2.0.4_1574625024069_0.5485692169365348"},"_hasShrinkwrap":false},"2.0.5":{"name":"elm-spa","version":"2.0.5","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@2.0.5","_nodeVersion":"10.16.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-BIlAtNmoRm+Br2EFz7Yl81N/hIdmm831HAlqYpazEl+cRBZJITOyTtNM8RDSaSndqXzFOhkXNu+bMVQWzUKrCg==","shasum":"e52f15ee95a5f79a627f2822939bb3c2a0f95fdb","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-2.0.5.tgz","fileCount":43,"unpackedSize":269799,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6cUeCRA9TVsSAnZWagAAD5wP/i9WswTzb6ZnM4UTy36i\n303huv0c95wmhPLlEheOoCmJPLBpEEgRk5Wkil/3ADntwQF8ur/lITPIdt0a\nn7R3tEdE1uLIPHpcHUrIFXq7lA97N9jQXHDIv7UllX8y1vHe7EaYmzKkTm3B\np66I6ceKTcZQAixzvWL7+z4nHKXFFyT7GNBxtYAw8yHOlye6nQ2E+c5Ov+eT\njB4WXjJyU19U7zUjPMnY+GxhYktX8n1ZNfdEA2gTv5nhYP+8QX8TmPs9JkUp\nHFjmMhuvweMt6wcnMzDUTqu2BuvdwOXiuKfngLmhPzI+06p6WXqGWcl6sjXs\nMbf5C9soRZkBa2wlsfYQAZcV2ugqLXmtnLdJoTCvbGyX4chWjiq6ygzhZI+V\nu1XB8od8rtY62wclfYiV7KFu9Vf1gcaY1oU6UxKk4yVF3Y0qiG+d47cXKbPL\ndHh7lmSxMkjdOKuHeJ1OJxWuz0frz1H5LN5BL03C3ZTT1lU1W0xwtYKRlTWM\ndw9YPEqhiaD5n53WO68sj7DqRQjS7J2nz+vXnYG2dgY3lHWu0WdofdsMo/cb\nVNrC3JCPuBv1NVnD/VnKgHtfGkRPvlzYcnrOFdbWuRmBcMur4PISaYHgi+iX\nfU/x7MQOPxqGCfegxVDGLocpxMmwc+9HWHHdM3eGjHvdmbgi/p3Dv7JGx3NO\nHaPT\r\n=JZxK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID2WiZCRiAyF9C7txDrrGQrFqVFcVoVYTjrB29aDWYoGAiEArKJgyVxoO+F0IDttNHdH/xgpiMw806/XHTb+EeOcYEo="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_2.0.5_1575601437964_0.19911204757841094"},"_hasShrinkwrap":false},"2.0.6":{"name":"elm-spa","version":"2.0.6","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@2.0.6","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-E6mfghbL9RXiLoxGEV8BbqQJT6guClciduM1fUuxBtEm6z+ZTRhF8l7Db3GCT6qTAwMfT4zvCuQUh6t+UvoYHQ==","shasum":"0253edb35f20dd4cc77c3a4696d841a195f2e720","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-2.0.6.tgz","fileCount":43,"unpackedSize":274655,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6d+TCRA9TVsSAnZWagAAluIP/iw9bZ8lI6R21UKf1WAn\nuFp75ZSMGLq4u8xjx7pT0qxzWQPnZP1w3zbCFfZSNxCKlpHD2Puo8i0WRRno\n47hr2D/ZmQrYyJGpTFPjyHuiPNI3PNjAKDtI3GZ41cnrzSrHDyCfdSsfJ49M\np/P4ux9ooIPp2LR9ig+K9FQMVzIISLnVldZxKoFWoZyU+d25P7qvqjKjYjJ6\nOlKBHFZiS+Bhm19B/DlgCjrxMK3kSJIV53BSPlb+AH5Vw1k5iz63yw1uv2jk\nB6MBMIc7dygrzzHE7BNIzEC2pAt+aFMbZjjYHSe1CJCsZvBxC3u5crw8Pdm0\nbQHiUDi28M2OVFhW8QGRIhmz/vOWtzfXIyyA/YagYvUShTtnSK0EGxiotMGU\nENfr6uPu+DNQhhDRm49Tb7/0qPqRsYcYxW/fUbT6iPKbTwFj4NsUq9Gy3e7l\n6zupgiV/JVkuFaysjg36RCAcNeAWyEV3pXAqAJ000CfRssrAJx7ZifKHliJD\n5qcopDJ/7z979smfBNIY7qDYI49zeXU5fCfvbP2wLcuYrzqi9yIPs4cO9jE9\nzyj74zg7kpIake0y70MWRfJC2o756bqn/PZYjCT4UQudyQO4d+MIAzkoC4Y8\nmF5tIW/7qDnW3kmfy8Qh2q5mlH1hxEy+dnMI2S37ntVoIB7KqyDjFF0X9UoW\nOeC1\r\n=FnHp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnHw/hJU5V3o76R23VJ6Zd4jXLWyPMK7izf+OZZuUU9QIhAOG+ZClZpR+fL9J3aiQXIkXJerbFYHjrzRENCeRd5zth"}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_2.0.6_1575608211246_0.28113816560181215"},"_hasShrinkwrap":false},"2.0.7":{"name":"elm-spa","version":"2.0.7","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@2.0.7","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-aWwwr3Jll4k+UImd3dkdbiKFzDQez2JqgalMpNqXqQKOUxc6/InO7Q/5gduPPIRD4E0zYa3fBVR8bADljZSA9A==","shasum":"fae30da24867737da1c2c23652e226ff1f11dea0","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-2.0.7.tgz","fileCount":43,"unpackedSize":274623,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6eClCRA9TVsSAnZWagAAo8cQAILuPN9f99fwr3/o0+PZ\n3uuAVQWufMLWhXHa0vhqsts2jdMRLjJgiftReR5UxalXg5QPi33eHWTXWnZ+\n67oMkNUOsqpmUpRAlfXj8VxvmTJWOKk18L7ZLe02VGK4SGzf3k7sZnDjAMab\nOTBRc/b0ajAgrof1ulbAwGpWkyLfogmaGJWSYAtqf9BOE6zCtwKMOLGXdfE1\nAFM4GeOVzyC3bkWiG471IW4HYJcug9sOY/W1uW7L9cIgAaUiwTULD/9I3ffz\nilW56j8OSsqSg+keV+CqphWefgVkSMiJTzInr0PliZG24p+BrlieFcMAvdbT\ndtf6Zyg6PO+shm2AedGMqftIMdKX31sUUCo786dFEbOLKuhv3bK+nSfF0TYh\nyWG0yzCTue+0swnIf50osr6/jJ/bWN9K6DXd18+wq/ayNwNo96DTlZrFTvh9\nKChZRcSBgY56RKEts0RaVBWtx8Eug3rEeDpWFkeY4zNyLIEorEwvoL4ba4YD\nspq5BdkqMd8b8h5/RLO9jdZr5BzQMOpw3bmEQSfIxsLT/wouArT60V0Bn4hB\nX5syPZzyq5haUR9FW1lfVxQsOWKTQJbTqd75lGhAOz1snboMifkCqoyvnBYB\n9RKpLABT2FGmiq9NEY+IyAcE/E59tStcpF0tC3+5Od6GOLjQTonF/osE/M8c\nDtjg\r\n=eb4/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB20I/Go9i+u34AoOzJgqNydgZ3OyZqOod1ctUA/My8CAiEA8QlcnBxP4iEhIfUinbuNQcdX+7hDcyvzmQtBQyrC1xI="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_2.0.7_1575608484474_0.8312222194035566"},"_hasShrinkwrap":false},"2.0.8":{"name":"elm-spa","version":"2.0.8","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@2.0.8","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-GhANub7p/XB2uXt+tudoCMW6EDCJmglHO7ih4zw7PLIV0yHr4e4iiOekFr4CMdBfh6I8fAd+m6Wtl5jwhl+cpw==","shasum":"1cae3d7a4fce61f05d5b6ce4b7830cc0967ccbb2","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-2.0.8.tgz","fileCount":43,"unpackedSize":274734,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6eFyCRA9TVsSAnZWagAAmVUP/Rf3VcIH6PTpRq7+qbcU\nB90zCj4Jik1pLRadc09nNS/uug0GA7ziZ+JeH+8EkQg+KIIJZZVhztl8zZ7b\nLiHhl4gJRKVnN+iYorcUAEJl1oSK5GFnP7k+doMvuKER2nQPJ5r8sBFn4T/m\n1/0F5+bVrWUldP+X1y1gA1yuzuZNC/6MX9dOW/moh7ZBv6tQQ8guUzmVju6F\nciAxBhfKM3Ne49MbAYrG6oDFqUVRHgcQ6viy9Hx2lOlh1I6hsm9wkOOAYHcN\nKxPEoKulzxF3GSi0kA3xQfreoAQbR95ZmB3aBNAgsry0YPDJh77X0Z7uzfnA\n7cnWR6DUoTQdwyX2nKtLwYjZCp2FwT42/IFUnHuf+yNomxJkzzloAlgxyDZA\nI4uVRDGN/eii8IEWAcglUxhODH+8H5X53G7DMjrbKmjky1QNDBmLCmy5Nkwd\nh1mzJ5Do8PjU5xeHhYs2dhufpdlIa/wUz3Vd/0bO5a71izPL9ZMBcvY4D6JC\n41VjAtVyLunVyrfOb4D6gvP5qgySjnpJXPWRpkt7BHLs4ySKu/6BnwP/UlxA\n1I7NpIqs+d3+ZN6DGPlRZy/3Yc/sEE7sUJfLIHeXBOPX07g8+yxuNeFkpd1a\npXzz/JicjF+/Ghf5OHlpeh7dEa85lsTt94O0oBaG2bXpvkZRKK4n8cCUDnfB\n0aJu\r\n=SHBF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuWNVoMvm1hpwQtcQunViCXlj9lJB3WF0I5VthajjkywIgNPx/+w21fzF1vCtTaTBcF50qTcvhfPfjHZ/twTQ0EJY="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_2.0.8_1575608690367_0.8481497157352131"},"_hasShrinkwrap":false},"2.0.9":{"name":"elm-spa","version":"2.0.9","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@2.0.9","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-Y1G9StKS/rjSvYDBDNDrMwb8jfHR5WTBwH2LhI9DM/TZj5UVZQDn9Dgx6oMlIURj7NKnT+xaKDpFh28c1sI+Rw==","shasum":"b80d623749b816d685f78c2dd8239acc5cfb9e68","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-2.0.9.tgz","fileCount":43,"unpackedSize":274943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6eS5CRA9TVsSAnZWagAA0G8P/3luNdyx3fQ+N2Xl/EJ3\nhAwEFmSPhZYav7so/gjwzk/RKMoGe8n1k0s95fgW4MNXU+2UhVbBKxLEFGJb\nuAXBGz9qqiT4cskjSeWtHu8FY0HJGtgKvwRK8jfvtSpNMQv1b4Jmr5shHnaK\nbDrWd7UGlvBdlREQ+3OwD9oYAgF2H5T7r0WyH+sUsBoKsvjD4p91J7xMDRW2\nIVHYohs0xVv3dr2NH6yIb/Uf3rTlqY9FWvu1dSnWR8ws2u5dVFk+VTnk9vFN\n0k4ZLSC8Dz5xfnJDNhkvJrxvbbHkLZAiDluBadw2J0V/J2fmzQKwvegNt/Kv\n3g1CqcE2DWIyteYFsME8UVFrC57M9jDzSfH5QTcOmiYaJEQuP+j944l/rCEp\nTrC2r5la4k5na6TlqoIn0stnz9KiJz6jTxxbSdYBSPZmD85n1MIQxFGWqLl6\nVG1Kyilgk5iDgg1z2ZDAbk30JuGEBZZgAOkJ6SQ16eYCeIMInCVCG8gL4fS0\ndxKpXDuvdKgVqepnPaJaejbGdyBWoMnscCCrT//ogtxTsMIwAtB4bKIyxeTi\nfdLRUl1ipr4omSOqDoZYScqmtgEk4Cf1Jgy8Oiqcg6j5P6ydsPIzWAdTzV7s\nesBb2jjm8NfI2HhKCeBYggEytWWpbsWKAyocZrW9RLomqf0kDcwf44o+6uss\n0iTX\r\n=Kknt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+DYrASWd0NisMrHcLvXR6ifh8dGEcXZsvlSR51JD+KgIgdAWiepfHbtzTuCI8aYLzEOX/0CII9Nk0JNgKe3bpSW8="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_2.0.9_1575609528714_0.17093015798854005"},"_hasShrinkwrap":false},"2.0.10":{"name":"elm-spa","version":"2.0.10","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@2.0.10","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-UtOTP4NDnkSPaf3V5I2h9PGCtjF2/9NIrYK8ctdzE24knR1L8QImA723t57RYTodQAs/meDME3sSxNoCNJ10hA==","shasum":"ecf8eff300179c7f98bb51afefa7c4087f4b26ef","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-2.0.10.tgz","fileCount":45,"unpackedSize":270090,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8VhtCRA9TVsSAnZWagAAWSgQAIqwQHkS5nOVm6MB5b5B\njTfkbIAn2KQoSNrGY3qYZngg2xLAcXCHzcC7bPX8aLEdNjwsDRiLBAWulD63\nsHn9auISQmxsC825XVU8xVYDRsLf+aN5BNCSZgqQTj/5LDcxj7RGxbJKt8JQ\nEMO7gSrDDvvBGiJ6gaf27EuFjGNg6GaV87SzEN+laRA5MOeEolGeCyOqHHQV\nVnmnz/MkpTzbVrm19w96deHo33HCk6vrzm+XrG5iyNVywMlw5TlvWtxWpTId\nS5Gm+3jKBQcNFBqo74qvLRB6U2AAgqGZW9qLUTlnGbSNlm7yZGsGFETq7IQI\nm3mNNdWzBokKM3GrBPIjNxC/HZay4pjEJYKC1OPUz6JJH2Jy5vTYzjP+E6QD\n9L+9P8nBTYVO5J4EL2hzgWUXftim/hptyEYXbk4OSyd4910TE/Ci/flU9j8i\ncBg+XEDZBa/EeklV1YH0XPBZnPr6hzTmpB/xYIx8cVk1ePxoeZEGsmiGYXOc\ngc5st0kY6nPhJkF6cLg7P01n15xx1mIlOB5t3oAa9tPix2H0nUO/cxK0V4+1\nXFWSt6w/w69xRN40HiGBynx+I7moyfmjOh165241FBJyd7ZcXTjysi17no8b\nMDKN3dFfGz0lFbA4ngbKC1rvf9bXJ1fZJroTMzqiEcdYf7PfRWNdlY12CQZj\nlO3x\r\n=sItZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXWvOlOzC5cmnv1IMPopV46H2N4oS2thC+pwJuQAyJzQIgEXvGIXTjaJR3E0bEKKH/QbJ5jykJLdid9iHX16ZrIKQ="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_2.0.10_1576097901466_0.17489339010014593"},"_hasShrinkwrap":false},"3.0.0":{"name":"elm-spa","version":"3.0.0","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@3.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-iHCv8EUUyKjYxKypfSMUC5mpPr4pRzSbhenWHh94zeQDJmnzW/JQMWvhdVSRfEGST5OK0vHtn5jcvNPQj5TCXA==","shasum":"cf3828b3da8a454ccd64f4d42e655961d20a3f12","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-3.0.0.tgz","fileCount":45,"unpackedSize":270124,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd8XyuCRA9TVsSAnZWagAAIoUP/1O65YT4u1aVRd3vto2H\n5OrF40PVbiyNPARtIBnFZJ34II/Lvx8zWAfsv9IFlCVLGJU4NhVplmvGGi+G\nn3K1dde4HV0d6ZPL5A20K1QJtmKydxF4B8PEBpxP2Q4osYyoQaSGlHXdkSpK\n8AOOMRSt2qOBz7BO3vh7YWZVRgm62OBoUH9Gcev4nRRC79plL+MQ9mS57SV3\nchNbHzBwXDyAKLOP4nj56jnMMT7LCpwRfxY4AZ3CZpR/vyFeqhj+m15gbHxO\n0+ITQCxV99M81V6gbYn09Cmr1vFBYGPhwaBaLDOtzhlyDu2FIYMvviz8dvK9\n6ZR8rUEqrfx/45KcKCAF0W0l6g/Tn48+JF04/gDnUQxVJ4S8a3SL1/qXwbXW\nAY/4A2lAdcdtStgj75ix4HfzXdU00/n9vwDKo5/GbraHIQTkBl20tjTC668H\noK1g1qwlYtzr4YoTPqnpIkFJE0cbCXUUcJyq6coOQ07DZmFpdJwmGOSKWckp\ne5mf7GJ1J755hkb1kZS0j4ASb87ypCYaWpbjNL/nXmBPKxDL2WSlzco1UIOp\nIYCND/zu4yMLv4IWYAFkgKFuY/+dxhOV+oesaanN3uD3I9blBB1jX1zW+DHo\nnw4JXtXVhEKnLVDyTMjf2npcGP9dluwKs7fhO9/7tcMvwjZxgLrFT48OAwtc\n0Ssm\r\n=mfkh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDi5TTVmxXHhAS2YdlKmLOz9kNkCE7ioMf6W1qPfZ3GqgIhAKzcD/ll4d4WLhkAF5trQAE8pdB8oGP50hk53VPLk+LP"}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_3.0.0_1576107182463_0.501183338598153"},"_hasShrinkwrap":false},"3.0.1":{"name":"elm-spa","version":"3.0.1","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","_id":"elm-spa@3.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.13.0","dist":{"integrity":"sha512-DFX8b1fHij1VE2Jizn5ssWN2KMvA5x4rlrBwSZI2OobsMUHtpKM3RaAr46vy+1ezO96jWftk/X+fFXA5qlD5UQ==","shasum":"69905ac2e2679499e055c7592a90bfe3f46d7931","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-3.0.1.tgz","fileCount":45,"unpackedSize":270218,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+PrECRA9TVsSAnZWagAAtloP/jR85l2bF+BZ7URSLjMm\nUjoTXTkCb13OFPHZ1RESnY+3z/Bzba8BwtJW9jpQ0m2wo0J8ZuF9GNgc3ZjZ\n5yedFg6owee5vpqEViGBfiAC+puTzXH9igpnZ4AKHJqHy/uY+ieaWFR3dHE/\nuliZRSPssStJRuCa2jU1rS2O1Y7H22UjLXEdLcQL4fQY9txDRKTHK31GBQXi\n/2nN87IYTgBjbe7zmaLP7f/cNIn4NMk7wm5Am1NzIKuq8gk2oOds+3c01Zsi\n3FCUd5zGE570CYp8w4+EcNWTJzAE9fq8dSHd0+iIeBhqMsNBI8KOZ2DBVJWw\nSnzuOaTzh2NmsRJ9+CbpRLF33PS/9YensN1s/Bm9pRbNRHpPsB95nc3iBm0w\n9ZQhvNYLqKWLJEroefwbVKGQ8B+bYGl7S32SrN8xS+IthagAOhG0idEtg0Ya\ny2OW95r9OtFtA1nicABYHAPyL/IQ/epEI9ediX5Wp4aVUN1CTGwqMwBZ2jrI\nAhAmK5/pqd5hIFTv//FCZhAF5x98hV6fGkRzzFKLZbiNnxyPt1yQHw/L6VLI\nfWRXqC6QeMD5MrPU3QcZ8PVw6VTK9R3fjaT2Iywbbk5EM9db6L/7yKed8NCl\nIrEg4fCANdterHnK8OysBSPc6F4Fkmglb7hn42j1JtxfXWAgSjS49SYerlpr\ndfS2\r\n=2415\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEZFq3OFTuRrkBu3OY9W8i0sn+fr3efsN1CUf7gMo+XGAiEA+nZcruf8VnVarXK8BCSkc7lnivDnqU6yuiRAdByVapo="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_3.0.1_1576598212053_0.6136992819965825"},"_hasShrinkwrap":false},"1.0.0":{"name":"elm-spa","version":"1.0.0","description":"a package for building single-page applications!","main":"cli/src/index.js","bin":{"elm-spa":"./cli/src/index.js"},"scripts":{"start":"npm install && npm run dev","build":"npm link && (cd cli && npm run build)","dev":"npm run build && npm run example","docs":"elm-doc-preview","build:example":"npm run build && (cd examples/docs && npm install && npm run build)","example":"npm run examples:complex","examples:docs":"(cd examples/docs && npm install && npm run dev)","examples:complex":"(cd examples/complex && npm install && npm run dev)"},"dependencies":{},"devDependencies":{"elm":"0.19.1-3","elm-doc-preview":"3.0.4"},"keywords":[],"gitHead":"b14797da89bb278d07d1913130f66687e9a46432","_id":"elm-spa@1.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-cRdvoE4oz/KhfIdWtm2GSq5mJYkq1cK3ObTSgQVFO4/kL3VV+3VGQlypBmiM1aE8gY/gLMuDzM+gdly2uzAxCA==","shasum":"308a7fa86eaa99aa40be445a8c0ec762f74b486c","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-1.0.0.tgz","fileCount":156,"unpackedSize":541534,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAVzTCRA9TVsSAnZWagAADpIQAIJVAlDtJqz1QhrnNIsW\nHQqZeRV+JxheQy1/f5i+EJaAr7Lk24pvkq+2m8UMtnsT2Ctrptec1/sDSBoV\nXnUmkpdFKQojUR99VQw6kR1Gr7Z7iT9YzJMAfE3l0YI1lz2MhUSHPZgO75sK\n8mQhJ5R97gYuYADuvPoFosgS9J6n4ULKgDTAZ3Gl7F7BwjKC43FRLdoYurZA\n4aOdj5H7UktPNEjWCcco/rFFKtgvNQecNia8UtiprM9nba1T70Sp5fd8jEUY\nknfEMtfiv+efivTXJ3WNui3twJZrPzLNb8fLkTFa4d5SKyJa7J5/I09b7CtZ\n2HTItd4yTwuY/nxGnJoCbFl//Bf0DRFczsYLXoP6jZPMHAWivuOqRTUt5Y/N\npCxLQavXT+GlnDq6ftXRnJKY1tdyAbrz3fs9SVaTA7slko80QBWsedAkp8Xs\nJGEi56CcRx3QtSlHo6f87pFBkbV178Y0oER+yFu+4XYm4bx7yUXlWtdra1QP\nE1dpAvBy+WK8AtG0TFDoy4sRWNOPI02km8QDTrFnTWjUauvd13aZEgrj7LP7\nfDcgrBon33DWCnidt1oGw6IbFNUwT+ZSY6tmKXmg1QwrLstNPmjw57jTYa9G\nAZBmPmIQeq/PY6upyOfb4AttGSv8MnIzpdreO6KIBZtwDlXbRybCs+Fgrjl6\nB885\r\n=5+Cc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDbP+bIdirXXpHsWeGtqHUppNphF3c84kAPcHSYzKvUAIhAJRzgXWtrSDqwm/TiYfhMiMla+nms8MvV4M7hLP2kO0N"}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_1.0.0_1577147602409_0.16430753349019267"},"_hasShrinkwrap":false},"3.0.2":{"name":"elm-spa","version":"3.0.2","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","test":"elm-test","test:watch":"elm-test --watch","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2"},"_id":"elm-spa@3.0.2","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-1If08KY610//NE5i0xbbo9fliYEYHqjQsiV5gDlIpuYSF53x6Z5sTo70fWyeR3ldwjbVZhfXGKU/25zxUwEuDw==","shasum":"b0062a45d62197c56bca545a9d0343b365351d07","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-3.0.2.tgz","fileCount":78,"unpackedSize":361362,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAqmoCRA9TVsSAnZWagAAE/QP/RHGpF70SPWQcv5HxRBb\ntkjtnbGyDBeZt2P9KX4w1d/Xd6S9WGTNM5m2TPseQFF7qtzbEivCvVtXbpnN\nSHXnyRN4EJoeBZ7AUuIEGWnDZoY+dwEXl2iY00pXYT9GYS+h2V001aWZXBNK\ncO9NvZj9uwmX/Fxiy0aTWpJOMgCt1x0UpxS6Omz1tOcp/RxdS3hUfMZW3nrg\nxbo6V8ezmt4i4pDeMYgIXxG8fL2DnXCvKCQ5sYOgZvnYmEmIm307/CNPX1zo\nAMvRbF6gvE5i5m5nCu2lAbcbNS0Z0SiDnDTyXQA7UsVojz8yQxLR7CUEz5Bu\n93Q//3mdw6cQRx76Q0/YYCveSBc5edhKG82+6HwJ1oqjWziX0tGyQq8LPbYo\nVfdurPOUVGY+y5hK2DtegIRlAWLH1KrOtIFMNPrqZyx1WR07vDcPZDLMiUxZ\n67rU8N6rsGpFadA5hwcfYnNnOBxSCNq8mNZIcPetqcSk9FNcVQKxi023QWXS\nsjaOkuU/Hyp2Ffq+65Cc2NZWCk5ahfbG7NHRCh8MjpDPbVJkobdjBzyNxqDa\nxWDaA9lNgg4YAemviRllznpJ9H2mYSaVMfdO1WQbRBpp6GJCbMT6REVgj6Tw\nHK/h5jxMKKP4hNci9B2phWYRnvew9q71+srRjCXFt5kgpxlTxpBoU1qSHjdS\nVJpR\r\n=waaH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRsu/cQb2QDYluMt+iuLVN81GPwFiRnZnwpCZ0y8jNgAIhAOSFSP4OxBXaDPNUZ50lp6J+c3LQ15PGJNQNakYUebHH"}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_3.0.2_1577232808440_0.21218537658381575"},"_hasShrinkwrap":false},"3.0.3":{"name":"elm-spa","version":"3.0.3","description":"the cli companion tool for ryannhg/elm-spa","main":"src/index.js","bin":{"elm-spa":"src/index.js"},"scripts":{"start":"npm run build && node src/index.js","build":"npm run elm:compile","test":"elm-test","test:watch":"elm-test --watch","elm:compile":"elm make src/elm/Main.elm --output=dist/elm.compiled.js --optimize"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","cli","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2"},"_id":"elm-spa@3.0.3","_nodeVersion":"10.16.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-ES3bPdQT2ghlF+Hgf1E6BpD8RS3NHfpK2QOXcxuVY3B0HXd1LPd48ftTtdjiOx3gY8jZKfN1g46I/iFwDyU3BA==","shasum":"a2caff4a06a0a7c2f588d9e504a652233783e5c4","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-3.0.3.tgz","fileCount":50,"unpackedSize":276581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeAqpKCRA9TVsSAnZWagAAS+IP/0MdZ78CbSO8m+nS3RGx\nKB9vGhZ61wTybF6LhF5pOdmLmLN0nLblE5sSar3nx6MLfpHByy/ghH11XHGS\nfa45FPXAmBL8d0c9tBEoQYZGITz4NdjnEDWN3sMfkrDeiIasaikUTp3hyy0/\nZINxvRRzX5P/4xM4m/LY3hbFi+0R6yYwVcmOB0zw/Fsaoud2oCHvFBPm6Zuo\nn9gqco9vOk+jdhVccKMJbedu1mjUAImkOmVhHgsy8HUv2I8Xx80mIVMm0En6\nluL/wBkMwsaB/iQ3YPk/gxqB+d63WVG5TnE3/xNKlWQNQ4AMY9syjuMx9jKm\n2xSsU32g4eEcnxSauGOVIpH2WxbpJk+KUqs3mp+N1aYRd9XH24oh2HiN3YaO\ndH0F6X4ve/JwkvWc8whLBAS8Cf9VFEXCP/of1fFw6uSGRLITlksB0VXAzhLv\n0dwIQOjNox4w44HMwuuhpGqkAoa8q42Lh3fMyYHvnsAfZ+IiySPZhmkpjq9k\naquifOfBmFZyphJa1jUmAY0do0jeCeg2o2wKVV/r2Cyl010O3cX1YzvRm5ug\nQpzi/zKZYA71n3589Am0YHEoQVi854/vjj814rhZ1KY0wlhia1ts5CEaLdbt\nyq8bVOQNmF/r2MQKLYLG+xWhMKqWOVzlOXtySdM3YDaDawq/s7TCMeMu+xAN\nHZd6\r\n=25oE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrcMyCL3PUzfPD/BS1LORwcPxLkmEWB1t+fCb0DyRw2AIhAI8SkLLgdVpgj6ebOIZK8oCdZBjD8WApe9acnoXC8PSV"}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_3.0.3_1577232970443_0.9501679936141096"},"_hasShrinkwrap":false},"4.0.0":{"name":"elm-spa","version":"4.0.0","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","publish":"npm run build && npm publish","test":"elm-test","test:watch":"elm-test --watch","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"_id":"elm-spa@4.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.14.3","dist":{"integrity":"sha512-QND8SrpZGlpfKfLJMDq6015+8fPTGtrMaUDJNYD1j3SlyNpv643ve/Yz/k6FzMKU9+bMUofnANvCNpPcU0MDmw==","shasum":"ab8f3cb17c34c762c0514a507e9988de364a6c09","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-4.0.0.tgz","fileCount":13,"unpackedSize":107474,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefYaXCRA9TVsSAnZWagAAIn0P/Al6XjGFF7JgeU11UnJE\nmwQlDopVKa/a58XaxkuiYBRystthl/7Z/bEB4FucA8ty48WrvBMYqMn0hDTr\ni4/bLLQ3kttzzAXmclxOvACg1xPj506RuM1B3YNbbrYp5UT37bLgPtUkAHro\nrXH6T0nLZ5ABwNPJRCMXhM1r8gr+i1QTCCwk97fZR4IlAb5f4svawN7E1xFX\ngUq3WWk2O+OgrxrHEAZkwbSZ3d1viDvU4EmSqikrf86e8HkBbEo6to39Fcs8\nA9pFZpDe0pgZcJPfnzJ+3GUt0Fk7omtHiAFM/7RdY1fqU2KNbWoCnbUld/P7\n5uIkEW0zZKN97ToPVsnPffr96lNs16R6HCx8pXdIcxGROwu/HX+1WKPvz6jq\nn24tzFPyr5MkjAvaHH8gr5+uN81aoe3WyNtLkPl1clYg9DUIxGLfvQQuEE0P\n7vccZ7rQakz8CYSVvPZfvsyBRYYesCQ5/AuHdHg+QY8gNHvM7SWHLcINPWMn\nEphV8he2pfIAe/XIg3okfMxnLhFsLr66HdMikRzkeSOBucF9MkZrW5fHKHer\nYlZlCvgfLjVciqeoVZBzra90ptkQadNF4grMzEEk67E+SgB3RDJdltajBsfE\nsC9RihpcVDDbxrFdfzWBa/txTeyJzoOKBeHX/UtCxdjHSMF3QAobYDYTNhIJ\n10hI\r\n=kwzj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICIarLCxANJq59264IyVYlpqNA4zgtTPRUeSFraXZ/b1AiEAgupWhLPqH/4MK1rSx28X67dM8cSzIPwEtEEZOH8V3wA="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_4.0.0_1585284759489_0.6912530857614378"},"_hasShrinkwrap":false},"4.0.1":{"name":"elm-spa","version":"4.0.1","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test":"elm-test","test:watch":"elm-test --watch","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"_id":"elm-spa@4.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.14.3","dist":{"integrity":"sha512-C8fUOrnh/MMssoTzhzb6TpJzPvAryb1bI1EZ8qYhRg0dYwtvnA6W/2z7DpkFdmffI1PpqkW9jpIYf5aLQ7GUJg==","shasum":"96bd150546285ad622d6fc0e76c26f471a2d85a5","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-4.0.1.tgz","fileCount":13,"unpackedSize":107607,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefYjdCRA9TVsSAnZWagAAch8P/2d80o7pW4wkIyT6szoh\n0FvSjLvQ2J+No+2LIFZIwZJ2wlR5LGsGcmgxAbsRGe2maBHWMF9Z5oYLbYr7\nvYGGAhYFdmZjqVnHyqDGzDSLH3zy1DJo/7zXzDt0E6xCidmxVPnuZr2axU1b\n1nSIXpN6gCf8+FtBCFf5Dg9LM5IDT5WvyO9kd0YJaBiLUWA/ZgvKnnqiTL3W\nNTUZqlBzTVIVVfvSSDNA+IeIJUNfZqQQEdxIX7duHdwIbovP/Mbqr4D+ypge\n7wKXUTjXZqpXzEMk2O7ypUO5f0MTCg3wbu8Ha8y95jvKcOaV1JYeU5Ujy2ym\n1AhnZwpvo/PuGiPq9SQbTK39PKUPSMv1tMeyAuRQ79qmbemo69nsICXZYYs6\ng9xCru0QBDW2I697/g8J50gvE7HuYeUv1035IbgIZmquN8EfRvrHWEdU/8Bp\njsM9wfCZJ+MxDeYcNBRZcuHS4EPJYAnN/H9qV5nq68TTxWL9J3X15Kdwy1Rm\nZdw1NnXxHIQLFS/AoUySxxU0denoKv3Vyx0C6ENCZ6QQA7IX0Thi/TRGhSlJ\nQbJEX8E8wotq89wbpKj20hPDcdbQbcGXtJ4oC7i4zcy4X02L0svLEia5HRhg\nLO/RzSIDiXAaRr0Vpy6D3/+zUiPtlHg1enrVa7F731IeEn/o3ZfxnBAmPES9\nx7+W\r\n=m5xG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBdhyzOVHogqUtsvW5ei/MUuWV8zeObDiTLHZ5ydXSOfAiApw0NpzBH4nI1sJUquCi6Oh7JK11z7St2eUY69Sjp5mQ=="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_4.0.1_1585285340774_0.7503771120139773"},"_hasShrinkwrap":false},"4.0.2":{"name":"elm-spa","version":"4.0.2","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test":"elm-test","test:watch":"elm-test --watch","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"_id":"elm-spa@4.0.2","_nodeVersion":"10.16.0","_npmVersion":"6.14.3","dist":{"integrity":"sha512-u08IltxFYixEze0pm0WAipQlCzLMCqEIEc9O+E08+DmPVl/Dmp2MdUCpxhGvVXE/7WFwX+NPrEfOnWf6ZpLzYg==","shasum":"bcfdb1dce50cc31cc33cdd8fb06ddbb46e7d3291","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-4.0.2.tgz","fileCount":13,"unpackedSize":107805,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefYyvCRA9TVsSAnZWagAAm1MP/jvxG9XqYNVIfQtYLj6d\nqzOw2CTXtHKEQqMZbosa+mIVBFB1F0fRgditX+8Bgvzan6bZ29ozjErZ8K5A\ndx0biKRBIbqxaDz8bZhfheZNbHtP8yQveKenNciKnPi63vTiOi9djacVp+xL\nX9klhnz7gT3DqVnxOxuqYMQqh0yNVZ89EqtZC8Tr0qTSbOPGfiY7CXFKyyzX\nPr0pm9e4hSgT3a7bZAZdd2X5TJwSmqmDDKxPqHFGS5QrEG3NVKnx7NNJmriw\neQVMRldIyJMDlx4uj5b2EVcmtRlnifyzGEor2p8118LoD1ZfYdFr3SWHcRVR\nVNJFt8K5LHzxmo6VkGFBD5b8HZxRuIqoHLdArIu9wi4bDZiuFImKufWGmcqg\noqWHeRJlKM76Vdto7KHrRLxyOr0pcnQwIJFfu//hGr6rEwEMZPgPm+oq83BP\n2IHHZqS6HFuXn186nAwRzgryyDk/d4SG4tipaMID4NLjlpdV7/ZTT9mHUjEn\nV4Cy+IdVdFzWZyjeW+/Jvw4vs3UsnUS88m4ogBa4ZevRxzwIt+Pt5FbqcMyg\ndytI3WNSukzQh3gh1rno6NrbHaB+0kbXu2Xxe3YVJKcHm0ZPSeloNLj2INwz\n7jh83JF5C7bZhTWhcuRdZUiKUi0O9cyvoYZxLy7oE5IpIkDC9Z7Tid5TfR9Z\nCaqI\r\n=ddaD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH8hgtlRiYsr35YZA7mhInWdZkGpkvH7nhTDL5PWODUbAiBGTsM84Vjo10JdoTkiOvaZTJb6ayELf5c1FkzbFBimuw=="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_4.0.2_1585286318997_0.6951854676703337"},"_hasShrinkwrap":false},"4.0.3":{"name":"elm-spa","version":"4.0.3","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test":"elm-test","test:watch":"elm-test --watch","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"_id":"elm-spa@4.0.3","_nodeVersion":"10.16.0","_npmVersion":"6.14.3","dist":{"integrity":"sha512-Om8bUubxquZEgDtBIWjb88WTpiBZ32dFzoe/9SKwNnM9Ii3X0zT7pQi4qcrCQEdxi13g1+FoYz/E5yoOI2Lutw==","shasum":"d062bb9650c56dcf6f682d268160fbfc955e279a","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-4.0.3.tgz","fileCount":13,"unpackedSize":108693,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefuxxCRA9TVsSAnZWagAA50MP/34WoG4tc5mo2dG2bLo+\nm3rckCwbwgwjJLC+jfb6TyxRfixRVngdmpGv/jd1WNWDFRYS4g7areQByKNj\nB6DL/79OzrMDqHsoKGXljv6PtCgHTL8TLyLkO6u7VpjXINhBsCAhbDWOgHfh\nxKPWsWj2Ux2QueEoQvuYzpPfnWD8V/6isg7SwihsfxVVsD+Z8OYK99Zdv10+\nMPxZm+LsDkXNJJpOW/8Fh8GKDMdsThka4effPuphwkoqQUgfhIpTqfaRIJbL\ne6DWcP5+8Uqoff4a7Pmah2lbrCscU/lK8hSZSyiOlJ/rRVNkVufFhGYuh1Oy\nD3ew4mjrBQRX0zVLG66GhE28Mtm1ye3JpnZkJzyMQMyQoLYmRn+Pu35Ttv55\nc9Pzvr1bQsssa+f7OsGelabiRAt2BK0h/rlinmrDBCkoSUE4BTIcGbvkjEZK\n4i7mz6JtnuREqWQdiTTbTh6CCA2WV2C4e+Qk7i6RQ+RDkSRBtGGCxWIRYcYv\ncnfJNncHkyvBieYUn8b8uDIXVnqDM1bR8oxWhuRZTX8VBv7m8gib+Dj9ixVm\n+93LXOYTuhkHs+0kRg0jQ7HsNOgyBSO00rRSEJmJgHFrd56mwoGtXTVZ3DH8\nS2Ypc6unPwkN2HYFc6FLZQdvCCyoDEtJTpPZvDlt/V+mkNgGqYjq+RcEH0qw\nboco\r\n=CHaU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFETcArFAlUCsMTu4g5upxBHr1SLo1malhFLYv8jTIN+AiEA3gQRveJCQBa6w3rBRMnCfN34WZCwbX4VApoUpNh4qpo="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_4.0.3_1585376368689_0.7236733417663848"},"_hasShrinkwrap":false},"4.0.4":{"name":"elm-spa","version":"4.0.4","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test":"elm-test","test:watch":"elm-test --watch","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"_id":"elm-spa@4.0.4","_nodeVersion":"10.16.0","_npmVersion":"6.14.3","dist":{"integrity":"sha512-dQtL+qwZQ+5X+6iz3QRMaenoMP2BXmLhXnQgev52T78TgJ8aB91oSbpf7Va5mHCFjxbKpHmUMEXcBbb72psP1w==","shasum":"99f97759e4e9b1a2dd63cf537ad9216d5d036554","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-4.0.4.tgz","fileCount":14,"unpackedSize":111967,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefwUgCRA9TVsSAnZWagAAJzgP/1P+zEXq9kTshEi2TiBw\nBucZVT6fcxTx+V4byCLh/wEuD2UJcqQ+RqO80gj+/cmVRBOiebRhMUx13B4r\ntbREittDajDLTJwGWeGKJ4xq5/yvkMlwOtosDkT2cnQCzLkTAg13uhkfr830\nWJVuHG53bJ2Oqyt+I8btmS9K6n8m585VwM/wyscZCPq2Et1MppeuZXpaKbO9\nQCswxYAyDGzWsiwXErZbWX9CRF0YbvzgcZYI3cVkYHpG+lyOvJDWAdWzIl+3\nFPT0gKDq/dUKtivp3F5clo3W92Qci+6c8XpJ4mnfytgFNkA7gdkkHzB67cHW\nyeve4yjuAk1+93T7HoHthmPzfvX1Zc2FCK5r1F5Mh6K+V5qlmyWLlMe8XLvr\n/HD5jwciwRjzE/Mk1u1kK/Qo3epQFMHrvZMoz392VJGVWpyktKqnSFY46UM2\nvxROnCFh4t7Lz6i9l+xq/1mfi1t4cAN0oz3nwzwlJmF72CamEy2a398RAAJ/\nRa3EzQw8bnrFo2sbaG++DOOYTnZURffZ5CDxNBFfid0B8xnmOGJrCHQA3CNB\nmgMLyhciAZ102kiMHlnY6rUOnen0peF6NGDiGkP5aBXw4pM5NbuMSQGiUOe0\n+bizMUFCM2vYg4k5/hyfFyqCfr/9ahFnnIU3d35w1OdMOrn9islfmohA1zNv\nUmuv\r\n=1RYV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDrwB7Hm78w+Y6ot9LLi1f8RVnKPxQaiopY1utQX5vzqAiAyu479xmAdHKarckxy7jKFSfOldS2wtgHatJHfjnHbJg=="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_4.0.4_1585382687945_0.872678720491844"},"_hasShrinkwrap":false},"4.0.5":{"name":"elm-spa","version":"4.0.5","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test":"elm-test","test:watch":"elm-test --watch","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"_id":"elm-spa@4.0.5","_nodeVersion":"10.16.0","_npmVersion":"6.14.3","dist":{"integrity":"sha512-INfCA+uibpSD2wlX/QhODxgcnh3r+Sb/kg/6ZYUWZ5cQClcPTSlYPQB2ZuiNTcY0xM/Krq9rAJxmdTW0Ed0U0g==","shasum":"2d558d0022e65de200e45479403bfcfe807efe3b","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-4.0.5.tgz","fileCount":15,"unpackedSize":113360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJef6vLCRA9TVsSAnZWagAAthYP/3iMT+s8CgAtE1jUjZxs\nvUe3LI2E9SKC+hc1nexZ0WWo1oGZh4CZRBGb9RsBVdndpG5DLtdyblATsmNv\nf8fR/2czOuuj1eSKvjsEE3m5Z41XIpQkTT99b2j2x1Y+7aDqpP2nPxAD1Mtz\nKFWSzdqhFqdNDvkVFJgG4oDX3WCyi9ss7TOKo/PtLqTBD1di047cBNWUnBlc\nIgr8OoYEq0JP0XoVfLKtPVBZHQ///eTHLNyp26fhQlZ/C0i0/RsgQQ3x6AFx\nNIMc3RtDCxKs1NVxNC1ay1hZ0Fae+1QK0a6TRSUxStkQjs1uwBQlJn9JTT+1\nV1o8kWSxzTmSkhPQRxUu16gJv8pC6g5wpBcyHnhnyaIIi+sZ8cnqaa1SDBlL\nIN7ehHaYzuvZPwBqPDzOVf22vJ0P8ZP6KEqCM5NvSRub0220rkWh36jRo9Jw\nVXFtq+KpY0Sw0jqIG+6wquwm0czSqYfz0lZIfbpb9DOrXv6hw2d373+WDGZU\nlzKUdkgLXor4D8sNZCRi3363ixPEy1rN5w+mS1o0kUVa3l9lvvRjcvwBl3O+\nruYGRKLWbcyis6/T1GJFd6K2Mz3Za3Anaf6c11vqYJcLxq60zl/cQ22M5ASd\n+KoePpRw461e7eI/IYqh7ZGbJy5ROXEENRHdiJfW9VhWtDT7j5I8ymg3Kz48\nZlWj\r\n=0DOR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQPVDk1p1+7t/vI3oFNmqBextu5CNLjRHb8fU8Obe6cQIhALoXnLGrQVU+m2maZDuwJAkdf/6PgCtvq4+lbJubGzoG"}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_4.0.5_1585425354725_0.9318499754902374"},"_hasShrinkwrap":false},"4.1.0":{"name":"elm-spa","version":"4.1.0","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test":"elm-test","test:watch":"elm-test --watch","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"_id":"elm-spa@4.1.0","_nodeVersion":"10.16.0","_npmVersion":"6.14.3","dist":{"integrity":"sha512-fqrVhMJi2sRnO2ArKvQwJEatV9sioW7HCQEDV8aY6A4FOctERryu1Ux/WArDWmTaeODHzAMc3ucY2IuE7J3WgQ==","shasum":"d91a8722cae4cc993bfb27362aff3570f5a26460","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-4.1.0.tgz","fileCount":15,"unpackedSize":113360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJegVxuCRA9TVsSAnZWagAAmbYP/2IETrazvkHwzQg2WT1z\nPF013hLI5zqh4A3zcY0qhmUWVA955w54pA4miqCZiM4o15uGnIHmzNOvGY3P\n7zJqp31cbCHxkxrx7priKnuRmSOFxbSwo37NxWKcp5BumJUWUmDh89rVtCuT\navINhZM4KzYG+9Ux6IaFzAcExTVzdF6A/AOaMrA3EMmowQqHJfyxdJyjKwun\nV9u9L6kiHOv8IP8L7Z3ymYLObu30osXP3mpcqKY9395zsAHPYfEljFcoVR1T\ni83vyRURpslZY8/U5/eTzskZD8OBS16mnVX4xqEsjTjqnqGfe30EzgmZ1y98\nqSZi/j4yGrZQTvYibI35os7qAIKlC00gHh4WqfPiY+/qVtzrKf7i1FjdbyL1\nkbgdDC+kbHQzwQ7yhxSMgWf/SjRXY7KANLzw8/lfFG39oRkS3wad0T6yNkLy\nW9zXs27INS8wTT5BLAtjxWB6tnIxhotGzurudGdOKEQZg13/j5RMDJvSjRnf\nx3Ooit97Gho3iMf4XFmc3yHCshPgfPicczdYvzMV1u95iHZF0MuSDCwbW8Qb\nsFRPpSp2QQN4rWECvnfDAzhR5Z5ClyNuaVd0UztTGqtesC4eMS06veunJx5z\nBxwbtwC39hdwICOvB2bhFdwjxfT7E82W5HBA2E/biVcOOPRcU4xuptsjCKRO\nvIh1\r\n=RpbC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEm1Tv999Zl7QraMC8J7fJRNPwS0W3/IaHa78CY+BG0RAiAasJyJQhC81V78wOt7kCB8o/8jCw4PUCYEh9IcTNOVHA=="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_4.1.0_1585536109895_0.41141838014660026"},"_hasShrinkwrap":false},"5.0.0-rc1":{"name":"elm-spa","version":"5.0.0-rc1","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test:ci":"npm run test && npm run test:cli","test":"elm-test","test:watch":"elm-test --watch","test:cli":"(npm run build && cd tests && npm run test:cli:init && npm run test:cli:add && npm run test:cli:build && npm run test:cli:cleanup)","test:cli:init":"./index.js init tests/demo && cd tests/demo && npm install && npm run build","test:cli:add":"cd tests/demo && ../../index.js add static Top && ../../index.js add sandbox Posts.Top && ../../index.js add element Posts.Id_Int && ../../index.js add full Authors.Name_String.Posts.Post_Int && npm run build","test:cli:build":"./index.js build tests/demo","test:cli:cleanup":"cd tests && rm -rf demo","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2"},"_resolved":"","_integrity":"","_from":"file:elm-spa-5.0.0-rc1.tgz","readme":"# elm-spa \n\n[![Build Status](https://travis-ci.org/ryannhg/elm-spa.svg?branch=master)](https://travis-ci.org/ryannhg/elm-spa)\n\n\n## installation\n\n```\nnpm install -g elm-spa\n```\n\n## available commands\n\n- [elm-spa init](#elm-spa-init) – create a new project\n- [elm-spa add](#elm-spa-add) – add a new page\n- [elm-spa build](#elm-spa-build) – generate routes and pages\n\n\n## elm-spa init\n\n```\nelm-spa init <directory>\n\n  Create a new elm-spa app in the <directory>\n  folder specified.\n\n  examples:\n  elm-spa init .\n  elm-spa init my-app\n```\n\n## elm-spa add\n\n```\nelm-spa add <static|sandbox|element|full> <name>\n\n  Create a new page of type <static|sandbox|element|full>\n  with the module name <name>.\n\n  examples:\n  elm-spa add static Top\n  elm-spa add sandbox Posts.Top\n  elm-spa add element Posts.Id_Int\n  elm-spa add full SignIn\n```\n\n## elm-spa build\n\n```\nelm-spa build [dir]\n\n  Create \"Generated.Route\" and \"Generated.Pages\" modules for\n  this project, based on the file names in \"src/Pages\"\n\n  Here are more details on how that works:\n  https://www.npmjs.com/package/elm-spa#naming-conventions\n\n  examples:\n  elm-spa build\n  elm-spa build ../some/other-folder\n  elm-spa build ./help\n```\n\n## naming conventions\n\nthe `elm-spa build` command is pretty useful, because it\nautomatically generates `Routes.elm` and `Pages.elm` code for you,\nbased on the naming convention in `src/Pages/*.elm`\n\nHere's an example project structure:\n\n```\nsrc/\n└─ Pages/\n   ├─ Top.elm\n   ├─ About.elm\n   ├─ Posts/\n   |   ├─ Top.elm\n   |   └─ Post_Int.elm\n   └─ Authors/\n       └─ Author_String/\n           └─ Posts/\n               └─ Post_Int.elm\n```\n\nWhen you run `elm-spa build` with these files in the `src/Pages` directory, __elm-spa__ can\nautomatically generate routes like these:\n\n__Page__ | __Route__ | __Example__\n:-- | :-- | :--\n`Top.elm` | `/` | -\n`About.elm` | `/about` | -\n`Posts/Top.elm` | `/posts` | -\n`Posts/Id_Int.elm` | `/posts/:id` | `/posts/123`\n`Authors/Author_String/Posts/PostId_Int.elm` | `/authors/:author/posts/:postId` | `/authors/ryan/posts/123`\n\n### top-level and dynamic routes\n\n- `Top.elm` represents the top-level index in the folder.\n- `User_Int.elm` defines a dynamic parameter named `user` that should be an `Int`.\n- `User_Int` can also be a folder name, supporting nested dynamic routes.\n\n### accessing url parameters\n\nThese dynamic parameters are available as `Params` for the given page.\n\nHere are some specific examples from the routes above:\n\n```elm\nmodule Pages.About exposing (..)\n\ntype alias Params =\n    ()\n```\n\n```elm\nmodule Pages.Posts.Id_Int exposing (..)\n\ntype alias Params =\n    { post : Int\n    }\n```\n\n```elm\nmodule Pages.Authors.Author_String.Posts.PostId_Int exposing (..)\n\ntype alias Flags =\n    { author : String\n    , postId : Int\n    }\n```\n\nThese `Params` are __automatically__ passed into the `init` function, along with\nother information like the query parameters and complete raw `Url` value.\n\n","readmeFilename":"README.md","_id":"elm-spa@5.0.0-rc1","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Apa7eMFiEaY9osf62eytCczQV0SdNpYngdRNrsTYRCQ/9QwUzN/tuOumuyrDN66Nr5+VOaQcWo+gEy3uYMUSsQ==","shasum":"08c4d324c5c694858f84224a5cf502a37df7c3b7","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-5.0.0-rc1.tgz","fileCount":29,"unpackedSize":241608,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexwHKCRA9TVsSAnZWagAAbaIP/3GvIu2lnruqVkwpVaxI\nFyE+F7Sih0YoacR5VgQ+c8RaJBM9wydqvoXN/pAx4TI2KRS4XMf5bvDq0/bv\ngBhk2BAsXKBY2mFhbPcXFkIR4AVkahXdYWII+gVjg44cQvzSPUY5BbePvlGK\nXwT4t26DVPXW6ydXc7sL4sS5dH3Qub/ahnJTBmDc8269NG34OILXFP+fgTTK\nJ0IIswofrkvWJOlZ9bhvJxbtpHxFAAd9pnyZidbNqwwTIQ48pN/1WS5L+NXe\nXc6xEI9x458sixc4TBZcEvsTnYgm42iXIWIHps4WeFLfKdCj0ND+M420YHUb\nvPpN7VnAQ7UQiqud1fjpLiGck6DJRAS2rpEbLQMQ5JDdzhuIS50NzTOtC+vg\nEGW0OC1wPwnh34oKL79SEjvOn7n4D/oTSwQALk/42YuKm/94Rs7gz6mI1IOG\nM2xvtPGaNWydAHQoMxaLc4nNInftKqjxIzpMKLNx+l1cYCaaS6tJwcWfGczQ\nf8lIgrI9UENLkLEO/PR1+uEAF/CWP09xrfPZko/hRt2h5yWtYyW5sGDYexV3\nBDxX4nBnKzp5UaF8hHnrlFEjZlNdm7cuXshFos7IeNmQzQanQxJ4+SPIji8g\n9GLtQM0f161/rmf7uRKubXxWwnNr+ZSupjXpAAJ+wjqeGp3K/++XGdCmgQ44\nRbD9\r\n=D5Z/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfgS8BOVsllN/coJixA3KqlzftWK1J0WK5wqPQehXtkAIgcjLEQ90nhwn0jrpIT/kZBArT1Yub3qIKF+cK/qHdBj8="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_5.0.0-rc1_1590100425599_0.4265238746879858"},"_hasShrinkwrap":false},"5.0.0-rc2":{"name":"elm-spa","version":"5.0.0-rc2","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test:ci":"npm run test && npm run test:cli","test":"elm-test","test:watch":"elm-test --watch","test:cli":"(npm run build && cd tests && npm run test:cli:init && npm run test:cli:add && npm run test:cli:build && npm run test:cli:cleanup)","test:cli:init":"./index.js init tests/demo && cd tests/demo && npm install && npm run build","test:cli:add":"cd tests/demo && ../../index.js add static Top && ../../index.js add sandbox Posts.Top && ../../index.js add element Posts.Id_Int && ../../index.js add full Authors.Name_String.Posts.Post_Int && npm run build","test:cli:build":"./index.js build tests/demo","test:cli:cleanup":"cd tests && rm -rf demo","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2"},"_resolved":"","_integrity":"","_from":"file:elm-spa-5.0.0-rc2.tgz","readme":"# elm-spa \n\n[![Build Status](https://travis-ci.org/ryannhg/elm-spa.svg?branch=master)](https://travis-ci.org/ryannhg/elm-spa)\n\n\n## installation\n\n```\nnpm install -g elm-spa\n```\n\n## available commands\n\n- [elm-spa init](#elm-spa-init) – create a new project\n- [elm-spa add](#elm-spa-add) – add a new page\n- [elm-spa build](#elm-spa-build) – generate routes and pages\n\n\n## elm-spa init\n\n```\nelm-spa init <directory>\n\n  Create a new elm-spa app in the <directory>\n  folder specified.\n\n  examples:\n  elm-spa init .\n  elm-spa init my-app\n```\n\n## elm-spa add\n\n```\nelm-spa add <static|sandbox|element|full> <name>\n\n  Create a new page of type <static|sandbox|element|full>\n  with the module name <name>.\n\n  examples:\n  elm-spa add static Top\n  elm-spa add sandbox Posts.Top\n  elm-spa add element Posts.Id_Int\n  elm-spa add full SignIn\n```\n\n## elm-spa build\n\n```\nelm-spa build [dir]\n\n  Create \"Generated.Route\" and \"Generated.Pages\" modules for\n  this project, based on the file names in \"src/Pages\"\n\n  Here are more details on how that works:\n  https://www.npmjs.com/package/elm-spa#naming-conventions\n\n  examples:\n  elm-spa build\n  elm-spa build ../some/other-folder\n  elm-spa build ./help\n```\n\n## naming conventions\n\nthe `elm-spa build` command is pretty useful, because it\nautomatically generates `Routes.elm` and `Pages.elm` code for you,\nbased on the naming convention in `src/Pages/*.elm`\n\nHere's an example project structure:\n\n```\nsrc/\n└─ Pages/\n   ├─ Top.elm\n   ├─ About.elm\n   ├─ Posts/\n   |   ├─ Top.elm\n   |   └─ Post_Int.elm\n   └─ Authors/\n       └─ Author_String/\n           └─ Posts/\n               └─ Post_Int.elm\n```\n\nWhen you run `elm-spa build` with these files in the `src/Pages` directory, __elm-spa__ can\nautomatically generate routes like these:\n\n__Page__ | __Route__ | __Example__\n:-- | :-- | :--\n`Top.elm` | `/` | -\n`About.elm` | `/about` | -\n`Posts/Top.elm` | `/posts` | -\n`Posts/Id_Int.elm` | `/posts/:id` | `/posts/123`\n`Authors/Author_String/Posts/PostId_Int.elm` | `/authors/:author/posts/:postId` | `/authors/ryan/posts/123`\n\n### top-level and dynamic routes\n\n- `Top.elm` represents the top-level index in the folder.\n- `User_Int.elm` defines a dynamic parameter named `user` that should be an `Int`.\n- `User_Int` can also be a folder name, supporting nested dynamic routes.\n\n### accessing url parameters\n\nThese dynamic parameters are available as `Params` for the given page.\n\nHere are some specific examples from the routes above:\n\n```elm\nmodule Pages.About exposing (..)\n\ntype alias Params =\n    ()\n```\n\n```elm\nmodule Pages.Posts.Id_Int exposing (..)\n\ntype alias Params =\n    { post : Int\n    }\n```\n\n```elm\nmodule Pages.Authors.Author_String.Posts.PostId_Int exposing (..)\n\ntype alias Flags =\n    { author : String\n    , postId : Int\n    }\n```\n\nThese `Params` are __automatically__ passed into the `init` function, along with\nother information like the query parameters and complete raw `Url` value.\n\n","readmeFilename":"README.md","_id":"elm-spa@5.0.0-rc2","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-MobGPSZ+IO0A93MenKAzdxZ2epbox+kJYF98xrwuXV1O9u/gFZFFGjGDez8rd2AT7uAMC7rOl56pr3R0Ut0ftA==","shasum":"3cc9983afb7f0dca36dc43ed8808ced4631f5c9a","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-5.0.0-rc2.tgz","fileCount":27,"unpackedSize":190837,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexwJsCRA9TVsSAnZWagAAB3QP/3jJDXGjhEBwHUN60tge\nL5WlHa6TAfkV1OlNw2gZU/ZHG2n5rDVur2qtaYveJ5PEJMZhRQRWZlH/VpTe\nAaFWBAeShnitrmhnGz40OBI1bRq2leVs46n6fceM3iZk6aaiQTzg2v3BSTcs\nUobFUQ3KoSpdjwPXGZC7t5Hl6fE2JSPXuWeVg65mDTcpmGKtfYxnY1pomHb1\n3YwyysZ05a2jyddKS3oiuA7A5VZC4uEltBJzeVve3a6fPlAKP1satxqbB0rn\nQUD52kzkvwEeA2brsvegxBrsu3eGtVGFwaUX6+dtJ4oIPbmo/up+Gwa4zQnw\n7I9mDFSo0BYMl7xF6qEN2LlVly0Cj8+CozeI0auDtjh7e06VLN8+sTeFWC27\nEDw1IXo3ShiotLKy4Rlu0jrer08YPGxooXb5wZrTxeXx9auW2kyEjP7YjJ4X\nbg3pLO+1DA85H6NtEqBh/eiJ2oQyuWD9ciSwi/i745KxCKaQ03W1TlF4sGZb\nbH19f50Y2JlDqizWCxBbwBgUVjaCSrBYBMOhtWy5FUJAnKR3UpG5WOxi39D4\n9/HhlrAlzKUuqZ0aOmXKXimBriYpEHu5VhdFDX2uvCI9VrQGw96CsUcFAn/r\nBP16WXVfEgNfnnM2V6UJxCvJ3+fInLYp4+MrdJyEjjbKMNvf1RTgSx+mMgG6\nzX64\r\n=4ikU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB+odrsG2Qsn0eRcDXhcYgWTtE4I/vzr+tG8XAwfefyFAiApCvl+OV8E45S/fNq6bCdCwreTRmaZbhf0fhYVwBcnkA=="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_5.0.0-rc2_1590100587556_0.6769772103528096"},"_hasShrinkwrap":false},"5.0.0-rc3":{"name":"elm-spa","version":"5.0.0-rc3","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test:ci":"npm run test && npm run test:cli","test":"elm-test","test:watch":"elm-test --watch","test:cli":"(npm run build && cd tests && npm run test:cli:init && npm run test:cli:add && npm run test:cli:build && npm run test:cli:cleanup)","test:cli:init":"./index.js init tests/demo && cd tests/demo && npm install && npm run build","test:cli:add":"cd tests/demo && ../../index.js add static Top && ../../index.js add sandbox Posts.Top && ../../index.js add element Posts.Id_Int && ../../index.js add full Authors.Name_String.Posts.Post_Int && npm run build","test:cli:build":"./index.js build tests/demo","test:cli:cleanup":"cd tests && rm -rf demo","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2"},"_resolved":"","_integrity":"","_from":"file:elm-spa-5.0.0-rc3.tgz","readme":"# elm-spa \n\n![Build](https://github.com/ryannhg/elm-spa-secrets/workflows/Build/badge.svg?branch=master)\n\n\n## installation\n\n```\nnpm install -g elm-spa@latest\n```\n\n## available commands\n\n- [elm-spa init](#elm-spa-init) – create a new project\n- [elm-spa add](#elm-spa-add) – add a new page\n- [elm-spa build](#elm-spa-build) – generate routes and pages\n\n\n## elm-spa init\n\n```\nelm-spa init <directory>\n\n  Create a new elm-spa app in the <directory>\n  folder specified.\n\n  examples:\n  elm-spa init .\n  elm-spa init my-app\n```\n\n## elm-spa add\n\n```\nelm-spa add <static|sandbox|element|full> <name>\n\n  Create a new page of type <static|sandbox|element|full>\n  with the module name <name>.\n\n  examples:\n  elm-spa add static Top\n  elm-spa add sandbox Posts.Top\n  elm-spa add element Posts.Id_Int\n  elm-spa add full SignIn\n```\n\n## elm-spa build\n\n```\nelm-spa build [dir]\n\n  Create \"Generated.Route\" and \"Generated.Pages\" modules for\n  this project, based on the file names in \"src/Pages\"\n\n  Here are more details on how that works:\n  https://www.npmjs.com/package/elm-spa#naming-conventions\n\n  examples:\n  elm-spa build\n  elm-spa build ../some/other-folder\n  elm-spa build ./help\n```\n\n## naming conventions\n\nthe `elm-spa build` command is pretty useful, because it\nautomatically generates `Routes.elm` and `Pages.elm` code for you,\nbased on the naming convention in `src/Pages/*.elm`\n\nHere's an example project structure:\n\n```\nsrc/\n└─ Pages/\n   ├─ Top.elm\n   ├─ About.elm\n   ├─ Posts/\n   |   ├─ Top.elm\n   |   └─ Id_Int.elm\n   └─ Authors/\n       └─ Author_String/\n           └─ Posts/\n               └─ Post_Int.elm\n```\n\nWhen you run `elm-spa build` with these files in the `src/Pages` directory, __elm-spa__ can\nautomatically generate routes like these:\n\n__Page__ | __Route__ | __Example__\n:-- | :-- | :--\n`Top.elm` | `/` | -\n`About.elm` | `/about` | -\n`Posts/Top.elm` | `/posts` | -\n`Posts/Id_Int.elm` | `/posts/:id` | `/posts/123`\n`Authors/Author_String/Posts/PostId_Int.elm` | `/authors/:author/posts/:postId` | `/authors/ryan/posts/123`\n\n### top-level and dynamic routes\n\n- `Top.elm` represents the top-level index in the folder.\n- `User_Int.elm` defines a dynamic parameter named `user` that should be an `Int`.\n- `User_Int` can also be a folder name, supporting nested dynamic routes.\n\n### accessing url parameters\n\nThese dynamic parameters are available as `Params` for the given page.\n\nHere are some specific examples from the routes above:\n\n```elm\nmodule Pages.About exposing (..)\n\ntype alias Params =\n    ()\n```\n\n```elm\nmodule Pages.Posts.Id_Int exposing (..)\n\ntype alias Params =\n    { post : Int\n    }\n```\n\n```elm\nmodule Pages.Authors.Author_String.Posts.PostId_Int exposing (..)\n\ntype alias Params =\n    { author : String\n    , postId : Int\n    }\n```\n\nThese `Params` are __automatically__ passed into the `init` function, along with other information like the query parameters and original `Url` value.\n\n","readmeFilename":"README.md","_id":"elm-spa@5.0.0-rc3","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Z5hf8CN+/sbH75AwaaSnxvmb3BkZrFD+fc8yv5qzFBZI7R++vwb1rXlda4qDWHgdp9MsZkkkuFuTbENmVNq7og==","shasum":"7f1353c9e6b75192d446b3f970376ce49fc343f9","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-5.0.0-rc3.tgz","fileCount":32,"unpackedSize":118024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeyETrCRA9TVsSAnZWagAADGQP/3KB97/vAME4SgZag/3N\ng3tl2/DDsxSn3FSVBk540pffLm/IzRO7vPVHxnYniDE8QLRHbGq4uy1cvlI+\nacv+5TVg7Tok7XTTIk+Q8qjqfcnpJBS2fRQLR4GT+3N1iA0dziQ3dRE9D0nZ\n3MeueknhJl1fLVcDN6abUAWXKV4ulTAed+U4okjrxYpvEpe75NZynQUBUTFb\n8JXeUNW8+Fy6y2cpPdTB9mNWM7W3z+LJM7yIrqDKn12YfT2GtbDpwyrzDTon\njtJZrBBMeRTNf+PuWoUEbTCJkQ+rDO4p64Z1Jf5pD1/8d/QkRLa6d9eIp5Is\nkIAu/BC7IPUoHV1IdMK2chTz2R3ZZz1CF1ixQCJHlKEOIOluJnbU4yPyophB\neAMLu3a0N0VjjFiqrN8CtWUXsqVYsXVsKFFUmywwGZa0QY0eR/ek0ee2upv+\ntc8ICDQsRl1mycF/dEyolyyjwAzD8HaXN6s3PUBDcJJH+mTzbpRrwTBRTV4l\nDsMwHY0qyc+CpcbKuF1m1DmtWAKlalVLOFX18yNRg9D1opBRcmeFT6Df40NX\ns0hehy3ut3prckuD5ynvyzIWMZTGwW44eHQAHqdF4b8uRDlH7683ph8wJLhl\nM3N6vJFAJJUoWby5jB/zQl5ynDvbfS6WdIIjwDA4ynImCkZ3xg2JDyAiYv7Z\n3Lh4\r\n=etAW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXKcuHo64dHCtbrZTV4TmBM1Vf6a9OcsYnfukQ1Lgy8gIgZoYuYeU70/NRTE8Gy8DQy82vB/1a3Gy6OXKu/2wVG00="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_5.0.0-rc3_1590183146495_0.587882671876174"},"_hasShrinkwrap":false},"5.0.0-rc4":{"name":"elm-spa","version":"5.0.0-rc4","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test:ci":"npm run test && npm run test:cli","test":"elm-test","test:watch":"elm-test --watch","test:cli":"(npm run build && cd tests && npm run test:cli:init && npm run test:cli:add && npm run test:cli:build && npm run test:cli:cleanup)","test:cli:init":"./index.js init tests/demo && cd tests/demo && npm install && npm run build","test:cli:add":"cd tests/demo && ../../index.js add static Top && ../../index.js add sandbox Posts.Top && ../../index.js add element Posts.Id_Int && ../../index.js add full Authors.Name_String.Posts.Post_Int && npm run build","test:cli:build":"./index.js build tests/demo","test:cli:cleanup":"cd tests && rm -rf demo","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2"},"_resolved":"","_integrity":"","_from":"file:elm-spa-5.0.0-rc4.tgz","readme":"# elm-spa \n\n![Build](https://github.com/ryannhg/elm-spa-secrets/workflows/Build/badge.svg?branch=master)\n\n\n## getting started\n\n```\nnpm install -g elm-spa@latest\n```\n\n## available commands\n\n- [elm-spa init](#elm-spa-init) – create a new project\n- [elm-spa add](#elm-spa-add) – add a new page\n- [elm-spa build](#elm-spa-build) – generate routes and pages\n\n\n## elm-spa init\n\n```\nelm-spa init <directory>\n\n  Create a new elm-spa app in the <directory>\n  folder specified.\n\n  examples:\n  elm-spa init .\n  elm-spa init my-app\n```\n\n## elm-spa add\n\n```\nelm-spa add <static|sandbox|element|full> <name>\n\n  Create a new page of type <static|sandbox|element|full>\n  with the module name <name>.\n\n  examples:\n  elm-spa add static Top\n  elm-spa add sandbox Posts.Top\n  elm-spa add element Posts.Id_Int\n  elm-spa add full SignIn\n```\n\n## elm-spa build\n\n```\nelm-spa build [dir]\n\n  Create \"Generated.Route\" and \"Generated.Pages\" modules for\n  this project, based on the file names in \"src/Pages\"\n\n  Here are more details on how that works:\n  https://www.npmjs.com/package/elm-spa#naming-conventions\n\n  examples:\n  elm-spa build\n  elm-spa build ../some/other-folder\n  elm-spa build ./help\n```\n\n## naming conventions\n\nthe `elm-spa build` command is pretty useful, because it\nautomatically generates `Routes.elm` and `Pages.elm` code for you,\nbased on the naming convention in `src/Pages/*.elm`\n\nHere's an example project structure:\n\n```\nsrc/\n└─ Pages/\n   ├─ Top.elm\n   ├─ About.elm\n   ├─ Posts/\n   |   ├─ Top.elm\n   |   └─ Id_Int.elm\n   └─ Authors/\n       └─ Author_String/\n           └─ Posts/\n               └─ Post_Int.elm\n```\n\nWhen you run `elm-spa build` with these files in the `src/Pages` directory, __elm-spa__ can\nautomatically generate routes like these:\n\n__Page__ | __Route__ | __Example__\n:-- | :-- | :--\n`Top.elm` | `/` | -\n`About.elm` | `/about` | -\n`Posts/Top.elm` | `/posts` | -\n`Posts/Id_Int.elm` | `/posts/:id` | `/posts/123`\n`Authors/Author_String/Posts/PostId_Int.elm` | `/authors/:author/posts/:postId` | `/authors/ryan/posts/123`\n\n### top-level and dynamic routes\n\n- `Top.elm` represents the top-level index in the folder.\n- `User_Int.elm` defines a dynamic parameter named `user` that should be an `Int`.\n- `User_Int` can also be a folder name, supporting nested dynamic routes.\n\n### accessing url parameters\n\nThese dynamic parameters are available as `Params` for the given page.\n\nHere are some specific examples from the routes above:\n\n```elm\nmodule Pages.About exposing (..)\n\ntype alias Params =\n    ()\n```\n\n```elm\nmodule Pages.Posts.Id_Int exposing (..)\n\ntype alias Params =\n    { post : Int\n    }\n```\n\n```elm\nmodule Pages.Authors.Author_String.Posts.PostId_Int exposing (..)\n\ntype alias Params =\n    { author : String\n    , postId : Int\n    }\n```\n\nThese `Params` are __automatically__ passed into the `init` function, along with other information like the query parameters and original `Url` value.\n\n","readmeFilename":"README.md","_id":"elm-spa@5.0.0-rc4","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-dXFyKj9ZAfmkSCQm/pDNo0ur4wFMcC3I5PZ1X3vkRWTvx+T+6L/I5FeTjbEQ/2WfDml9YW2JIYPWAYhuRUl1og==","shasum":"50a16972da2adf9c03270be4929efcbb0a31121a","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-5.0.0-rc4.tgz","fileCount":32,"unpackedSize":124782,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeyEbhCRA9TVsSAnZWagAABN0P/R3Qm/4q1b0/3aZI6z67\nSKupXJEcLbNo1Sz5v5UZAqw+OnPYeSj1E5/3dQfjX8LRUpVamrsp87fTULee\nI8mvRitPu+6TWzmWRL/nsN9MNSFdk/ZiHKFBELh01lbMChC36A9vRoPu46fa\nQYQ2LfTtXxx2R9XwhdqAy2d2uW+XK4uHiBj++j1oJcB5kRwWYX6VJso82N4y\nudOPzAUVB+Ma7mLjzvxcvEUbjNbqJpUy3JUZSE69wewVQPMFZdlR/LRGk2tE\nxdNMLnfkTEN/m1kgHwN1Uc+LI5dLPrYtNMwygwchRNM08Vu9q8HqQo9vXGOT\n/5nzeBuFXg5ThIZh3m9UwBm/z7zYOntweSYR/b6cM1TjN64gDLpSIElVXg23\nlDCo7yGjOY1SvM3jP9B3tUaTXI+5K4lq+uqd4TsAyMIYKxXNAGCWGHltrYS7\n7gXV4zf6m4X5YW8UYTbFduCwARJy2CjP3ZVQlb7aw/PN5lGmcYsXlK7W7A14\nncrh3fh0ZQe4yZXxDYHsMPCBd+tFLUEwzbrCiAnzJJqARukwBncFuVBsrW62\niVNwiA+MHnd3Zl//k19mC/la+wEMYrx9uq7KB9Va3R+IR6UzOdIDHa3J0luu\nlAz8lg9cn127pUfwTdkMgml6Um5ICJIqn6X8gdtaCe7Z+ovIU4RVZZ79JO6H\nRnGJ\r\n=bqnl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBu/U35NS0mxS4wy+XW+NGsq2DxuPwkGVXC/eDnZyQPwAiAFV2fa66SaWPH6ktOXmVzZahZdYU6rblu00exUtx4MWQ=="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_5.0.0-rc4_1590183649483_0.8217667643932804"},"_hasShrinkwrap":false},"5.0.0-rc6":{"name":"elm-spa","version":"5.0.0-rc6","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test:ci":"npm run test && npm run test:cli","test":"elm-test","test:watch":"elm-test --watch","test:cli":"(npm run build && cd tests && npm run test:cli:init && npm run test:cli:add && npm run test:cli:build && npm run test:cli:cleanup)","test:cli:init":"./index.js init tests/demo && cd tests/demo && npm install && npm run build","test:cli:add":"cd tests/demo && ../../index.js add static Top && ../../index.js add sandbox Posts.Top && ../../index.js add element Posts.Id_Int && ../../index.js add full Authors.Name_String.Posts.Post_Int && npm run build","test:cli:build":"./index.js build tests/demo","test:cli:cleanup":"cd tests && rm -rf demo","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2"},"_resolved":"","_integrity":"","_from":"file:elm-spa-5.0.0-rc6.tgz","readme":"# elm-spa \n\n![Build](https://github.com/ryannhg/elm-spa-secrets/workflows/Build/badge.svg?branch=master)\n\n\n## getting started\n\n```\nnpm install -g elm-spa@latest\n```\n\n## available commands\n\n- [elm-spa init](#elm-spa-init) – create a new project\n- [elm-spa add](#elm-spa-add) – add a new page\n- [elm-spa build](#elm-spa-build) – generate routes and pages\n\n\n## elm-spa init\n\n```\nelm-spa init <directory>\n\n  Create a new elm-spa app in the <directory>\n  folder specified.\n\n  examples:\n  elm-spa init .\n  elm-spa init my-app\n```\n\n## elm-spa add\n\n```\nelm-spa add <static|sandbox|element|full> <name>\n\n  Create a new page of type <static|sandbox|element|full>\n  with the module name <name>.\n\n  examples:\n  elm-spa add static Top\n  elm-spa add sandbox Posts.Top\n  elm-spa add element Posts.Id_Int\n  elm-spa add full SignIn\n```\n\n## elm-spa build\n\n```\nelm-spa build [dir]\n\n  Create \"Generated.Route\" and \"Generated.Pages\" modules for\n  this project, based on the file names in \"src/Pages\"\n\n  Here are more details on how that works:\n  https://www.npmjs.com/package/elm-spa#naming-conventions\n\n  examples:\n  elm-spa build\n  elm-spa build ../some/other-folder\n  elm-spa build ./help\n```\n\n## naming conventions\n\nthe `elm-spa build` command is pretty useful, because it\nautomatically generates `Routes.elm` and `Pages.elm` code for you,\nbased on the naming convention in `src/Pages/*.elm`\n\nHere's an example project structure:\n\n```\nsrc/\n└─ Pages/\n   ├─ Top.elm\n   ├─ About.elm\n   ├─ Posts/\n   |   ├─ Top.elm\n   |   └─ Id_Int.elm\n   └─ Authors/\n       └─ Author_String/\n           └─ Posts/\n               └─ Post_Int.elm\n```\n\nWhen you run `elm-spa build` with these files in the `src/Pages` directory, __elm-spa__ can\nautomatically generate routes like these:\n\n__Page__ | __Route__ | __Example__\n:-- | :-- | :--\n`Top.elm` | `/` | -\n`About.elm` | `/about` | -\n`Posts/Top.elm` | `/posts` | -\n`Posts/Id_Int.elm` | `/posts/:id` | `/posts/123`\n`Authors/Author_String/Posts/PostId_Int.elm` | `/authors/:author/posts/:postId` | `/authors/ryan/posts/123`\n\n### top-level and dynamic routes\n\n- `Top.elm` represents the top-level index in the folder.\n- `User_Int.elm` defines a dynamic parameter named `user` that should be an `Int`.\n- `User_Int` can also be a folder name, supporting nested dynamic routes.\n\n### accessing url parameters\n\nThese dynamic parameters are available as `Params` for the given page.\n\nHere are some specific examples from the routes above:\n\n```elm\nmodule Pages.About exposing (..)\n\ntype alias Params =\n    ()\n```\n\n```elm\nmodule Pages.Posts.Id_Int exposing (..)\n\ntype alias Params =\n    { post : Int\n    }\n```\n\n```elm\nmodule Pages.Authors.Author_String.Posts.PostId_Int exposing (..)\n\ntype alias Params =\n    { author : String\n    , postId : Int\n    }\n```\n\nThese `Params` are __automatically__ passed into the `init` function, along with other information like the query parameters and original `Url` value.\n\n","readmeFilename":"README.md","_id":"elm-spa@5.0.0-rc6","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-AMs3Lfs1ZquSdAov3qPm68RZREII0u7HGjbDKnKxkbWxPpDiLT5tZobdr9l40PAONTEshG530q0AFa1xTx1fBg==","shasum":"a30a2a4b590ac72b3580a3975c0676868f4fa2b4","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-5.0.0-rc6.tgz","fileCount":123,"unpackedSize":569570,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4/zSCRA9TVsSAnZWagAA/94P/i4q8ZeAvUluTiLIsJSp\nOmLBmCV2lbo6pRziU0uTdHtZbnqGsWU0BcqAjIXvzE+DD1FdNacIDniaJE6w\nksG2HMxQGnFcE095eSfz7gavaNXZiVyi7wvW+skHNCKCXdXd/GoU06zYnRPh\n6yYb2rvHzA+HRAZx+s/L9Moexjh75EDHiE8JptahnND5hpaXLEyjQ8G5ZU0W\nA3s8C2ZKCVqeNzo4Q9y4bAmplqKaRDZm7k3FNu/CUoGjh9cPgbDnJu8bVLfG\nhkdtPMm2pp1nUeumcC4iTQjRPgI101vuT7Sax1pjicCel+agAO/RkwUkqD64\nPhuFjlPdBftGu5Ebf3f69Krd4rOA9O0vDcjuvP+3T6WgLjhwvMQzMFRHGjYY\nTWqesG/QrMurSkzGSCrUtRxtON5HgHQO7KoVtuqadbVN+pXCbs/M+rN+baN/\n/myTQQrLjfwpdK6FHSJ+OcgOOeSwfKIHjcnAhPD392is9sINB5+TNBrwQRse\nX2BQMWGXPQRsiH3YxKTeu/qVzHJ/PDYxzEjOWVpXy/C1/z28YFWsyhiXFUvx\n6U9rhoGK1pMfuj67sWeURKN9tMrcoQDaID3Byit0EIEb9bulkox/0Ozhqdo+\nrzJhNtrVoQLqhfs8JX4B6u+/jZ0cgY6W3CX6ZPHNT+GDJjBE8QX9Jqntatoz\nJbF0\r\n=RtT2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICA0VgOSLh8SJiKwTv4y3ia9oSAT4NCJ90bx7bHKMbjHAiBojeDF1NBMeyJCF9jPce7W9azzCsJpGUUO1BPBRZR6YQ=="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_5.0.0-rc6_1591999697862_0.7546426099241961"},"_hasShrinkwrap":false},"4.1.1":{"name":"elm-spa","version":"4.1.1","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test":"elm-test","test:watch":"elm-test --watch","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"_id":"elm-spa@4.1.1","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Gqwos1ykJ2N4zSXsq0CZ0pFEh66cMwSmkfTuVEwASyR0o7jC/GE0Es4Y/45ZHfoVxtDGqE0Y+uGf/Khtw6145w==","shasum":"fda12d055f8f5799f92a4a0b5e155c7aae4005bc","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-4.1.1.tgz","fileCount":15,"unpackedSize":113382,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4/3eCRA9TVsSAnZWagAAyMQP/3Bd8Tme9hLZ2UJwLYKV\nTirVNrtV/MN9oYeevCghiQHevS7Ij26ZZ14xRByWbP9MPWt/avYHIjnlhD7X\n/Ordj4b02ggU0vXSislJvFcqrdRkzei6qF6H32RkcxP3/me1Ove+XvggMLgj\nCiFggO5zkJIRjPhVTqaL6BXVl/vdEO6hfLiX9nYgt/Qs/TKFyaKWlyNmWBdt\najYBTGHrRfWQLI2pYjIcTWMO0CMFUjlgdKzJ2ic2G7Z+j/qQbwQlPCc2Up35\nYZAKo2EDB8aVPMy7xtasV/cT7kUVwQG2TIYfgJlDHlwuO7L10xO0XR9zkdlC\nGEw1oQMLP42ZEC9znWvP+Ec6mO89/wnk1sZY7ji0jIyJFtrUF1LM9b1plHv9\nN9qXxcdQgtcHhf6m87Z64yT3RXoWlqV4a/EJWxQ3Xd+jYDrmaQMStCiiqKNT\n9/GkSRA0V28E+Ch1qq30ihHgKmkoI9UUplvTrqM8g/BkmiBQ+IiVqKemp1pO\n/Y6E4Ob6s3+gqcyUYCIWLbGZf+ys7TD3cy0LcNxZWA+PcueeTbp3kDZ7Nl0r\nVegcRpzBHpLbhOAvPvcjDff79gPAcI/XbfvFvd8yKoenMcdZTLu8LzmxyR8v\nt2WVqPaV/4s0yQClJCw2a7/hqEK+kOVmfKR6a+iHE4WmWAFPQ/p50jRL7i+T\nLVyd\r\n=GKI+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC4JWJppDMMEhMxD6lTRCbVgFQ5DNRWxzqLDKCnG8TZbAiEAoKpEtgFzLGKIw7x0THHP+HPxDsEdHdAwlh4ZuD22wJ8="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_4.1.1_1591999966281_0.0477828280919077"},"_hasShrinkwrap":false},"5.0.0-rc7":{"name":"elm-spa","version":"5.0.0-rc7","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"elm make src/Main.elm --optimize --output dist/elm.worker.js","test:ci":"npm run test && npm run test:cli","test":"elm-test","test:watch":"elm-test --watch","test:cli":"(npm run build && cd tests && npm run test:cli:init && npm run test:cli:add && npm run test:cli:build && npm run test:cli:cleanup)","test:cli:init":"./index.js init tests/demo && cd tests/demo && npm install && npm run build","test:cli:add":"cd tests/demo && ../../index.js add static Top && ../../index.js add sandbox Posts.Top && ../../index.js add element Posts.Id_Int && ../../index.js add application Authors.Name_String.Posts.Post_Int && npm run build","test:cli:build":"./index.js build tests/demo","test:cli:cleanup":"cd tests && rm -rf demo","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{},"devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2"},"_resolved":"","_integrity":"","_from":"file:elm-spa-5.0.0-rc7.tgz","readme":"# elm-spa \n\n![Build](https://github.com/ryannhg/elm-spa-secrets/workflows/Build/badge.svg?branch=master)\n\n\n## getting started\n\n```\nnpm install -g elm-spa@latest\n```\n\n## available commands\n\n- [elm-spa init](#elm-spa-init) – create a new project\n- [elm-spa add](#elm-spa-add) – add a new page\n- [elm-spa build](#elm-spa-build) – generate routes and pages\n\n\n## elm-spa init\n\n```\nelm-spa init <directory>\n\n  Create a new elm-spa app in the <directory>\n  folder specified.\n\n  examples:\n  elm-spa init .\n  elm-spa init my-app\n```\n\n## elm-spa add\n\n```\nelm-spa add <static|sandbox|element|application> <name>\n\n  Create a new page of type <static|sandbox|element|application>\n  with the module name <name>.\n\n  examples:\n  elm-spa add static Top\n  elm-spa add sandbox Posts.Top\n  elm-spa add element Posts.Id_Int\n  elm-spa add application SignIn\n```\n\n## elm-spa build\n\n```\nelm-spa build [dir]\n\n  Create \"Generated.Route\" and \"Generated.Pages\" modules for\n  this project, based on the file names in \"src/Pages\"\n\n  Here are more details on how that works:\n  https://www.npmjs.com/package/elm-spa#naming-conventions\n\n  examples:\n  elm-spa build\n  elm-spa build ../some/other-folder\n  elm-spa build ./help\n```\n\n## naming conventions\n\nthe `elm-spa build` command is pretty useful, because it\nautomatically generates `Routes.elm` and `Pages.elm` code for you,\nbased on the naming convention in `src/Pages/*.elm`\n\nHere's an example project structure:\n\n```\nsrc/\n└─ Pages/\n   ├─ Top.elm\n   ├─ About.elm\n   ├─ Posts/\n   |   ├─ Top.elm\n   |   └─ Id_Int.elm\n   └─ Authors/\n       └─ Author_String/\n           └─ Posts/\n               └─ Post_Int.elm\n```\n\nWhen you run `elm-spa build` with these files in the `src/Pages` directory, __elm-spa__ can\nautomatically generate routes like these:\n\n__Page__ | __Route__ | __Example__\n:-- | :-- | :--\n`Top.elm` | `/` | -\n`About.elm` | `/about` | -\n`Posts/Top.elm` | `/posts` | -\n`Posts/Id_Int.elm` | `/posts/:id` | `/posts/123`\n`Authors/Author_String/Posts/PostId_Int.elm` | `/authors/:author/posts/:postId` | `/authors/ryan/posts/123`\n\n### top-level and dynamic routes\n\n- `Top.elm` represents the top-level index in the folder.\n- `User_Int.elm` defines a dynamic parameter named `user` that should be an `Int`.\n- `User_Int` can also be a folder name, supporting nested dynamic routes.\n\n### accessing url parameters\n\nThese dynamic parameters are available as `Params` for the given page.\n\nHere are some specific examples from the routes above:\n\n```elm\nmodule Pages.About exposing (..)\n\ntype alias Params =\n    ()\n```\n\n```elm\nmodule Pages.Posts.Id_Int exposing (..)\n\ntype alias Params =\n    { post : Int\n    }\n```\n\n```elm\nmodule Pages.Authors.Author_String.Posts.PostId_Int exposing (..)\n\ntype alias Params =\n    { author : String\n    , postId : Int\n    }\n```\n\nThese `Params` are __automatically__ passed into the `init` function, along with other information like the query parameters and original `Url` value.\n\n","readmeFilename":"README.md","_id":"elm-spa@5.0.0-rc7","_nodeVersion":"12.13.1","_npmVersion":"6.13.7","dist":{"integrity":"sha512-VqJhZ8KbE6i+X3rh3Wzo70GsWtf/zQekQJr47NRJ5fDE82n63WmOpKMB8rleHhvnPPhjZZbF5JHmHXbU+xJlEw==","shasum":"647cfe97e55a86e8d5ed19af716436876402f9b1","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-5.0.0-rc7.tgz","fileCount":28,"unpackedSize":283478,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfAo5eCRA9TVsSAnZWagAA8voP/j/BJwPrc06Mswswaq4n\n92Bfc+vuQvdMOiV9oXOgofP14e4EdWuUiDGfeOafDno48x8lUrp98ykktcLc\nqXVBWM+PManmel3BSKdPsx3Y4TNiFnBCU2bpdgNfanGtT13hLE59f7zCcVJi\ne7t5MV00pLLPp8Uqn5+i2+rHvATQ7/UYGCmLoZ2t3UkUm54f05XWbBr2Zy/7\nLFz4KCNMPSZRz/72pthphsiA7nE3Z0ev0jvXRxEuAlNBxeteErdzVx1tdvYM\nZ0uvpic8hU+eTFIgWainWfI8lFtMvPa9mUPZ6u8sNPbrZF2U5irpwpCSfqjP\noAaGNzmI+p93z0UnkSk/SkpSj4nnlkEuOiqWpnjTwtuhtHzvJXxP/S1CMufA\nLaGQORvub+ZAgR58YdB1OSCvgETUOFqHEUov6le24xFP99vPJMAcQ0rymQiU\nbREJSJieX0eaN7G1kYY5+nGUk9YeMhHho7Yqpd28KohcfbiM8faTnZv/TzjL\nxUsnmYz4HOVabhGRlSwscaqPGJL8kOOfdJ8SHM6S/V4iBjDGPumVYOqKGUWS\n7HDshy45khaBEdP+MMhbKB82LVGcYFEKcj36uPiTXj6AfhSwYJSrW6uI52SD\nL9v7/dT6D4Xf5GWg8dwoIq4uTqqhxUudYF/Nveb6uAZ0XahBFYn77YSWUFTK\nsKTZ\r\n=BAXV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOe/yln+z+Y68lvPqCc9Ou6iENYXxmGbPv0N7Z4Al8bwIgf0W17mCGvMGJWsAkXEFYz/I7m4azDh9Rc5FcK/KNDYY="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_5.0.0-rc7_1594003037650_0.2841540604389583"},"_hasShrinkwrap":false},"5.0.0-rc8":{"name":"elm-spa","version":"5.0.0-rc8","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"npm run build:elm && npm run build:minify","build:elm":"elm make src/Main.elm --optimize --output dist/elm.js","build:minify":"uglifyjs dist/elm.js --compress 'pure_funcs=\"F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9\",pure_getters,keep_fargs=false,unsafe_comps,unsafe' | uglifyjs --mangle > dist/elm.worker.js","test:ci":"npm run test && npm run test:cli","test":"elm-test","test:watch":"elm-test --watch","test:cli":"(npm run build && cd tests && npm run test:cli:init && npm run test:cli:add && npm run test:cli:build && npm run test:cli:cleanup)","test:cli:init":"./index.js init elm-ui tests/demo && cd tests/demo && npm install && npm run build","test:cli:add":"cd tests/demo && ../../index.js add static Top && ../../index.js add sandbox Posts.Top && ../../index.js add element Posts.Id_Int && ../../index.js add application Authors.Name_String.Posts.Id_Int && npm run build","test:cli:build":"cd tests/demo && ../../index.js build","test:cli:cleanup":"cd tests && rm -rf demo","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{"prompts":"2.3.2"},"devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2","uglify-js":"3.10.0"},"_resolved":"","_integrity":"","_from":"file:elm-spa-5.0.0-rc8.tgz","readme":"# elm-spa \n\n![Build](https://github.com/ryannhg/elm-spa-secrets/workflows/Build/badge.svg?branch=master)\n\n\n## getting started\n\n```\nnpm install -g elm-spa@latest\n```\n\n## available commands\n\n- [elm-spa init](#elm-spa-init) – create a new project\n- [elm-spa add](#elm-spa-add) – add a new page\n- [elm-spa build](#elm-spa-build) – generate routes and pages\n\n\n## elm-spa init\n\n```\nelm-spa init <directory>\n\n  Create a new elm-spa app in the <directory>\n  folder specified.\n\n  examples:\n  elm-spa init .\n  elm-spa init my-app\n```\n\n## elm-spa add\n\n```\nelm-spa add <static|sandbox|element|application> <name>\n\n  Create a page of type <static|sandbox|element|application>\n  with the module name <name>.\n\n  examples:\n  elm-spa add static Top\n  elm-spa add sandbox Posts.Top\n  elm-spa add element Posts.Id_Int\n  elm-spa add application SignIn\n```\n\n## elm-spa build\n\n```\nelm-spa build [dir]\n\n  Create \"Generated.Route\" and \"Generated.Pages\" modules for\n  this project, based on the file names in \"src/Pages\"\n\n  Here are more details on how that works:\n  https://www.npmjs.com/package/elm-spa#naming-conventions\n\n  examples:\n  elm-spa build\n  elm-spa build ../some/other-folder\n  elm-spa build ./help\n```\n\n## naming conventions\n\nthe `elm-spa build` command is pretty useful, because it\nautomatically generates `Routes.elm` and `Pages.elm` code for you,\nbased on the naming convention in `src/Pages/*.elm`\n\nHere's an example project structure:\n\n```\nsrc/\n└─ Pages/\n   ├─ Top.elm\n   ├─ About.elm\n   ├─ Posts/\n   |   ├─ Top.elm\n   |   └─ Id_Int.elm\n   └─ Authors/\n       └─ Author_String/\n           └─ Posts/\n               └─ Id_Int.elm\n```\n\nWhen you run `elm-spa build` with these files in the `src/Pages` directory, __elm-spa__ can\nautomatically generate routes like these:\n\n__Page__ | __Route__ | __Example__\n:-- | :-- | :--\n`Top.elm` | `/` | -\n`About.elm` | `/about` | -\n`Posts/Top.elm` | `/posts` | -\n`Posts/Id_Int.elm` | `/posts/:id` | `/posts/123`\n`Authors/Author_String/Posts/PostId_Int.elm` | `/authors/:author/posts/:postId` | `/authors/ryan/posts/123`\n\n### top-level and dynamic routes\n\n- `Top.elm` represents the top-level index in the folder.\n- `User_Int.elm` defines a dynamic parameter named `user` that should be an `Int`.\n- `User_Int` can also be a folder name, supporting nested dynamic routes.\n\n### accessing url parameters\n\nThese dynamic parameters are available as `Params` for the given page.\n\nHere are some specific examples from the routes above:\n\n```elm\nmodule Pages.About exposing (..)\n\ntype alias Params =\n    ()\n```\n\n```elm\nmodule Pages.Posts.Id_Int exposing (..)\n\ntype alias Params =\n    { post : Int\n    }\n```\n\n```elm\nmodule Pages.Authors.Author_String.Posts.PostId_Int exposing (..)\n\ntype alias Params =\n    { author : String\n    , postId : Int\n    }\n```\n\nThese `Params` are __automatically__ passed into the `init` function, along with other information like the query parameters and original `Url` value.\n\n","readmeFilename":"README.md","_id":"elm-spa@5.0.0-rc8","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-dvy+RYQAJBBNbpK1rRX9qUuSAvZNzaglDgRNCk+/dUvhZ0TkeqG5e+ESNsMLU5vR5u530E//Dt995uDqVI2sEw==","shasum":"b5f06d89efd7d17f88bd633bb0cf7513f0244166","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-5.0.0-rc8.tgz","fileCount":50,"unpackedSize":83250,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDAjDCRA9TVsSAnZWagAAip0P/R9QhgXSe2yISjFl2tuW\nYYz5UcRtCx/sSONADJZhE+NsjE8aR7ilaGKXUO+nRIBevd1CCE2KhuwakyzF\n2r8XjBsytkJ1Q685mhq3rpmyE31gcmwmVRt3NHoi3K0w0OdYDhDbn4UvCqyh\nYgiE3N1JNa9rMSBMqrO9yPoWrwMc11HHmU+jOwgjBXHIbjJ7FVnMjQzMsYLB\nC7vsyCaTYxgyw/9fps6zcBCbYrORD72st85tr28ApAJ4tcj9pcKFIh4B3Hym\nKJRCCW+TVjBKq8U6OsyIsDHK0AZSQV2CUOV8zKRomsTGFkzOwte3MeUdMSBa\nDtNUfl4DZvyiZ1ZpVWUN7cLTqxSjRubqsz0VIpJNGWVoAAN8y5gz10ujZyIB\nemyxXt5LWTbO2Xy3rPn+zxP0UxLlOp8rtQSRcTIf1VnDJvznZ2W2K1yMqwxt\nJ3cKkH2s1CMDuAo3UYCco43lGOAs21tdhiGCykIjK1jlt1Wp7BU8i6aKMTYA\nr6hvJ5+ZIT9UytrCKgPAmzeYXOiqd9LWPBCfoCHBna7NmlbhdkG0WBVqy4Rr\nVNARC0zkxYcLKc+ohl2xTjlLWjuz/2SbAntqqp5NqQbeBq2Nb/KR3C9ZHyKS\n5kl40o3UubXJl0YsQzuihUHMozYy1Meuc6tQC2ztdUCro200d1nrCmd6sV1v\nGT3p\r\n=4Ygg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICxXgqwEChU0opaLxtjjp9q45npazMrxZvoCHFwQ4MSUAiAEnFJLI1a/0zvQnEZGAUXNrMgH7lBUtRTkNa9WxFWWOg=="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_5.0.0-rc8_1594624194724_0.7521753480768956"},"_hasShrinkwrap":false},"5.0.0-rc9":{"name":"elm-spa","version":"5.0.0-rc9","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"npm run build:elm && npm run build:minify","build:elm":"elm make src/Main.elm --optimize --output dist/elm.js","build:minify":"uglifyjs dist/elm.js --compress 'pure_funcs=\"F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9\",pure_getters,keep_fargs=false,unsafe_comps,unsafe' | uglifyjs --mangle > dist/elm.worker.js","test:ci":"npm run test && npm run test:cli","test":"elm-test","test:watch":"elm-test --watch","test:cli":"(npm run build && cd tests && npm run test:cli:init && npm run test:cli:add && npm run test:cli:build && npm run test:cli:cleanup)","test:cli:init":"./index.js init elm-ui tests/demo && cd tests/demo && npm install && npm run build","test:cli:add":"cd tests/demo && ../../index.js add static Top && ../../index.js add sandbox Posts.Top && ../../index.js add element Posts.Id_Int && ../../index.js add application Authors.Name_String.Posts.Id_Int && npm run build","test:cli:build":"cd tests/demo && ../../index.js build","test:cli:cleanup":"cd tests && rm -rf demo","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{"prompts":"2.3.2"},"devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2"},"_resolved":"","_integrity":"","_from":"file:elm-spa-5.0.0-rc9.tgz","readme":"# elm-spa \n\n![Build](https://github.com/ryannhg/elm-spa-secrets/workflows/Build/badge.svg?branch=master)\n\n\n## getting started\n\n```\nnpm install -g elm-spa@latest\n```\n\n## available commands\n\n- [elm-spa init](#elm-spa-init) – create a new project\n- [elm-spa add](#elm-spa-add) – add a new page\n- [elm-spa build](#elm-spa-build) – generate routes and pages\n\n\n## elm-spa init\n\n```\nelm-spa init <directory>\n\n  Create a new elm-spa app in the <directory>\n  folder specified.\n\n  examples:\n  elm-spa init .\n  elm-spa init my-app\n```\n\n## elm-spa add\n\n```\nelm-spa add <static|sandbox|element|application> <name>\n\n  Create a page of type <static|sandbox|element|application>\n  with the module name <name>.\n\n  examples:\n  elm-spa add static Top\n  elm-spa add sandbox Posts.Top\n  elm-spa add element Posts.Id_Int\n  elm-spa add application SignIn\n```\n\n## elm-spa build\n\n```\nelm-spa build [dir]\n\n  Create \"Generated.Route\" and \"Generated.Pages\" modules for\n  this project, based on the file names in \"src/Pages\"\n\n  Here are more details on how that works:\n  https://www.npmjs.com/package/elm-spa#naming-conventions\n\n  examples:\n  elm-spa build\n  elm-spa build ../some/other-folder\n  elm-spa build ./help\n```\n\n## naming conventions\n\nthe `elm-spa build` command is pretty useful, because it\nautomatically generates `Routes.elm` and `Pages.elm` code for you,\nbased on the naming convention in `src/Pages/*.elm`\n\nHere's an example project structure:\n\n```\nsrc/\n└─ Pages/\n   ├─ Top.elm\n   ├─ About.elm\n   ├─ Posts/\n   |   ├─ Top.elm\n   |   └─ Id_Int.elm\n   └─ Authors/\n       └─ Author_String/\n           └─ Posts/\n               └─ Id_Int.elm\n```\n\nWhen you run `elm-spa build` with these files in the `src/Pages` directory, __elm-spa__ can\nautomatically generate routes like these:\n\n__Page__ | __Route__ | __Example__\n:-- | :-- | :--\n`Top.elm` | `/` | -\n`About.elm` | `/about` | -\n`Posts/Top.elm` | `/posts` | -\n`Posts/Id_Int.elm` | `/posts/:id` | `/posts/123`\n`Authors/Author_String/Posts/PostId_Int.elm` | `/authors/:author/posts/:postId` | `/authors/ryan/posts/123`\n\n### top-level and dynamic routes\n\n- `Top.elm` represents the top-level index in the folder.\n- `User_Int.elm` defines a dynamic parameter named `user` that should be an `Int`.\n- `User_Int` can also be a folder name, supporting nested dynamic routes.\n\n### accessing url parameters\n\nThese dynamic parameters are available as `Params` for the given page.\n\nHere are some specific examples from the routes above:\n\n```elm\nmodule Pages.About exposing (..)\n\ntype alias Params =\n    ()\n```\n\n```elm\nmodule Pages.Posts.Id_Int exposing (..)\n\ntype alias Params =\n    { post : Int\n    }\n```\n\n```elm\nmodule Pages.Authors.Author_String.Posts.PostId_Int exposing (..)\n\ntype alias Params =\n    { author : String\n    , postId : Int\n    }\n```\n\nThese `Params` are __automatically__ passed into the `init` function, along with other information like the query parameters and original `Url` value.\n\n","readmeFilename":"README.md","_id":"elm-spa@5.0.0-rc9","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-tclQJHZSJFIAIZ4RwHhjZi6TNI706m7q5JrP1llhXIfy7PfqQ/9SeTyRtUdK8Od0LgqNVlUT3Blfwkuidw8mKw==","shasum":"f370a80a915252b864816cd3ae467d660f72cec9","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-5.0.0-rc9.tgz","fileCount":50,"unpackedSize":83222,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDIRPCRA9TVsSAnZWagAANs8P/0avZHdP+zyoIVxEUfbx\nNlSg9pmTZBSTb8lrPVxAs1K6fdsQPPhmBxGcLWvOBWHNBjAiWfhzQ8mOgoC6\nQM6s2WRApPt4gipZgJ62H9Il+/b1kBzxf2/BSvwatEj63Z4/s4MzSsmBbuD6\nXQnt1MWl3uYiuGIxGTR+L+alCzTNkYQrfBXxfsfHIofZNXxkvrsnBK7xl7VA\nJMYzVZ53fq7RdIi/mzIIWVBS3rjDf3PyafhdpbM4m7LnsC9u9XDLkSSvaIQF\nLIK5V0RT8+H43BxV5Turu5VSYlG5J5X1X8JoNljZ5+4TgasG7RvCWU72wA1D\nu6rrAuh58iIap4VW9q3luUSpgbjxCgWmUhhHg3DaUzF5CIfQj9MuJs6Kiosl\nz/lF1ZiNQGo3+QstX5XPTiDezhOFUHgnjFjBzuO20AiWjbatWe3Jud6qzGz3\np+3t73JoKiiy4aJxLY986pYj91SELHqNgY2hSZVbrE36lbLDfek4PYNcDX0I\nkiTo3PvaamHtDP2fzdDkLa99InBKJFcYzYTUrbQYcP7X0dYz2GzY4NTZ1xaQ\nSOkL6fFJ1UFmZoNcyk1ix25PdFAd+xDIW8Pohlap3/FvGTJRT05lYEokmn6O\naly7Ai1NCMyH8fYuKauDcwkkxdffFzv4wviCmYeDvTpY485O/20YHajoD0L2\n2Z58\r\n=HoIW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxVAk+PXYgVeO35Ju3w+Ikj4aJ6zBfpgwqhHkEWClUngIgXRFmqswHkUdp5oZv10bVgOeQyKwFBqG67ZDwrir6wcQ="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_5.0.0-rc9_1594655822856_0.2655580752990063"},"_hasShrinkwrap":false},"5.0.1":{"name":"elm-spa","version":"5.0.1","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"npm run build:elm && npm run build:minify","build:elm":"elm make src/Main.elm --optimize --output dist/elm.js","build:minify":"uglifyjs dist/elm.js --compress 'pure_funcs=\"F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9\",pure_getters,keep_fargs=false,unsafe_comps,unsafe' | uglifyjs --mangle > dist/elm.worker.js","test:ci":"npm run test && npm run test:cli","test":"elm-test","test:watch":"elm-test --watch","test:cli":"(npm run build && cd tests && npm run test:cli:init && npm run test:cli:add && npm run test:cli:build && npm run test:cli:cleanup)","test:cli:init":"./index.js init elm-ui tests/demo && cd tests/demo && npm install && npm run build","test:cli:add":"cd tests/demo && ../../index.js add static Top && ../../index.js add sandbox Posts.Top && ../../index.js add element Posts.Id_Int && ../../index.js add application Authors.Name_String.Posts.Id_Int && npm run build","test:cli:build":"cd tests/demo && ../../index.js build","test:cli:cleanup":"cd tests && rm -rf demo","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{"prompts":"2.3.2"},"devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2"},"_resolved":"","_integrity":"","_from":"file:elm-spa-5.0.1.tgz","readme":"# elm-spa \n\n![Build](https://github.com/ryannhg/elm-spa/workflows/Build/badge.svg?branch=master)\n\n\n## single page apps made easy\n\n```\nnpm install -g elm-spa@latest\n```\n\nLearn more at [the offical guide](https://elm-spa.dev/guide)!","readmeFilename":"README.md","_id":"elm-spa@5.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-z7sEq7SiQwViSao9Tzho4DW2A9avtce/ns2W8u7HnLfekHHyDSUJzIqrfoA5NeoDfszD6l5N9z2BJmDbn3ypQw==","shasum":"45098580711b728f964b63a255f3d9bc828397c8","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-5.0.1.tgz","fileCount":50,"unpackedSize":79439,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDSfnCRA9TVsSAnZWagAAt8MP/1nSybTAWsJScn4gIXLK\nJUjBz3RjmKT28hpT8U0d0Im+AntVnpjMO9SSnnY1E31MFlZD8Pj7HPEUniqM\nZkDwVrdf3vL3lPXIuiwGZxA6K9chVBGpoaeanUW9/vzrmYUdslUA3N7PIy+x\nxsNfWfoYYyWimDRtq9iFU9ccbw+7ShDfJ+YA9BwKNBgNiz0+Yp24UJvF6eZa\nxLHovbEL61N1O7aDKMwqKmBXh8jSa1rJ2wGvky5j4k5REEB/g4CVsERjsBVM\nUfphgj0zsLtme0E9htzJc8qbZrG0omXiVbnCnodVbHLjCoPSASf+X2fJFlvd\nz11jnYZezIUk+VLxZcnhpZQilyjDeX+2JKrFrZz/29P+YPoloTj119LX83gw\nP5fgkRIx1gtbVpW50thpgFMN2jxRW+3MU0/5MQP9ur9N8VeN/TDR1wf2bdUL\nOBWuKcNah/DdmMyrQCUEP28higJkRmBi/Tp9POpjeHQOkXzNize/jWprF439\nUkomKwhC8q0caGucdZXDLnRz64DARLXB3zfA2HRcnWgulFKMDztWUAatLxE4\nwSPCohw/XeG70OHh6uV6AkWuynTU0BdJG5MIFnQkRHJqr/iA8KjgHmrWayyr\nGGGWJtDqbc65BR6imOd1gRk9vmUyIfPVwYTGMiJD0BdxJHiVck0xBm0qfy8m\nbX62\r\n=dZ2b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCU/Iara8moZIO43ja+HEZ1ebvRqCB2rVZ121fQsyYv9wIhAPhBWpblaPsshQkQa21EseIImSebq/JTP1HBpbTmWcul"}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_5.0.1_1594697703511_0.8478971631335823"},"_hasShrinkwrap":false},"5.0.2":{"name":"elm-spa","version":"5.0.2","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"npm run build:elm && npm run build:minify","build:elm":"elm make src/Main.elm --optimize --output dist/elm.js","build:minify":"uglifyjs dist/elm.js --compress 'pure_funcs=\"F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9\",pure_getters,keep_fargs=false,unsafe_comps,unsafe' | uglifyjs --mangle > dist/elm.worker.js","test:ci":"npm run test && npm run test:cli","test":"elm-test","test:watch":"elm-test --watch","test:cli":"(npm run build && cd tests && npm run test:cli:init && npm run test:cli:add && npm run test:cli:build && npm run test:cli:cleanup)","test:cli:init":"./index.js init elm-ui tests/demo && cd tests/demo && npm install && npm run build","test:cli:add":"cd tests/demo && ../../index.js add static Top && ../../index.js add sandbox Posts.Top && ../../index.js add element Posts.Id_Int && ../../index.js add application Authors.Name_String.Posts.Id_Int && npm run build","test:cli:build":"cd tests/demo && ../../index.js build","test:cli:cleanup":"cd tests && rm -rf demo","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{"prompts":"2.3.2"},"devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2","uglify-js":"3.10.0"},"gitHead":"d237f37e7d435b324fc75e5b19b006e1627db8cf","_id":"elm-spa@5.0.2","_nodeVersion":"10.16.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-uPSYxOoFWMPWybb1vKnfozAv7ITia3i1C0h93+fIuIVf5LPNIQL9egcr5nriVhivvCQPyJ4bjFfS+jV/7M5Ftg==","shasum":"c49f48d4f370f5f0b9f33e755cf8d9bb2fd9afbc","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-5.0.2.tgz","fileCount":50,"unpackedSize":79466,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDS0eCRA9TVsSAnZWagAAakoP/A46/ZHbVHpnpA2hKl1O\n+K/LD8FHhncZg6E8nzppruzW8Q39CtMq1njAF4fNVNy2SjOxyOTVCG5lW+WT\nvjb8oqcIEPdHU4+7znwoAamJQbCMwLGOX6tNIabL4J2x1Abz1PRMIT57ncV7\noNYHWOf0SZtPFaXusOAT+JiZVvqahQTcDt9rYu1iaM/+tNhAJpqCoGh2Hi0g\nCgNbxNDFKDKazHogA6s4MeoXGNREJKoazXK4I9JBu4wfbu+LTI0WG67vaBGw\nRP+SFGXGxqTUmuUapumyONEhDGeoXchNFzGbPY/1FtQEcnCIkpRTVKwIbMvi\nZ5bzc9d1AnaoVMuWBMSwASZDSOwvu4NvIOy9vtz+zNLfg9PjZpnqWA3lUx/y\nHq41pYZHdKZDeixzE2teo3/hJ4zu4Cx3aEQbBuFYQ5ToHmracGBjZBZmh7Uc\nLjr1BMcwB8QrIfXCCmXpFsJJDQI7dDkm9Z1vYxzv60nssxNW6EotZJ3cchUP\nZpya2hci6VMjl/AsUp2Zd4YwhfxcRBc1JUgP0T34R+kROgse/lNafCq9xuWc\nkF/gzJBNRzHNXXNt0VXSx7LQztIYwiuabemccJhI7LfGgCXMo5Wv0jEs3/5J\nUCxPwcyLvKEqrUoITYAMBAhQakOT0MVWebrP0Wi4vrdrQxUvyH0NvcdAoIST\npFB4\r\n=YWHW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDghWza4Iau6rO9oU1L4Ho1Fd4PXORzgReVFytEXr6VbAIhAKK/hYLJln6x/iw4kvYg5/GuDNLCcw669nQ03uq3eiy+"}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_5.0.2_1594699037659_0.7035874624242879"},"_hasShrinkwrap":false},"5.0.3":{"name":"elm-spa","version":"5.0.3","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"npm run build:elm && npm run build:minify","build:elm":"elm make src/Main.elm --optimize --output dist/elm.js","build:minify":"uglifyjs dist/elm.js --compress 'pure_funcs=\"F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9\",pure_getters,keep_fargs=false,unsafe_comps,unsafe' | uglifyjs --mangle > dist/elm.worker.js","test:ci":"npm run test && npm run test:cli","test":"elm-test","test:watch":"elm-test --watch","test:cli":"(npm run build && cd tests && npm run test:cli:init && npm run test:cli:add && npm run test:cli:build && npm run test:cli:cleanup)","test:cli:init":"./index.js init elm-ui tests/demo && cd tests/demo && npm install && npm run build","test:cli:add":"cd tests/demo && ../../index.js add static Top && ../../index.js add sandbox Posts.Top && ../../index.js add element Posts.Id_Int && ../../index.js add application Authors.Name_String.Posts.Id_Int && npm run build","test:cli:build":"cd tests/demo && ../../index.js build","test:cli:cleanup":"cd tests && rm -rf demo","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{"prompts":"2.3.2"},"devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2","uglify-js":"3.10.0"},"gitHead":"f1a9da54b3a976068556a61e4e2d5c681fa3d3da","_id":"elm-spa@5.0.3","_nodeVersion":"12.13.1","_npmVersion":"6.13.7","dist":{"integrity":"sha512-UWIFE4cU4qUwdyDbparGTQnhaJgTotAnLy0aDHpKIHMOGj52r5GSd8lZ1SGRkdmZArjPEHqsMeFR3rYAJ6ea9Q==","shasum":"beeeff9699e97dad265c1ad9acd0a18191303188","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-5.0.3.tgz","fileCount":50,"unpackedSize":79572,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJyaxCRA9TVsSAnZWagAAtOcP/1n8zHOYrFNZn/go1DyC\nQfNSTdwcegBSvIcTgFfrqNIEqySlR/fvJckugmICG5IG7ehScCwbpZ5BgqRr\nxv2bdKgX6N/wSeJFU9DfXE60KI6ySEAAk5chlr5jwpdql6LOD7DHaG2lCJ/b\nhmc+BuyxN44c+GjB57dqi6aswmYXVIXnyUEi1k+acolWxUeWpWmqfrXrNfPI\nowlCK+5jf3gDOc0lNOszarILmlafDfVtUGoPjxUPCKAFSGDPi7f3cjOuaRJX\nHVQcoQs0mcbrV7SseTbN/tbQdYjsSEPJnxSho9s2pBwmvt0hlOVeeSy+LaaU\n1UinTpU88qI/QJUWhE8x5wPH7lfvX7R7xhgKcp57ff5CNVu7MAQgzJhs20hQ\nuo24UYelvrHsHvivCRP1om7jT+jp9QVtTOSm2fzRtbZhbkMaNLZmdaZC3nUv\nCXB9RS7dhIo9/EEHRs5JrBiaxo1Qq1v9MLD0qWxa9F80FEu9mqOsxH/uWZAS\nd+0RQhy4TGfTKddR5+xJBAGRxIMKrSpFpvCNDqk462Hcxnq/NB54HkkI8D/g\nF0bIyf1hIMweHT0jsxj37+hxISKpdXE9U4DDoxSZI0DEbXUGytJ8dk+dzHGb\npebxollmepbG/U30WdYcHp7uUnt+LiCayuPEVd02DuY+fi9oluq27vFIYDoM\nHUzw\r\n=Q7VH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEjC1iiQaCN+Fo5JS5XNlauxP4sneOEywO1s3sVKcdwDAiEAhj8G3H/VLw0xMa0Zlw4vERYcNX1Eanf8xqJSbdarwYk="}]},"maintainers":[{"email":"ryan.nhg@gmail.com","name":"ryannhg"}],"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_5.0.3_1596401328673_0.06504921342436609"},"_hasShrinkwrap":false},"5.0.4":{"name":"elm-spa","version":"5.0.4","description":"single page apps made easy","main":"index.js","bin":{"elm-spa":"index.js"},"directories":{"test":"tests"},"scripts":{"build":"npm run build:elm && npm run build:minify","build:elm":"elm make src/Main.elm --optimize --output dist/elm.js","build:minify":"uglifyjs dist/elm.js --compress 'pure_funcs=\"F2,F3,F4,F5,F6,F7,F8,F9,A2,A3,A4,A5,A6,A7,A8,A9\",pure_getters,keep_fargs=false,unsafe_comps,unsafe' | uglifyjs --mangle > dist/elm.worker.js","test:ci":"npm run test && npm run test:cli","test":"elm-test","test:watch":"elm-test --watch","test:cli":"(npm run build && cd tests && npm run test:cli:init && npm run test:cli:add && npm run test:cli:build && npm run test:cli:cleanup)","test:cli:init":"./index.js init elm-ui tests/demo && cd tests/demo && npm install && npm run build","test:cli:add":"cd tests/demo && ../../index.js add static Top && ../../index.js add sandbox Posts.Top && ../../index.js add element Posts.Id_Int && ../../index.js add application Authors.Name_String.Posts.Id_Int && npm run build","test:cli:build":"cd tests/demo && ../../index.js build","test:cli:cleanup":"cd tests && rm -rf demo","dev":"chokidar src -c \"(npm run build || true)\""},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"ISC","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","dependencies":{"prompts":"2.3.2"},"devDependencies":{"elm":"0.19.1-3","elm-test":"0.19.1-revision2","uglify-js":"3.10.0"},"gitHead":"51eb1976d498681aa66d918721a447759a2955b2","_id":"elm-spa@5.0.4","_nodeVersion":"10.22.1","_npmVersion":"6.14.6","dist":{"integrity":"sha512-q9zyxHMSmaPklLgyvzaRAbNOTwfKWYRSpbO7LlK8dNogyFoYbCwLFJtQHUkpCNaBBGHfv9zE98k4rieNIssIFA==","shasum":"c06b5c42a717b9aae78ab169457fd66e5ce86d9d","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-5.0.4.tgz","fileCount":50,"unpackedSize":79432,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvSqNCRA9TVsSAnZWagAA+ywP/2+kR/izjiNMdxuvm7r1\njwjV/OEtvDVo2IInJ/s35IYinuqg0F9KIWybxLju7ocnVJp7otW3JZy5mFcs\nhadxvBt7XneMtOyGulTJbkRxabX0DlyupALTACPCZtWR9h35IeUvwHzVjr07\nNbE71ZrkXxW4/8fanMYjfDoH0jPJJdiHIGBzhT4J4m1JgpZ0I7bgcAVYqX58\npLGB1p717iEgHQTTE0xvGQ2jHLO5vKv4jp27ZlewL8O3oOGVo2WASGemKY1I\nOFP9Kq44UeRyJPqJhrWX110oIFN6Fvwa9EB9HL3MeLVyFKL2CJ+72pxjcftX\nX7l+YwAWQEOQvnKU2ARJeI8q/7XMzsTJ3ulu9UyiNn/qpxSI+9CDo3zGOeK6\nFgxHCMA6QFjBRYiGPsEfxQWw7Ov4VdJe7jF0sNGXR6xzDc7s2PB6Y09W5062\nIYgQuC61iLD71Lo+GXdc9IvwRykmK9vjxkI23l82VqNqsPf10P98JekBpJnh\nhmoUNOQs1smJYhkhN8il64lF0lfqWIRqr2C+FT4+ZQDgP5Z77CcV7frOdOzJ\nZ+NlVnQNmjfh6Je9F60jtMPXJXL+gjdNrUg5Mt+87QXmuCjstSsks7wAjwTy\nUxjlhj5uPAgPACTfEDjtmVLCwFSojvjkFlRL93fHoii6jRI5H9/0MnuTQCCD\nRGAT\r\n=RbRN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAFrs1wB23FzhLVPXKbEeBKVPPvMm3C05GAI6xeBRFKoAiEA0FQEGjYhXaT/ye3GiV75xBI4oDcMPmr3B+k9PLDcqeY="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_5.0.4_1606232711324_0.0065948021072732566"},"_hasShrinkwrap":false},"6.0.0--beta":{"name":"elm-spa","version":"6.0.0--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","elm":"0.19.1-3","mime":"2.4.6","terser":"5.3.8","websocket":"1.0.32"},"_id":"elm-spa@6.0.0--beta","_nodeVersion":"12.18.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-1Bk3tIHlalh9OAF5nTSO84T0wDM0npveQFEJiDp3/PPTGX7wR9BvvG/9iqbDCD+7RXt4loupIPaDTrMuYHOiRA==","shasum":"1558e01bde83e8034ead1b60e73aab2997172ee0","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.0--beta.tgz","fileCount":34,"unpackedSize":56425,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgA0P5CRA9TVsSAnZWagAAjU4P/ipS9d3JOOSFN0YO7NrQ\npCGSsjET5FyzniABfe8KpSSFpfooJW3LL9f6hgU21LzoqnTSZmu4WHnqe+2t\nVjJrX7ckh8zILQTg6KNfbIoP73CGugBK0Z1JhVKSt1U03e7weHgy302uikY6\n7pmkgZstfGrWvCNdTRHw6OIGgce6avWJnaL8jdZzHzpinwK5EWxEVwyfkoaW\nqch8YecX8hxbFeijmE9k5k7YHX0up4sjTzTk8AY1qx+wtalg2bFUc7madWKN\nNzrgCyIO9c6Sbwqte4NgnZKVJ3q7ZhLbNKoFXX82i64kdl/gQtQHNh2uV865\nB+s4I77fLeBTmb9JWMR1jA0FdwtC8VTKK4aPMSEoaBEgNmrgDP5CmaoEh3Iw\nXbGwx9KVZ6KfoIvJjVxa9AWbKcqdmbfvo7+4w/D0mwhiaFXcDmRg0soN29qf\nIYXC2kZCfs/1bnU4ceMiGDJNtc2OZVr9QOnGs5C564P1UTpojnOse7/s1DIl\nAm76T9KuXbC0SxuyBFvUJIW3gIGi9nGZ4JIicPRvLU7p462Y9G7mQnQz6lAA\n+ftLbkNMfWHEVvXDC7RvCLZxGUewietHLHnympxGUILpFcRuBlccX1awaulX\nhI8c9VDkKc/Xy11RfQd2ZRtgl0pVCCNhn/QUVgicPQ5BqwOrEuvuDVWF7hUT\n5Tyb\r\n=b5ZG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaidcPSJ/QscyKczEs62oxnrhLyXO7m3f8YaCeNBgeHQIhAKP6FCWYxiemp8HK4YlP1tQ3tbx7a9kwqe+pCaic1stJ"}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.0--beta_1610826745137_0.3013657116381536"},"_hasShrinkwrap":false},"6.0.1--beta":{"name":"elm-spa","version":"6.0.1--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","elm":"0.19.1-3","mime":"2.4.6","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.1--beta","_nodeVersion":"12.13.1","_npmVersion":"6.13.7","dist":{"integrity":"sha512-pnxiEnRSZ6aamewz/YZQJV6BQqaGISVUuy6VvJ+P2bWYEz3/iti2Igjige8gSkBnEl+DQgT97juf9haf8K7Krw==","shasum":"9fb6653e9dda53ffcf2786874b9cd704e4646288","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.1--beta.tgz","fileCount":34,"unpackedSize":56627,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgFxhDCRA9TVsSAnZWagAAajgQAJLJkLZlfCdiQ4zMLpas\nrCZoZSoFfNo6tI47qu3E49aCgnFG61yVaMCNDctLDcntHevwAlDXCfTGNBNO\nyBYsqelpefskLWdKFMORm8BUU2tKbUnKw9FlU63hqX139pY0/IFJgBvh575H\nyQ4FaeEowU7r8WE5uo6reY+nZuM9ohSMuW1KuqLrY2lytqtavFoEWVdz6Wx/\nVTRHdjOk90nrZ8xQg+1gXXLI8gEciq9J+yxf73PRUfuBQFZnNmqFhTQ5s3xi\ngMzU8UQyHOkN49i3yyNatwmDXsph0K+kx7FwOxOO53R1ZCwayY6ZFWOZXW/F\nsLr18QNcFGm43NUciYFDA/w/DKVDDM9pF0VaeHWib07dSQfWBeGtlBRE4u56\nMmhc0VJNbufUnBgV6MEzPz8scwMpfGPrsDI806ECOSxLecfe4o3vUe9Y6iBY\nBl/0Zpo4v/lNN88717e/Rlj4mBaM/SJWeuAgpGDRBdE+MYoH6mnTAOz0C44D\nww7oPkBiDFfDMnrxCqfkpdko7DTmyv2iLn/D7ApCNT9aXO2mVhxLhTpMm1fA\nPvyDW+OkSc8Q3ZU3+FWLQylTuc+GkRx3s9/h3UW3tG37UpcuddTzdYPWn92g\nIR4Pa1Z4nAvPEJnq7yTMsk4zfTa4FtnxfvUdfAUNnu2JXBoJQwnJt8I3q9kc\nrKYM\r\n=gHhj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIErje5pHkvx5ltOtjCLBtcmUAvQ9rZZ4AFrq6XqrKQG1AiBraS4NN9TVjW/b0kFFGNDVHRryglKPX+pvyLZV1Yqdxg=="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.1--beta_1612126274756_0.5071864791055873"},"_hasShrinkwrap":false},"6.0.2--beta":{"name":"elm-spa","version":"6.0.2--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","elm":"0.19.1-3","mime":"2.4.6","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.2--beta","_nodeVersion":"12.13.1","_npmVersion":"6.13.7","dist":{"integrity":"sha512-Fedb3JoYsNJGizD+1mreElCs1eUbxxoIYOzXiHyxCPSL0iakqLreOojc0BXtq/Ei7IOw6BsJ+Re8BECqHuh43A==","shasum":"a61a9f489655e2a6ef872bad1f0d686d16e61875","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.2--beta.tgz","fileCount":40,"unpackedSize":62393,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGOr7CRA9TVsSAnZWagAAx1gP/RZSWuVRnfMb/BQIFU+E\noDprEOSq6qx1x9l8K1kWrad9gASvFf2RNIEMGEeDKXbZYj9WAAGnmSVNsHNC\nTmCALJ8hxZAanWxvELt782JfAnxECOdQ8tLC05997CDZZD/NLepKNgJoFz4g\nsaFkscslf6evFjyEfig8BhYdxttoIxPOzp8mfa0fXEZAd6KeC00rnUAmfphC\nSi62LUHsFACk6wSyhijcKQ7eGUKZxvNydY7gUwQHrlRz/nvSxzrTktmvp/YB\nEfDs76PPXbXl0/XmmrCguJXGAktJ/9GA2RPnvdgu2nCS1DL3jzInJ4QuACOd\notMGwUZq+Jo6BdTZWulQNGqiPBBI1oCHN2wpl7w+mPljyPaPzfDEoyfUTA8a\nIgvO9S1/WMsJpVci09MdFbtqKEMIYBweuMNK95Tr7Ix1OwvjrvBc9HMzLYhO\nWjWeTWAU1bqVQv11FdOm+v1cqE+5La2uqJSms0QjZQWRE2E1to9Wtcd1qyue\nDwS74NKY/Kxg1Ed/tmErgoYm2veN2/TqFvIrsL6DIeMg8e0ZJRSO6u3EXNkI\noMu/PsIWNih9G/uvvmWrDxwp/BZWNAvgf/G4kavmkNeLM4hmn4A/HBZbKWlV\nr56anGo2a12Y6Di/tu32AmcJlI69h8sFBir9Zs8kq1wNDwgimCOpuUmq7S4W\n8QQZ\r\n=e+Kz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICrM6VEQs5JlQzxun77gP5d7biPFkpaVK6o9IAdb9uSxAiB8ftpNS5Z8lWAq1INNHWg1x13TSWZbS5abcJmU6rSA+A=="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.2--beta_1612245755068_0.2538467756152889"},"_hasShrinkwrap":false},"6.0.3--beta":{"name":"elm-spa","version":"6.0.3--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","elm":"0.19.1-3","mime":"2.4.6","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.3--beta","_nodeVersion":"12.13.1","_npmVersion":"6.13.7","dist":{"integrity":"sha512-X/ZAZWeydaCtj28I2dB6McDvMEr80i9p35TE4pEvEKbOpa4rIWmQBjZ2CnIgkLC8jNhKTsNhhf7R+XpflxOkiw==","shasum":"1a0fd306a0f1ff0190a9fcff63d4cedb245be64a","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.3--beta.tgz","fileCount":40,"unpackedSize":62414,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHH/xCRA9TVsSAnZWagAAHF8P/0hi8skMaOctIsArfbiR\nUjiFQbfmewyDrmgpp+NPELwERz3+w8tW+aMWbY4pJZsML/5jjH1/ADEGTd0q\nT4zTUFf7T6h9MyVI5WBc1ZxJlXbhxDaJhbvbYMo1q1N6j2V/Ll5oxnbf+In7\nrF15uDtEQvz1UXM6Q6HrH2VvLz1+/bOrhCvr0VhVp7LBctOOje9BobcSNvLi\nyKfQ3xqxA8KuI3yTWLFUka+w153yKxqmosz/rml8Eh2Saxial5nqFC8+rtYu\nbIAeqK6sBXx8VcvWrzSndDhhdulCy9rQYuLlbip3wmUhDQrn4owdq8KtHZs0\n4H20evQW2WPBJkCqCLYP1yKLLOmC0D8leBs/CJiDQJdd11kQ8FiwDkKxyNpm\n8ywZg2q7mFHdbCzUnJ6DIOfdLEjBgzTQzCeAadvbg/KLPJK+shfn/DepeeyU\ndzuPWy0l+MBItcC8BrNYTDdDBui9iR9a5Q/gmb6Xr3toY+plVey66HkXhipf\nqrbXz1QJlWgi0cr34i1cZqPGc/oeEZlDDht+40Q2yY8TsfLBiDzPEt9oPQcm\nwJYshPqBSJG1BYCmOBDlagIVlS5Oev6jbocHzksnUsclBUa57MWU/2ZNXpg5\njCktgFaWMM/I6dejswOLZxyEM0cuWQhX4pho1JBjpxCUbUH0PP+aXQMmvyfE\nP5sM\r\n=1I6O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHNJcoI0sm/Z67qgCyG+Kou4Edav2A+wqLtATHHwdWJ7AiAbrk2JRoRuTUM92Lcfvl+XUz9UvmAeCKrW52DXYV9fMw=="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.3--beta_1612480496544_0.18431904729534154"},"_hasShrinkwrap":false},"6.0.4--beta":{"name":"elm-spa","version":"6.0.4--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","elm":"0.19.1-3","mime":"2.4.6","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.4--beta","_nodeVersion":"12.13.1","_npmVersion":"6.13.7","dist":{"integrity":"sha512-1pHPmi9ACv1zIHaaLMdM5zbj4HiUeChy4+NdXZi5I6D4/rblmTj6SLpdzVwLDCnvol0qeB4iYPhs1aMzpewRng==","shasum":"3e75ced7a7fa275371d185a887421e496b951287","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.4--beta.tgz","fileCount":41,"unpackedSize":64689,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHNOqCRA9TVsSAnZWagAADDMP/0y+2Ixswm+yQeNs6PQ5\ni1XQPRYNy70LIneAbY4AtL4XXCD5a6hhM4YywM2keXBz3SZm9X1hDrNf45O/\n7rtyir8/K5IzGmiBPAkQMnUjkqJ1IrKTlJHspTaS30Eow561MHMchvA8V09m\nf+T6UMyifcrql4uLXsX3fwHnD5VIeaFlv+eS/ZoLMd6AXPNGvk7zp9IqUSsw\ntgjxuqFwzXhKxlHoKECilJlYeZzHe7UHRQfMRnxPv3BpbbPRXhHTVytkEQKP\nOx+FlG3KsNpIpL/w7k/+8TH3MWfeSHKdNv5rte9j/17A65j/EStNy2v1xlwQ\nfSX4Uraem1NuUeE8GA8JYLY9z2pCDUz2XNZf20A+4IFpu5FUJeaEcWfrxVVt\n0vY+sikOcbnbaB1D2v0GhgaB9wwxDbeNLt445wO1Dhf1rbPMhZzXxRd3TqWJ\naNO3ZsOBixMEvLpRmAf6xfGGYSt+tN32v3qhDtv+5/5msBngWMEz9SZ9oKCL\npNB9dF+U+rcmZnvuatIO1IPWigFOEq9lI0dq8i6IpGAJkUk2rhCulOGZIvKP\nFrCoBbuftijklRQ9TNpWGCsU0VxrJPrN3PXBtnHDC9+gkE5uqTob58isW3IK\nbWANgfHvtZL6oj3ZKu96gle24nMd0y87uKQYgtd619osB9rmCbhPEqYPwMpW\nkt1I\r\n=m+H3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICwGkwD+R55OivXcs1tfpnUBVndFloO6cXIRMlb244CdAiEAmf9sj4uGP351KK9wf+QA1IEI2Y33jl5uznSL1AFGcys="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.4--beta_1612501930189_0.6910619166284351"},"_hasShrinkwrap":false},"6.0.5--beta":{"name":"elm-spa","version":"6.0.5--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","elm":"0.19.1-3","mime":"2.4.6","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.5--beta","_nodeVersion":"12.13.1","_npmVersion":"7.5.3","dist":{"integrity":"sha512-6F5Uyu0IGfEV2fruOJ/UZJXeF4z24qbfDWaWmTDKye8pTmqqT/XOWQU5+BPwxZQx6PL9nS4qUu/BB6V8sB8a4w==","shasum":"644f6be0fd7d4226593ef5598a36f9470138c9a0","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.5--beta.tgz","fileCount":41,"unpackedSize":65224,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIzjsCRA9TVsSAnZWagAAPt8P/j3kXDkl+5bkFTQAN/ts\nD0s74zGOAbTwH86AhNaoohmcWOhhdKNmPWSeoA+em7J2mLu1Wg3V5FhKTVa/\nAFj+3sOblkU9LJMblFUlJGAkbxje+LFfZ6HqhRz7gXiUmpJ2ZAp4JZ79UHrL\nw1bedMN1S5b1vYPSuaiwZ+VkxqlQF6x59ymdSlq1/FTy2I9XCGP6Pr912s0H\nxQdoc2xgH4tdcHiCtiuQhP4W8CaaNtxlXRCvltZ6aF3FwEfv3ufURAOybbYP\nPW3N120bK/My2Ra9yoTxCN/EJ9WqA8D4rSS1g120/MdicIMEjkxb7CrcrpM+\nmRsdzgp0B6d9Ieke0zLXSFrvro7d0X51AtiXXcfAkBIpCQJtjcnrDQpnCAfb\nb2BU/inGeLzGywV+tYI3+KSzouDzeoFGcr0TtQQfg+0ghAudvoCH9Yhw+M5C\ngOXa6x4FCaOMQ0QXtDySkHaISpHSYNep/hmBmxtuna+yVbvz6k84qu00SuUv\nSjzc8uAodCpJdSlRbb3w39d+696G45kjLVdf8Tb+HoOvXydFg4HqcTQ68hpA\n2JagytuUsEk4VRseAU7Dr0BuREwCstH/yv7xllxtAPV+C0YCvvoRM9f9aufQ\nu3YYF/5WquvcVdlW0aUqXP9Ms9Rn3M6aBUdyGw4odK2NiH5q4haX11sDOSZb\nIz18\r\n=sQ+5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEs7k6pPO+hINRAmfa8qyTcwX3lQKScqwVvEomh3HUk9AiBB/E9LEo/XA6ICumXs8qUwQN6GiJp+FR8QqcXheL8sWw=="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.5--beta_1612921067506_0.6575045910926192"},"_hasShrinkwrap":false},"6.0.6--beta":{"name":"elm-spa","version":"6.0.6--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","elm":"0.19.1-3","mime":"2.4.6","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.6--beta","_nodeVersion":"12.13.1","_npmVersion":"7.5.3","dist":{"integrity":"sha512-3GLmHAQMBe++lny4+aTG9ndKQ630DoBROf8td/FuDGaVVo7IKSLMKsDtLuCevswsi6hQxlAwnaQjwbzzcebS9A==","shasum":"3efbf8b3e1eb4eada08d97708eb270d7c1424264","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.6--beta.tgz","fileCount":57,"unpackedSize":83332,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKsSFCRA9TVsSAnZWagAAVe4QAJvSVVxcPQSm6r9n1N02\n3/V3UgMjwdQtItuNDvgXZaLtEphVRX9uLp0pUvig+dTYABguc3dXZtE2M3zu\ntoxy0yhuZzPVzBdfIb5mYpipboLwyRzs5RUidpOXDIDLf376ckl/DedSP/D9\n5qePJWAZ4xBKbq6a0VDJJ8wMxEheiuwpjqmMB9xJBM9wGvGoq7TxJgbk1zYK\nmcuER0Hze6C+H5WGKKhJ5kupL+L4F0tfdlvdjmhBVuYix9MSqdwdUsVYIwCR\ndKUO00cpLJsvcvDdMPbzXL62OpWXOVWumFD/LUH8lkKrznzgXvoE4TXKPBut\nvZTNXQgYpPuZU7s+8Ha+bJF5JBnracn8hBdxzzh9SmzXr8WoKTjqtEIEmTcj\n6skLr5R0/giKMcEra9eXpS0zTPly89MZ3/GnDMsIQMXSaHBifRE3zw6SFlJj\nnpimDnsKg+OIGSWsjuFP7jJ0tLWQ7cKUq5X/efU7KwJs8ovJ2CM3/pNNMng0\ndE9qJNY/vqBNoxO68nBZTLYn9JBP/ROzNf5/ERgnU1O9yPPPOCoa0DWmYPVh\nU2XL4b5m8pnqx3Nqx9CySzqWCTpqlaolaiX2MyJNRyOzJpqOsmucgw41gIX6\npUEBoLUz1i23L5ZSaLQZijv7TBMXzrwavNpyScTtBsVDMNCIKjmQRtwjQwX3\n/8yE\r\n=FFlM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/9TWFEG3JKbPcZycBn1ZZLlP1mddPgR3eF7kCNi8RngIhANBy74zGvgahjwLsJ1JkWgifVFGX7s1gT7R1dY6zUs6A"}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.6--beta_1613415557107_0.21027455341255274"},"_hasShrinkwrap":false},"6.0.7--beta":{"name":"elm-spa","version":"6.0.7--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","elm":"0.19.1-3","mime":"2.4.6","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.7--beta","_nodeVersion":"12.13.1","_npmVersion":"7.5.3","dist":{"integrity":"sha512-Nz5VuOyI7aTJJKM31tpVpjQldU6g8bhoSOnNQ9yprokFdEMSLzFcnMBGHS/6YmKqZ/W9MXZ8HS2ixShsH6vj/A==","shasum":"e4575e4033132267057ad139fe7b5819537b15d5","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.7--beta.tgz","fileCount":57,"unpackedSize":83457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgKtfpCRA9TVsSAnZWagAAqr4P/1mWcHeVRVZ0MWTvlARj\nbD8WllQiWaEFago3hTuOS+MnCJA6uIPpJ74hyyETF6jgmbB+NAgpuRBAgkP7\nK2yX0vRMk0PAC3wdXaa87WindgpqXCxqTjCXND7G+vJNhZYoGGiapsYXMqRU\nMEouXakT5EG4WQ6nv2ra9vnVGtbsqpg6sWFf30dQ1nJuFzrgP8GvjkWN5ibm\nO/qINaxPuqAqFdflMeyDiaunpHN1qQguW77bEV1sL+teZ9mYuSd0e2DL/w8g\nWnw10s9QRVrBRd+ZLxHF09O5ahzPipvPgNsWn6MEO+ll/gaywSTBJ1040uJo\nr9THGwIclER5FE+XM958+885/lKAZ5//5CqG35MwRTeXMdPGjdUq7lUKAkht\n47UPwJ9Lka039UgCb4c0VddjSGImYbVKQTtNO72BXGYIHrgofdFmUCOosF4I\nivSd+EQVmaSd6WBc02otmxqlzDQnwzNho/VjXh4DT/hHlLCROk2SR6x/eAnu\na8/0GYGdV32I8waZjOixSVUG/RpRDJ83a+2Xe5qbcbEOItenrt1op47J447n\nxLpRfVZpg12VwVq5qPek/dHd62bWjBTKF4j6+Q+PYNUojWo9O4HnP/4N8Axt\nqJm1zwUnI5RyR4JejDwQXdE4i64nIDCJvXkk7ZRx2lRfk+sqCG+ayTRUCVzW\nA1Vo\r\n=y6Di\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAbHqAZgxuG2qA8tBoI0Ah50OhotOv7qSLLdmqr05eJ1AiEAzZIzywF9/2j7Hn6NZzzVTJCmEYzmXwEDASNTv89axDo="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.7--beta_1613420520653_0.7767474902930216"},"_hasShrinkwrap":false},"6.0.8--beta":{"name":"elm-spa","version":"6.0.8--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","elm":"0.19.1-3","mime":"2.4.6","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.8--beta","_nodeVersion":"12.18.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ow2DV1dlJhbdl4DSk8mmT3QG46rgM8JnW9cmxWHWEeWzlLK2qN9HfGFNk//v+LiOPMEWyf1Xh3myOmp4aZhEzA==","shasum":"06bb321d9a56a905f66d2cd03470479524e555d0","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.8--beta.tgz","fileCount":40,"unpackedSize":70176,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgMtKbCRA9TVsSAnZWagAAQ9YP+wVwa1JGQtgH7FPUDJIl\nwfjLMwGC/c8g7/MqzU30+XhQFD0IcAtcLUYE97RIR8bJGqYVfLdACKjIYUvq\nk4leX43sy+HjodlJwKwTam/SrtvZrvJhhNhdgjE5uuODJhk2x7spzIhyDwop\ntTou8LvlVM33O5mLLiG7SsR+Z8ysK3brE/HuabmZTRi9MLMZ8UPoocYf//PP\novAk0idWpIXutg6zILnHQr07D4pU05DbRMQdF7Plgw1z2jafQ572J26UPPrC\n/38W7V5+Qg3mYZRWP0SxJy4ReD/o0AQR+SrlTb7PNm07EmD1vXooV116e4Na\npFkmcigoJCnxOhHHA3ns2Bq6qw8krNQzYmobEgngj88ajU3ZN+KL1L2VWk/2\nxTcbwj8BdC6iwAtfdI9qxpWtFU+FYh74hdWJHyN7DGqJyH4aD8seXrVUw8HK\nN8D9ocFFjeA+DY2nxLEwnvuzMBtc25XvILAN2P8RLuq7wC9ggI7/NXVO9umt\nLWzZ1+Li1AtkvMtwDMZvwFq+aOIEDgTVzyhGEKRXfWA86ReDou9fG1A5R31r\ngl/Nj+0ovfPLtMbLXIB9chEtlcuTIywVKNZkwFgWhwLku9Z0BevPfcyhrMy9\nINg/RGmgfv2z17DmlNwh1wGJZupSvmbMjitwb4OGWP2gUDWF6DJL5M7V/+6x\ngfyO\r\n=rEfV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEQwK/aiHpMbvPsRNtl6DZ7wcbSPKCX32vevh1255vEiAiAHhQW20DSH2Jc/+hOmp+deJmdU3jmf+i0+jjnZy7nJQA=="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.8--beta_1613943450571_0.4368538377752269"},"_hasShrinkwrap":false},"6.0.9--beta":{"name":"elm-spa","version":"6.0.9--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","elm":"0.19.1-3","mime":"2.4.6","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.9--beta","_nodeVersion":"12.18.3","_npmVersion":"6.14.8","dist":{"integrity":"sha512-eQ7s7lt2ssOR5UfZ9KCBdrK7OTjfHvuOGrl/zs8TZEd8tnGboJbmG/aZGNfxUMWI+2yPoMauUUoGFd9lUUHwMQ==","shasum":"7d2e4f12ff588715adcd373da88a220738ffb4da","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.9--beta.tgz","fileCount":42,"unpackedSize":71138,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPsZGCRA9TVsSAnZWagAAqfcQAJhz6d512j9TZ/FHMFFG\nY5MJ6Y2+W3OOc1riGUItnoGHMno1If2hEcUg5xPh0SABn+BAurGmGuA9SQxl\nngxO698WHlDSwOA+f0pZuqzfHq5y+ln5C5ezYALOuArwiRQ6zw2iLcgs0653\nl6M2o6/Qq5KjzA5eafWRBbX5knuaekXtP0VBuQnS0AQZPR0940O1m5d+iiDT\n3sxsO+6bynx3zczV/R7vZx+UW+f8t2hTdMp/Tq6+86g39k8YYktKHQi1WtTK\n6Gm6W9SP8EHRFSCH0PxpxtqBxi5a32528hWSpck2yKh3/rQV7X6dXmUIZ+1q\nu2e3VYK74apDDPZhoJGFOZ0SmdrRERlukPbvKhIwOVfqrnp0x+OixaEDXG7K\nedoQonCucjGy1230RPzq5oJ6OqJbrWfFiT8IFrPba2/VJmd9gB61ODzUiTuw\n5DmfWfg7/eeTWCSPQ4/1XWNvRzxvONf47hDXow/jnI8U4ZoKFzxr0+T7x8tq\nISnQj0ijnCpq2ai49VxiQo2NEwkhAJ1GBgAJHKFsSKjqfpHZRg+dn60/o9Kz\nfP8oZ3LjeGIDlEvDqwzWlXS11I/vTmG0RHtmmUfZeqvo+YBt3JziotnPTD/I\nx9ONSTFVoHMiTyp1fEhbn2EvgqrLfqlnO6VWmm0EkpVWh6XNtWX5Mu0J8noP\nEl1U\r\n=a/fy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCT376Y6H4ltD8v9eknorRrj8rigDZ3PIrGyYg5IktCOAIhALM7G33T98Q0/niW+TEXb3yDGqLktmwQ9jIkd3tRAzY0"}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.9--beta_1614726725459_0.31327155171375054"},"_hasShrinkwrap":false},"6.0.10--beta":{"name":"elm-spa","version":"6.0.10--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","elm":"0.19.1-3","mime":"2.4.6","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.10--beta","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-VlUuyz3eJq04BCkZ3cQeehF8Te5SxUAuT1SvPoLNfg7eDwn9aI0wNni1iIsxXXFcm1UoW9G97+yPeGPuZyDf0w==","shasum":"26a41fff798209998398e500cf7b026057e78810","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.10--beta.tgz","fileCount":41,"unpackedSize":71263,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQXdlCRA9TVsSAnZWagAA6sMP/iLGrFrlxU6mx8EY1Cf8\n26tkDidcKoWI+Ms4j5M0UvMs7dchxXsgurydHp6qlUNmU5zRE02czIO/RFjk\nj4jwEOHtN1W5pg9cJAjnFzwcZPDqFCQx+q1LIci2ADWaZMbP+yPTyUmzHOHl\nWthqLr3VugYJB8z39TeWtug5rkPoJ8CSL5iE91vzDPmVBoNQKMu3UUzDq6vo\nPI5yM564FRcTa5c0HrI394yYBNgY9CKwSAqzPEKTtZ78bphz4g4RiFiVLhbM\nyn3e36y3mXQcfGQRetL2LKahcM9pxhNl3pYB6J7cVDMLyKTG68hNOn5W6yC8\n1A2yyLhHyPTB23e2IGJ3nls1NPsj/3JEFW+SAsS/SDmKS08/bcF3/WeN/oqt\nHR2w+qqyZsAqKcEk20lXFx2DkMo75PfLa5DLCk7En4aiBH0bMJlG6rnWonX5\n1SMEOPsdLzYhQXvuLpE+1jHkKBNGhCHZsw8WI+Nsn64NE1EULb/+kUn7v8iY\nyN4QMbPGjKtUgCZpoAIYaLh7OTlwXPwiUkUqX/YC1RtmPBAPOz3oJ8Cxfv2O\nZm6LbOKv7sqXt+w7kUZW3W1YQK+DY5uxoWAHILRLkeaCtImvx/0sAxH1NLLz\nvJMK4ZyfjvHzHog9USW6+vWzWu+20sNQEgP7t02US+Zd6TSqX2B6WfoIEaVN\nAkY6\r\n=iic5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRZV/UlRrueq5TA1MtxSgfSbgkJqZ63B63etq3qivm6gIhAL9nIYDHTC1URTSxFrPDf85Pjk6h40OJi7RQVLXplF7c"}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.10--beta_1614903140972_0.8679538475871329"},"_hasShrinkwrap":false},"6.0.11--beta":{"name":"elm-spa","version":"6.0.11--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","mime":"2.4.6","node-elm-compiler":"5.0.5","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.11--beta","_nodeVersion":"14.16.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-u35Dmu1hK0GOlmjJHtwoXZbLgOUs0xJ2jBNl3jCZ6pINVkS3uBEIDmQnRgZ/yKD6IElLlwbufsUIuFyuGHLQYQ==","shasum":"b46b16bad8663dc28e1f479a897dccba58d2aeed","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.11--beta.tgz","fileCount":41,"unpackedSize":71815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQY9PCRA9TVsSAnZWagAA5oUP/A1OyRRMYj8kJull/iGc\n3MgrfkDTWxMi86PaW7eWwbo2tP/MC8NMzG7Ya4zy5AsEvUvjzyp3v3NDFf2d\nF+CvyFvoEZeLVKmkQgS0o/o1BSN2LqiTebkA6S42Otsgv8gDlaCA8u0C0va5\nWs4mUdygk1UTaE9F9o8+ZIFxqmHPNzIMFq/msv2NCf8d+5Vj7qiyLQfsNEsu\nxZyLpDPBdYg6fiGjzFZYB9Dhau/AXta8nn63H6pyXju5+pM8reXhGqjxOdya\ngpKP2WA5fi1a8RQXsY0vBq5SajmX3lOCRkFd9+5zBBP//8dxCNMdsZHbrTQE\nx4w1EcOdzDjgtX79itRmPe/+a/3E/hFn0blBAo+oZ9TsiVl6x6wWUcZBO0Vo\n/FgETfRWKHVuCw2YzsMvMe+chclpOqiv1/CaH6OxdETvtp3DKLE4Doua4xSf\n9V8j2R38tAZvca47SM08oL1JKFB5xgsTz2DEbcPBno2fwjnCR7oG9JQNk81q\nDfYe45us8Oif+eF/wq+Vz2BQWponQvY3BLKhpIm2rQ4FtFNZZQvQf7IZpNDh\n46+2hngYtEEJzN0lMZ4BDKPsHj+gs5z2TwunRK0yAR28qEH6jNLFiVuCXEVx\n35Ngdf3cvHJ8p1Mk3YCecUFksTetj4v5jqr3PVCgXTHqKjocbAPJ6TuOMDQA\nbX/+\r\n=BQwk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFbgBqsKvTmSyaFhNPHdr+CSXBv1A1lJ7SJgtp9bOa5QAiEArUW6XZuYPsKimgS1rxHvROmOMDgvXNlI7vpl4VrT7H8="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.11--beta_1614909262845_0.7527503181686093"},"_hasShrinkwrap":false},"6.0.12--beta":{"name":"elm-spa","version":"6.0.12--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","elm":"0.19.1-5","mime":"2.4.6","node-elm-compiler":"5.0.5","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.12--beta","_nodeVersion":"14.16.0","_npmVersion":"7.6.2","dist":{"integrity":"sha512-If6QTpooCw3EH3A+8gBJfK3OdcOcc2n6mB6F9PzHJ6tAvv7ECQ3MWFvFWBkJpu2s71qYLonA41WZFyzlLfb0dg==","shasum":"ab9889bcb7a0b6bd881c71231fe6e36505629a4e","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.12--beta.tgz","fileCount":42,"unpackedSize":71969,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSZbCCRA9TVsSAnZWagAAaUIP/3epIDMSueT5Wa+u//kh\nizGy+Jg3qzm8vlphOuunWtVpds29m+OOWKdQZBuEfU4qa/VI0l8sidKSqnxD\nxmWln14VpX8JqXcKQXieSH/5Xy41fHDZCjiRyIFMikbo8Idp6YotBwwtL4zh\nJxV1ef+8eCPJ/4lv/U737B26cE43IWQj1zYQa9D13sex+niepcCRQEyUVyRa\ng6HkGrsxvSHsN9uSKhUNIyeLoFeRzh0LPj7/oI/HGgGBOP7Ck3kQ2OaU4aGY\nl73LoK8w/BEVscF4jg23s6NHFdSyF6xJXp5VO/15BP2USj83dnpNRws9PB7/\nL1tqjdnmx4oTnNXckRlVDb9uLOODV9iDGkQU3H21Dnk74tXeMaOV4Y33qGD8\nDpiZZebcJgBlstCT8xQhFGqmPhLYLnOruHqpFiUbV2svQ+wwGU0veBUJOhjP\n1zxdQgJPs21bYwAc6OX4062Psw/ZzyFyjfIT9Cy96jJnVFMuNEpUI0rB6MFR\nnpiM40zd3N3I1WmkhIT6d0sEanDkiwHSDSDtsHiUi0eAP1FiQd3j/GvgYaQD\nyd/c7OCRJKEWudiEIQ9NqKUVDpXZ+3IBgrulQZl+ipfuV8hagGaZQW9Lcn1e\nJRv4T5sxzcGyyfayyNtCZuSnNUu4mHKrriCBAfHf2ToTz6BLDwkiiT6LRyo5\nrYb9\r\n=tvdn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWFSHqa0JiLzL2CFnZhSf4APr/mUEEcE9to2Mo4uLLOQIgE+FigjMN3Bjk+UGhrQAKnyE6j7bjO/Ddl7kzOQxbRms="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.12--beta_1615435458430_0.20211449756697708"},"_hasShrinkwrap":false},"6.0.13--beta":{"name":"elm-spa","version":"6.0.13--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","mime":"2.4.6","node-elm-compiler":"5.0.5","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.13--beta","_nodeVersion":"14.16.0","_npmVersion":"7.6.2","dist":{"integrity":"sha512-Y1V/GD6nqXQQ55IcA4AXKkICQ//j3JPZlqvxTj03dY7kBlku68itPdKcfihAwhd+3WI1/a75RVuu7cFxmhazxQ==","shasum":"4f1b6e6341e5c7d11c51c2ee5fb6f4c38c7c42c0","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.13--beta.tgz","fileCount":42,"unpackedSize":73770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSaqZCRA9TVsSAnZWagAASQ4P/j+BMRAKlBRLF1eLENsy\nwhRwuuuKpx3m+NTr83Re8JB6zFfSESDdhpc+3AViqd+jjl75AekgR+jMaHBQ\nL/wyMmMroBqJPIZkCKYzA7CrDSYNNm64I5hX6/fSb5IvnzHGqpPOfUImAjHl\n5mAUUqfbRT7AWOcKoNdN+Sfu/U/B7GOhj2YDn8MTV3oCtgajZ6jNNy9wyyk7\nny7/q62tnTcBP9aMbrVZqjsr1M/Ehucu7xUK7hkGpjUXf3r7MWidSE5XqOxC\nl5NYwPetS7NHhpWJ8IUW947/QU63npd5cS2Fe2sP8cDjS7Tp2uLsNI4pVRWq\nlZMyrjRya+7TQ67/WLOSBV7t5Rutz7BKK1x+Lt+KTA7LMYyUhdvNayn+qFyk\nAymkS1D5JPdUs7JlbwD2Bh8QwCos9LwM+/cCUkUk4NLw2U9TJuTOpT4ak2Be\nQRQT8njkmKaejSrIwKTkF3cUV1A9HZ2582ssbCEMhE/PkuEleJn5lTNHUW3A\nNFcrBPD5mj1CYdZIbGkZukTEiQWW6hwbd1TGJ/mmVoWZZiN/Qg3QZOuTPYQk\nAyXKWIV7mkl2M90RcRRvt6LG38XCRNo5HQNRZbOlH1TN1/S5JBFWT/zb44iG\neDT5RSkn+n2WRzAw6XCUu5kHWW5oj/2BJ5oUB8i/zdDlLFiVdS/cfMWqg6sf\nN/pD\r\n=udC5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIChalrLKI4bsVe39jCoyNTyHD2EclZ/s+eD0mG5/dA4KAiBSPmRRiD0UNzgb/+MROqdpznvANceBnTrVql+A/sBgSA=="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.13--beta_1615440536783_0.041686930915187936"},"_hasShrinkwrap":false},"6.0.14--beta":{"name":"elm-spa","version":"6.0.14--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","mime":"2.4.6","node-elm-compiler":"5.0.5","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.14--beta","_nodeVersion":"14.16.0","_npmVersion":"7.6.2","dist":{"integrity":"sha512-72ExuVJaBjjbanUtrQtIHWZBkEEkMvN8luFTF6y3O449gDN+MXHy8f/aftNp74gj9y1vBnO07hAfNNNRR2qbhw==","shasum":"34254948814b52df70757068de5264b414a06a08","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.14--beta.tgz","fileCount":42,"unpackedSize":73770,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSatKCRA9TVsSAnZWagAAkrwQAJmjtfnRy5mdRqm5xq7M\nOM8v8sgf60zfGhqBlh7LCum/j54URCLaJxWaIvqUEC4UB+CdTpwIGNQ8sXV9\nONTtnxxYWCYotY6vTR0EE34OY5BJgI5nMxrHlmuWJJHffaNLbHFFFeSQIYWE\ntGoi1xYtNqQBY3n/LxiiLwRBKKaTfIspzB5N4mCZj9fiZC99G4OtZkFsP1dX\nEebsf5kbI4JW16EgB1oXOaEODt26AWa1dUFLb4DKxOE6s8ur/d1YNhspDUsQ\nDQgoI9RdaGtydcyh/S3Bsa2uK9nV4rRZQTKX9zBkN5TYNGRTxgAj+ShNGWlK\n2Xk+spK5TpHDAgNqq7FM7jglyLMsNOrGDw7qw8N6rMDKbUssOQbLjQCYSjYV\nBjK0Cv2McgrsoNOGlxOdVpiuMQ3okme+mKqetjXXikgGKpLEqFMTQTuMK3oK\n/tU/vI1qHMmMwpNnccwidQWspTvoMgaDp3uygp0optZWJCR8/NBIkFwYhGB4\ncEXskxXoPvUliIxq9flJ8Jkn6hF5Z5itOiPFAS4MdLX1D8pAt7IbRru+3BQ/\n39RTdTlUvufZnXMeAITRKkdJ2nfcNJqj4UrdJG9kV0UkrVlCrCIYDkfNJ/hQ\n+kwrdSiNupdMq6WVRBzLTXoftITz2LsOeY9Vlkws36LJVv3mJdZGiiFFLRd1\nuB/m\r\n=5ugr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJNSt1BGezw1HhRsNMVH/y9lKMs7JRcjqSN6285A4ENgIhAJmPV3NIbYUogQsAXDAhYZjdYSLRhf1X23AFFF60E45Z"}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.14--beta_1615440713953_0.3320315758903378"},"_hasShrinkwrap":false},"6.0.15--beta":{"name":"elm-spa","version":"6.0.15--beta","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","mime":"2.4.6","node-elm-compiler":"5.0.5","terser":"5.3.8","websocket":"1.0.32"},"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.0\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa watch . . . . . . .  runs build as you code\nelm-spa server  . . . . . . start a live dev server\n\nVisit https://elm-spa.dev for more!\n```\n\n\n# Docs\n\nHere are a few reasons to use __elm-spa__:\n\n1. __Automatic routing__ - automatically generates URL routing and connects your pages together, based on an easy-to-remember naming convention.\n1. __Keep pages simple__ - comes with a friendly API for making pages as lightweight or advanced as you need.\n1. __Storage, authentication, & more__ - the official website has guides for building common SPA features for real world applications.\n\n## Routing\n\nURL routing is __automatically__ generated from the file names in `src/Pages`:\n\nURL | Filepath\n--- | ---\n`/` | `Home_.elm`\n`/about-us` | `AboutUs.elm`\n`/about-us/offices` | `AboutUs/Offices.elm`\n`/posts` | `Posts.elm`\n`/posts/:id` | `Posts/Id_.elm`\n`/users/:name/settings` | `Users/Name_/Settings.elm`\n`/users/:name/posts/:id` | `Users/Name_/Posts/Id_.elm`\n\n### Top-level Route\n\nThe reserved filename `Home_.elm` is used to indicate the homepage at `/`.\n\nThis is different than `Home.elm` (without the underscore) would handle requests to `/home`.\n\n### Static Routes\n\nYou can make a page at `/hello/world` by creating a new file at `src/Pages/Hello/World.elm`.\n\nAll module names are converted into lowercase, dash-separated lists (kebab-case) automatically:\n\nFilepath | URL\n--- | ---\n`AboutUs.elm` | `/about-us`\n`AboutUs/Offices.elm` | `/about-us/offices`\n`SomethingWithCapitalLetters.elm` | `/something-with-capital-letters`\n\n### Dynamic Routes\n\nYou can suffix any file with `_` to indicate a __dynamic route__. A dynamic route passes it's URL parameters within the `Request params` value passed into each `page`.\n\nHere's an example:\n\n`src/Pages/Users/Name_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_ | `{ name = \"ryan\" }`\n`/users/`_`erik`_ | `{ name = \"erik\" }`\n`/users/`_`alexa`_ | `{ name = \"alexa\" }`\n\n\n### Nested Dynamic Routes\n\nYou can also suffix _folders_ with `_` to support __nested dynamic routes__.\n\nHere's an example:\n\n`src/Pages/Users/Name_/Posts/Id_.elm`\n\nURL | `req.params`\n--- | ---\n`/users/`_`ryan`_`/posts/`_`123`_ | `{ name = \"ryan\", id = \"123\" }`\n`/users/`_`ryan`_`/posts/`_`456`_ | `{ name = \"ryan\", id = \"456\" }`\n`/users/`_`erik`_`/posts/`_`789`_ | `{ name = \"erik\", id = \"789\" }`\n`/users/`_`abc`_`/posts/`_`xyz`_  | `{ name = \"abc\", id = \"xyz\" }`\n\n## Pages\n\nEvery module in `src/Pages` __must__ expose three things for elm-spa to work as expected:\n\n1. `Model` - the model of the page.\n2. `Msg` - the messages that page sends.\n3. `page` - a function returning a `Page Model Msg`\n\nEvery `page` should have this signature:\n\n```elm\npage : Shared.Model -> Request Params -> Page Model Msg\n```\n\nHere's how you can create pages:\n\n### `Page.static`\n\nThe simplest page only needs a `view` function:\n\n```elm\nPage.static\n    { view = view\n    }\n```\n\n```elm\nview : View msg\n```\n\n__Note:__ Instead of returning `Html msg`, all views return an application-defined `View msg`– this allows us to use [elm-ui](#todo), [elm-css](#todo), [elm/html](#todo), or your own custom view library! \n\n(We'll learn more about that later)\n\n### `Page.sandbox`\n\nIf you need to track state, you can upgrade to a `sandbox` page:\n\n```elm\nPage.sandbox\n    { init = init\n    , update = update\n    , view = view\n    }\n```\n\n```elm\ninit : Model\nupdate : Msg -> Model -> Model\nview : Model -> View Msg\n```\n\nThis is based on the [Browser.sandbox](#todo) API in `elm/browser`, which introduces the Elm architecture.\n\n### `Page.element`\n\nTo send `Cmd msg` or listen for `Sub msg` events, you'll need a more complex API:\n\n```elm\nPage.element\n    { init = init\n    , update = update\n    , view = view\n    , subscriptions = subscriptions\n    }\n```\n\n```elm\ninit : ( Model, Cmd Msg )\nupdate : Msg -> Model -> ( Model, Cmd Msg )\nview : Model -> View Msg\nsubscriptions : Model -> Sub Msg\n```\n\n`Cmd` let you send things like HTTP requests, while `Sub` let your application listen for DOM events and other external changes. \n\n## `Request params`\n\nEach page has access to a `Request params` value, which contains information about the current URL request:\n\n```elm\nrequest.params    -- parameters for dynamic routes\nrequest.query     -- a dictionary of query parameters\nrequest.key       -- used for programmatic navigation\nrequest.url       -- the original raw URL value\n```\n\n__Note:__ For static routes like `/about-us`, the `request.params` value will be `()`.\n\nHowever, for routes like `/users/:id`, `request.params.id` will contain the `String` value for the dynamic `id` parameter.\n\n## `Shared.Model`\n\nSometimes you want to persist information between pages, like a signed-in user. __elm-spa__ provides all pages with a `Shared.Model` value, so you can easily verify that a user is signed in!\n\nUpdates to that `Shared.Model` are possible via `Cmd msg` sent by `Page.element` pages. The official guide will walk through that process in more depth, if you're interested in learning more.\n\n\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\nnpm start       # first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","_id":"elm-spa@6.0.15--beta","_nodeVersion":"14.16.0","_npmVersion":"7.6.2","dist":{"integrity":"sha512-d9PqwKTG7yMGt/DS9eXGC63wSJ3JrMDZfPZEpLfejST2irt+POBw3uxCK3UEYk2fC2QpqbCo7KCW3dMqrPbUIA==","shasum":"7c95bade807c194570f5a0c6d358ee5952878a71","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.15--beta.tgz","fileCount":42,"unpackedSize":73777,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSa2WCRA9TVsSAnZWagAAm6YP/0qbbNtLZBjvPMrIBM/2\n7zpsiSkWW7ZyxBby6ouRONE84QjPhEX7LR53eOkwnxi9jDQcbQb9gzpc7h9i\ntqnPbcguqrWxdg4kCBYw51n2kudtYbGul5Xud97vkcph7YUHLBOPWrHQjvCz\nKsaB0udORf0PWCG6irVNSeoT3bpP5hGJgGDFEuFWLZIvbKwcm/asz2mh9Fin\n6+ERk/6RL6CUP+Uf5U1sJ4nDaYNOFyobcoDhfMRkcZ6bf5yOrFv1WtyMta9y\nc/k4Q2P837Dmn6K7MS8VnYt7qQ7oLoy9DzYRklX4J6piRLLTpeGkfHiqFxcR\n3/oedUc3ZigD4xKklLELBHhu/aBMNQlIZBk6I8+l/DzJfPDRBjYS+rXMXfLZ\nfx3npQ0IC4kpz1ERkjFSaXh5xscpx5xqE13+jcvsQYB6K76v8TecHhfkictF\n/kIRWppGA/s6HoCF+tlso8c4+gHehOdn2KHMvov/MeROWo6XvW8mSgYl35mJ\no5jM9orQHfsSLzOMTzInOVwQ9xGApLeLaI8XzWYE96aUcT5L1da3C0rhAPwe\nD+RTBLlHM+hgG8ev2dEqwzSZth8nAyxiYIyiNdcsLbUzAlcLB5DYMHWCTmzN\ng+kj9hq2o0ka5EUj/yOwQywi75Q9nmlqxKM6SRrocfDPtqWdJl2hpfCOg4ON\nLLK4\r\n=fujb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE/L+gq3Z2juOtrFGI76jx1RLbKOCm9zUQlMhUiQHX/7AiEA5651R+bsSIgu5vdDBPTtujogoniKDoR+3xAtvDsKxt8="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.15--beta_1615441302229_0.7135049211683933"},"_hasShrinkwrap":false},"6.0.0":{"name":"elm-spa","version":"6.0.0","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","mime":"2.4.6","node-elm-compiler":"5.0.5","terser":"5.3.8","websocket":"1.0.32"},"_id":"elm-spa@6.0.0","_nodeVersion":"14.16.0","_npmVersion":"7.6.2","dist":{"integrity":"sha512-EoU2BRAvcKWe4OIEFNvyrVKIPn4Tir5a0uitgBhHMqhR+WNDWL+AkyPJl6lIOQES8M+RLIkm32zP0DLglLUGxg==","shasum":"d03c4f681796c44aac4a91ed2e43c35d02a650d9","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.0.tgz","fileCount":59,"unpackedSize":91733,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgh7w9CRA9TVsSAnZWagAATyMQAKEajtv/zYEHMX1Apyve\nasjxWlnuIMOhrDi+szGTBGw84lCaTLvpwgkJk7MoNwYmBvAN/XxJqsBs8kd/\npyTCRj+lSAn7bZ5OPaRMkT2fGDahdVrKWt9tq5rJ87LFyrm7RxSDnupr3xu2\nS6YwH8RGhSEXkasxQ1uxIXOuQK6ek2X5ALp/aWZ/071yZdalIVvb69t8zhFP\nhMt3SFohpPHy9Gd/mWs2CI6BnpFAxJ95iAJH2A7C3g15UezhpVVj0Mp7ty7N\n1HtjaFvKKQtPxtZc9ecd30eqyfTh2/eFzZg2SbVHGZWWSW9IuKnp84eEQXux\nwVZj80wFvhZPkJXPSkR0APbiOtphIhv7C7LopuJ/2J6UIGHySpgQYxchNDjw\nvQBTkH8r8MudVdtgoDeu96b2YMEMFtQF+Lue030KQ8ZERkSC+x8AvBljjrmW\n+KoSNnfMhRyGExeHZ9mqp2DWgoiZr7h4r0+ytj281GsXjJFgYfg2RjEKLmiE\nrCz/QJkHdf0UUk2sqP0Bsx6r5AClKUXM6ekhf+PlvcMe5T8nsGUn3XfK+hAq\n4oKWlXsahcXldTBVkXHZfFTzUa+OMhDGQZaV8a+sArSWXBHDpO2Y6bN1H4I9\nPpNZjnyRERyTLgzyCzb3ptu1m4xGvJiimvnkRA7TOwj6ucpdmcz1l0pBlN7+\nm8OQ\r\n=/WTT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAYVM64JkqrzuZjtTY9b9KQ3yB5OqwZSjHjbVBJS68bcAiBlp2axC827opXiVq6iG++6CDEP6Uh7lsvgG5CLNDjhQQ=="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.0_1619508285291_0.6643233898373577"},"_hasShrinkwrap":false},"6.0.1":{"name":"elm-spa","version":"6.0.1","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","mime":"2.4.6","node-elm-compiler":"5.0.5","terser":"5.3.8","websocket":"1.0.32"},"_id":"elm-spa@6.0.1","_nodeVersion":"14.16.0","_npmVersion":"7.6.2","dist":{"integrity":"sha512-yZuvEcdm7b479W2rUjquFGttRsjXpJdF1S5mcMQxSkUoT5tF+nugZ/VV1i39RuO78mu90h8wgEk5w7LRWBS2RA==","shasum":"345b14241f93a94ac3530c13d34c4703e422e896","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.1.tgz","fileCount":59,"unpackedSize":91778,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjr0mCRA9TVsSAnZWagAAANUQAKIeGb/cgVZgPtmVBlDb\nP10ntl3ZMKoptG4pLy9z0/9e2H1OYfc8DEGtDM6QwTOFRjZObFT13IzirPeU\nRLDSXH8Xei8xtEdKx/4HvRECmVHfSHrzO0jn5dXrzR3vb8/LZ9uxn2hdmeZV\nhbPk3aHhqqu2xrGE4Tws+U6Lv2vNEqKOVS8sjzUqpC+XIx+Ex375OW/D2tHx\nyOdBENW/hadaMHSi4aQ+gQCHN5ksESyH0WYd7gLRzCUWl2eII8QU1qDLDOPz\n4JoGM8IN6rOtYg/qQeRWQt47xlSW+IL/biWhIv2qExRZjQH5LZpLx+3HNfLE\n/nG6tx0OM/3YD1CoxhsivZoCCC+JQD9jF8kVlYFKakPn1Ozo4GA3ucLMQ0gx\nBFMV+YUbfnALBpG5UwTso8k9erDCpgTqq9zMebr57q7IicDQ0wiQ4CW9dj4f\ngvUqAxjHDQ9FtohnruBaxHs9hrHytXn4G9YKSyGOrZKhdA7KZbukgUGmPYHO\nJGnSvK1Hxyb2kqZuHb26r+ORernoh8IupASSWorRRHEyK+XpeHQp2eMd+Dfz\nbReojB4ONIhYU5j3I8Bg3BJiYmeReCEV3/xUpujz+r2Q6wOljsUlOiGZMMya\nMdNRdb9ks39nTIsT/X9pRy8YBLZbcrfvzOMyZZs+SHOL9WRle2e58aDcNFMD\nNTaH\r\n=+SqP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNUvr/wsnmm8yYNXYZ7zprIXqami5Gmbuy3LUdiqd46gIhAL27aTDvwH8IUUu+XPky5CApdOHh+aE3zTbkF+Xs5Erc"}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.1_1619967270519_0.3184192035498399"},"_hasShrinkwrap":false},"6.0.2":{"name":"elm-spa","version":"6.0.2","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","mime":"2.4.6","node-elm-compiler":"5.0.5","terser":"5.3.8","websocket":"1.0.32"},"_id":"elm-spa@6.0.2","_nodeVersion":"14.16.0","_npmVersion":"7.6.2","dist":{"integrity":"sha512-PNfLpZLMkljPdT2xztKn2b2ESm7NtzFyUU2SBE4hFU2B4wbn279rjFzrADxkLkW1WouSlAdhyIYxeUS2hzH5Vg==","shasum":"1e397a235def72677c5741acd4f6834f25513c5a","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.2.tgz","fileCount":59,"unpackedSize":91779,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjsN1CRA9TVsSAnZWagAAfYsQAIBCF0tXDc9rIfJH6zav\n8PT11QGpvQ7YTqrKhpzS8nta4awaHvzom8b7PDeKlci/HyIGn+q9P1RZTDb0\nnT1N8Aj1kr9YKjd82lq6iJxHwY9oKuHSWe+NVIz/S2f5/2xYUXT6dw0UuRtS\npUlTc5Q7CDESPwyZWr8QPqfSaxOYd7OPPNGj0B4ZC6b1U30QaanxBjK/N6Hd\nTNmOTvjI3gwh+2zVWDBnGI4yW7o4DKEV6CXOiEIffcAEbiwr7joWKIrxb3M2\nuMjaAaU6cbpB5zqJAAxM7oPXamKFfmwcuybPfC3MnOg3qjGmA8aih4LFZwqy\naSWiJBMpcBd1QXYP2yO1pSesAhZo3PfCXflaLUlTEJKaKDxRNcUaoS2RU/xJ\nKjiMXQ5L6BqFkt+RhTB9GcWAf69QZZHk2LoimHbnyIirF7L898fQJ4olmtaB\n2BZZUBLHaRCQLOXeyNpGv2OzUsEDxCx33o1pf+bzgPW452BWi+eJT7fQqo2l\n4nUOaRIP2zPwJl4aVT4mbxY2PE0SxrEz9S0GUvr9Yjz+OibZ8Rg+VS2YH9BS\nJnsUuXRpRF1Ww8sFzurn+xN2P7vAP21Zy6Jf4fxb1k1JhFrqdC263ntQIkOe\nX724LinMEGP9+SLZR8a0i04CwTw1qmh42gF61/UI9we1UooIAt7S69+zJG2N\nUDvI\r\n=Tfb/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbZshiQZEKBNrtpvNpB5Bftajaps30Qzq22Qz+z78tsAIgcrVxnXGp2GZvMPl/LfSUNK4pC/QGK+yaGJmim4f7EoQ="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.2_1619968884735_0.6168673648377727"},"_hasShrinkwrap":false},"6.0.3":{"name":"elm-spa","version":"6.0.3","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","mime":"2.4.6","node-elm-compiler":"5.0.5","terser":"5.3.8","websocket":"1.0.32"},"_id":"elm-spa@6.0.3","_nodeVersion":"14.16.0","_npmVersion":"7.6.2","dist":{"integrity":"sha512-VqFtoWyaFvXWIZxQHqSbMqNabILkoQaPzbfRWg6yryQhvz4G18q2z6nYXBI49rHG9ZXaPQMAArmIo6aEv9fGNQ==","shasum":"aed6d33350f7d27d1d66758b08517c36dd825c70","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.3.tgz","fileCount":59,"unpackedSize":91785,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjshzCRA9TVsSAnZWagAAvCcP/R4ec69XJgm93To/aX0j\neMLZidWqN9kJxV4EMzhS175R7ICmbmcIjz9t6Xsc8OISqUcU/CPK0XDZWJj6\nmm+rWDqXzgvphHVyAqzMOoZVh/deWv/XQ9gEOjl6M2g+h2GJyOuvptvacIyg\nb7v3bZPAgDrrL24C8D3f4WkziT1B7JF+9Luo3lOlhwk95bw3YA8SqFxPr3HL\nfOee4iZGIcRvaHhcSFt4Zblq+Lzenp/Qt3r1tMJrKu0V+yWBHr/ZtJjZEV0W\nOuU+32DZdENp2N74ME0sjI9sRmuxKNaF+rKprNDB2MyHXIK9lu1e2MZCn/Ap\n4SRXzKpmIpix9Kezkdjw/lOgMxwB7i2zZ0sHyjRKfJayEuxsSH4x0BHmwMO/\n7MpBvJNU/5ObAqXFFiu8o9U/yXIFRUWVkKRvApbsiiyqZj1bcDKUZBdh11eM\na+iFVo7EtmuP5TBlIh9gtA76Jcbap8tBbP6joTS3EN+1DxqB/DxG9kvCUhne\nbEi366YQj12IO5FFqcHeu9sfjz6mczURrylVuu5swfyDG48e73CR/1mcziIU\nBbZlCqRWkjYcb5WkX+jkUx9srVX7TORR1s++VEzuaDuctJNh8D4mhXUbO1R5\nnLbDX4o4PgZg7r8erBLhbRp6ItsmwGc2PNLJavPZCqkj2SbJyHY+Hf8ndiJf\now+K\r\n=gCUO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoEUkifXOzrvnc067VYEM8R88aEBxT7834DPsyZzZpwwIgflji9+FmxCuxwTt3ui3W88AFgO6p1LaVYxsT3ez1fxc="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.3_1619970163387_0.32554948829486285"},"_hasShrinkwrap":false},"6.0.4":{"name":"elm-spa","version":"6.0.4","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryannhg/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryannhg/elm-spa/issues"},"homepage":"https://github.com/ryannhg/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","mime":"2.4.6","node-elm-compiler":"5.0.5","terser":"5.3.8","websocket":"1.0.32"},"_id":"elm-spa@6.0.4","_nodeVersion":"14.16.0","_npmVersion":"7.7.0","dist":{"integrity":"sha512-TiOBuxL1SrzqYyWkime3AZ1/xFqKa6B/Bi4SplFg7YmlwPL5d7R+u6w0dxc14cnvmP1RS2+QZAkczZtqayFK9A==","shasum":"8b7513fe710903f92b5fb88efeba814cfed43a86","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.4.tgz","fileCount":40,"unpackedSize":71009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglszYCRA9TVsSAnZWagAA2qQP/iygwWePDaG82Qi0flpG\nnPGkiq5DiD6Pl9F/tHBs7LdXIh7P5sOoOzJFcGfCHjxcXoH9qRVk+/rUFjFK\nrfT7Mxp/pDpj4avvqXWGX9exNMht8KOjfVoF+o+kb6Jhq++LPGJaSRLRntlQ\nldBK4O/pfI5yB0uhmvnh/itWOeUIsbo+y8jAoUDuCjLCgIXg/IgCzoinGJWH\nU60vX6ESfBlNKtKk+5mn9/Vy8on3kh/4p44XTHX4AzbL9CECkddolibu81nH\nwFqR6/KaXn0MRCxrxmCA9gL+Fu3oZuUo3aeRlNvOYtstnyplX6H+dH88derl\nfst9U0D3Z1QbYJ4/66Ct9zKqcA4RNOZEG8DGoquqNt+Y0pUTKvJQWz45t3bh\nHgODchgbk44mRZdetVFfTbdXGAYyqSmbkxJIR4pLM/ZDWboxmKHsgt3RW0qB\n/nXPKPUoIDyIaJfyH6jlDsLExfaD0+qJ5mjuAA24usi11JP+V2BK1XnmIiI9\nJRyvmQfPf2phtKHStFABlyvU3CkYxVMgVdku1mKXLUxdrmdBL3XyzxYbCVO2\nvE/sjfBMgIEDvikMx+LWNVoLmwFm4pUdhTUAOyIHzmkjj+8grJKVgdMaXYYe\n47rUPD3WabVHCdILgwI+6qqLHWu8iB5j1SdRrc0SJx527QSGhxA7+CaCk+yI\nDHzN\r\n=iX6y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGIYpmO/LNGO9HjXmJ7qgY8PBQCdsTUYEnoHIrCqHjNWAiEA7gPjIHfQiagau4oRrX1cEPYkn+gTzM2bXIsdBr0R3Sk="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.4_1620495575735_0.08808121511960665"},"_hasShrinkwrap":false},"6.0.5":{"name":"elm-spa","version":"6.0.5","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryan-haskell/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryan-haskell/elm-spa/issues"},"homepage":"https://github.com/ryan-haskell/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","mime":"2.4.6","node-elm-compiler":"5.0.5","terser":"5.3.8","websocket":"1.0.32"},"_id":"elm-spa@6.0.5","gitHead":"18cfc8db74481da7e00e1b2eba31f2c06cb96c56","_nodeVersion":"20.11.0","_npmVersion":"10.2.4","dist":{"integrity":"sha512-nN6VhdqReP3/s7vqw23pPD7e2F8rKDgaLzEFJL9psWQK5Pmm5ibNL02AlkAVYcpVpMIkvyejZpgJwb0JKEcJSA==","shasum":"1d7a3615d3cb157a7609d9e7714077314cd5d6e4","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.5.tgz","fileCount":40,"unpackedSize":70958,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDq3WNb4k34K/p13vcGMvAdRwrGSiFpn5hbDFyxwtIvYwIhAOVYkysu+mlRM5OzMHo74cFVw1Oz9zuQoDbfnz3P26ZC"}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.5_1710286382547_0.973592547767635"},"_hasShrinkwrap":false},"6.0.6":{"name":"elm-spa","version":"6.0.6","description":"single page apps made easy","bin":{"elm-spa":"dist/src/index.js"},"scripts":{"start":"npm install && npm run dev","dev":"npm run build:watch & npm run test:watch","build":"tsc","build:watch":"tsc --watch","test":"jest","test:watch":"jest --watchAll","publish:test":"npm run build && npm pack --dry-run"},"repository":{"type":"git","url":"git+https://github.com/ryan-haskell/elm-spa.git"},"keywords":["elm","spa","web","framework"],"author":{"name":"Ryan Haskell-Glatz"},"license":"BSD-3-Clause","bugs":{"url":"https://github.com/ryan-haskell/elm-spa/issues"},"homepage":"https://github.com/ryan-haskell/elm-spa#readme","devDependencies":{"@types/chokidar":"2.1.3","@types/jest":"26.0.14","@types/mime":"2.0.3","@types/node":"14.11.8","@types/websocket":"1.0.1","jest":"26.5.3","ts-jest":"26.4.1","typescript":"4.0.3"},"dependencies":{"chokidar":"3.4.2","mime":"2.4.6","node-elm-compiler":"5.0.5","terser":"5.3.8","websocket":"1.0.32"},"_id":"elm-spa@6.0.6","gitHead":"18cfc8db74481da7e00e1b2eba31f2c06cb96c56","_nodeVersion":"20.11.0","_npmVersion":"10.2.4","dist":{"integrity":"sha512-FslLqKt2D5EjMJjtYU55P9xu/LGNnWL8pTzWAaOtTTFkNq2vVXFEknXRq1SCahicMEPRp+26r7NvawV+XuAxMA==","shasum":"de5fc59bbd4f96c8f6a4b3b21f344f48301f7dc0","tarball":"https://registry.npmjs.org/elm-spa/-/elm-spa-6.0.6.tgz","fileCount":40,"unpackedSize":70958,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEhSJ+9Y3/aXSvDyOQSKm6ztQr9OtPJoxepAtw2yqZDkAiEApEJ+6YEmcQTNQYbIJNRwZ2li7ul0V9rY81W64Utvp7Q="}]},"_npmUser":{"name":"ryannhg","email":"ryan.nhg@gmail.com"},"directories":{},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elm-spa_6.0.6_1710286573559_0.055193669431695236"},"_hasShrinkwrap":false}},"time":{"created":"2018-02-14T06:12:21.246Z","0.1.0":"2018-02-14T06:12:22.690Z","modified":"2024-03-12T23:36:14.556Z","1.1.0":"2019-11-02T18:51:32.342Z","2.0.0":"2019-11-24T19:26:13.843Z","2.0.1":"2019-11-24T19:40:27.556Z","2.0.2":"2019-11-24T19:43:39.617Z","2.0.3":"2019-11-24T19:45:58.305Z","2.0.4":"2019-11-24T19:50:24.219Z","2.0.5":"2019-12-06T03:03:58.131Z","2.0.6":"2019-12-06T04:56:51.405Z","2.0.7":"2019-12-06T05:01:24.785Z","2.0.8":"2019-12-06T05:04:50.549Z","2.0.9":"2019-12-06T05:18:48.874Z","2.0.10":"2019-12-11T20:58:21.688Z","3.0.0":"2019-12-11T23:33:02.644Z","3.0.1":"2019-12-17T15:56:52.256Z","1.0.0":"2019-12-24T00:33:22.696Z","3.0.2":"2019-12-25T00:13:28.587Z","3.0.3":"2019-12-25T00:16:10.600Z","4.0.0":"2020-03-27T04:52:39.646Z","4.0.1":"2020-03-27T05:02:20.936Z","4.0.2":"2020-03-27T05:18:39.118Z","4.0.3":"2020-03-28T06:19:28.811Z","4.0.4":"2020-03-28T08:04:48.147Z","4.0.5":"2020-03-28T19:55:54.861Z","4.1.0":"2020-03-30T02:41:50.074Z","5.0.0-rc1":"2020-05-21T22:33:45.742Z","5.0.0-rc2":"2020-05-21T22:36:27.725Z","5.0.0-rc3":"2020-05-22T21:32:26.665Z","5.0.0-rc4":"2020-05-22T21:40:49.631Z","5.0.0-rc5":"2020-06-12T22:05:49.427Z","5.0.0-rc6":"2020-06-12T22:08:18.049Z","4.1.1":"2020-06-12T22:12:46.396Z","5.0.0-rc7":"2020-07-06T02:37:17.857Z","5.0.0-rc8":"2020-07-13T07:09:54.841Z","5.0.0-rc9":"2020-07-13T15:57:03.011Z","5.0.0":"2020-07-14T03:19:25.714Z","5.0.1":"2020-07-14T03:35:03.631Z","5.0.2":"2020-07-14T03:57:17.819Z","5.0.3":"2020-08-02T20:48:48.773Z","5.0.4":"2020-11-24T15:45:11.477Z","6.0.0--beta":"2021-01-16T19:52:25.333Z","6.0.1--beta":"2021-01-31T20:51:14.911Z","6.0.2--beta":"2021-02-02T06:02:35.201Z","6.0.3--beta":"2021-02-04T23:14:56.678Z","6.0.4--beta":"2021-02-05T05:12:10.313Z","6.0.5--beta":"2021-02-10T01:37:47.722Z","6.0.6--beta":"2021-02-15T18:59:17.231Z","6.0.7--beta":"2021-02-15T20:22:00.818Z","6.0.8--beta":"2021-02-21T21:37:30.725Z","6.0.9--beta":"2021-03-02T23:12:05.650Z","6.0.10--beta":"2021-03-05T00:12:21.191Z","6.0.11--beta":"2021-03-05T01:54:23.237Z","6.0.12--beta":"2021-03-11T04:04:18.609Z","6.0.13--beta":"2021-03-11T05:28:57.038Z","6.0.14--beta":"2021-03-11T05:31:54.247Z","6.0.15--beta":"2021-03-11T05:41:42.390Z","6.0.0":"2021-04-27T07:24:45.443Z","6.0.1":"2021-05-02T14:54:30.626Z","6.0.2":"2021-05-02T15:21:24.875Z","6.0.3":"2021-05-02T15:42:43.535Z","6.0.4":"2021-05-08T17:39:35.928Z","6.0.5":"2024-03-12T23:33:02.756Z","6.0.6":"2024-03-12T23:36:13.706Z"},"maintainers":[{"name":"ryannhg","email":"ryan.nhg@gmail.com"}],"readme":"# elm-spa cli\n> the command-line interface for __elm-spa__\n\n## installation\n\n```bash\nnpm install -g elm-spa@latest\n```\n\n## usage\n\n```\n$ elm-spa help\n```\n```\nelm-spa – version 6.0.6\n\nCommands:\nelm-spa new . . . . . . . . .  create a new project\nelm-spa add <url> . . . . . . . . create a new page\nelm-spa build . . . . . . one-time production build\nelm-spa server  . . . . . . start a live dev server\n\nOther commands:\nelm-spa gen . . . . generates code without elm make\nelm-spa watch . . . .  runs elm-spa gen as you code\n\nVisit https://elm-spa.dev for more!\n```\n\n## learn more\n\nCheck out the official guide at https://elm-spa.dev!\n\n# contributing\n\nThe CLI is written with TypeScript + NodeJS. Here's how you can get started contributing:\n\n```bash\ngit clone git@github.com:ryan-haskell/elm-spa  # clone the repo\ncd elm-spa/src/cli                        # enter the CLI folder\nnpm start                                 # run first time dev setup\n```\n\n```bash\nnpm run dev     # compiles as you code\nnpm run build   # one-time production build\nnpm run test    # run test suite\n```\n\n## playing with the CLI locally\n\nHere's how you can make the `elm-spa` command work with your local build of this\nrepo.\n\n```bash\nnpm remove -g elm-spa   # remove any existing `elm-spa` installs\nnpm link                # make `elm-spa` refer to our local code\n```","readmeFilename":"README.md","description":"single page apps made easy","keywords":["elm","spa","web","framework"],"homepage":"https://github.com/ryan-haskell/elm-spa#readme","repository":{"type":"git","url":"git+https://github.com/ryan-haskell/elm-spa.git"},"author":{"name":"Ryan Haskell-Glatz"},"bugs":{"url":"https://github.com/ryan-haskell/elm-spa/issues"},"license":"BSD-3-Clause"}