Pull work from Glitch into repo #1

Merged
boogah merged 1 commits from glitch into main 2024-08-12 04:28:41 +00:00
11 changed files with 1601 additions and 1 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
.glitchdotcom.json
.node-gyp
node_modules

2
.glitch-assets Normal file
View File

@ -0,0 +1,2 @@
{"name":"illustration.svg","date":"2021-04-12T02:54:29.568Z","url":"https://cdn.glitch.com/c62efef6-1e75-45cf-b248-afeccdda9477%2Fillustration.svg","type":"image/svg+xml","size":17429,"imageWidth":620,"imageHeight":587,"thumbnail":"https://cdn.glitch.com/c62efef6-1e75-45cf-b248-afeccdda9477%2Fthumbnails%2Fillustration.svg","thumbnailWidth":330,"thumbnailHeight":313,"uuid":"T5MUea9IPDI0uFCw"}
{"name":"timwaltzfixedyourbicycle.png","date":"2024-08-08T21:30:47.672Z","url":"https://cdn.glitch.global/caa249ff-6ba5-4a91-901e-9d343ae05bc9/timwaltzfixedyourbicycle.png","type":"image/png","size":9678,"imageWidth":1200,"imageHeight":630,"thumbnail":"https://cdn.glitch.global/caa249ff-6ba5-4a91-901e-9d343ae05bc9/thumbnails%2Ftimwaltzfixedyourbicycle.png","thumbnailWidth":330,"thumbnailHeight":174,"uuid":"UDqVXu2Ob4hE0sXr"}

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 Jason Cosper
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

33
README.md Normal file
View File

@ -0,0 +1,33 @@
# Tim Walz Fixed Your Bicycle
This was *heavily* influenced by Mat Honan's "[Barack Obama Is Your New Bicycle](https://barackobamaisyournewbicycle.com)".
Let's bring back some of that '08 optimism and energy!
## About the Author
[Jason Cosper](https://jason.cosper.me) made this alongside a bunch of pals suggesting very funny and uplifting things in the group chat. ♥️
If you need someone to do some WordPress work, you can pay Jason to do that for you at [Little Room](https://littleroom.studio). He can make your site fast.
## About the Code
If you're looking at this and are a professional JS developer, *please* don't tell anyone how I live. 😬
## Contact the Author
Fun nerd? Member of the media? Just wanna chat?
I've had the username "boogah" over on Gmail for like 20 years now. Drop me a line there. Unless you're some sort of far right weirdo, that is.
I primarily use the fediverse (see: Mastodon) so you could also say hi [there](https://simian.rodeo/@boogah).
Want to make your own version of this site? [Remix it](https://glitch.com/edit/#!/tim-walz-fixed-your-bicycle) on Glitch!
Finally, after getting several million visits in a matter of days, I *would not* be mad if you wanted to help me cover the (eventual) costs of running this thing.
You can do so by [buying a t-shirt](https://cottonbureau.com/people/tim-walz-fixed-your-bicycle) or sending along a couple bucks:
* https://venmo.com/u/boogah
* https://cash.app/$boogah
* https://paypal.me/boogah

497
package-lock.json generated Normal file
View File

@ -0,0 +1,497 @@
{
"name": "tim-walz-fixed-your-bicycle",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"express": {
"version": "4.19.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz",
"integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==",
"requires": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.20.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.6.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "2.0.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"finalhandler": "1.2.0",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
"qs": "6.11.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.18.0",
"serve-static": "1.15.0",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
},
"dependencies": {
"accepts": {
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
"requires": {
"mime-types": "~2.1.34",
"negotiator": "0.6.3"
}
},
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"body-parser": {
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz",
"integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==",
"requires": {
"bytes": "3.1.2",
"content-type": "~1.0.5",
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"on-finished": "2.4.1",
"qs": "6.11.0",
"raw-body": "2.5.2",
"type-is": "~1.6.18",
"unpipe": "1.0.0"
}
},
"bytes": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
},
"call-bind": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
"requires": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"set-function-length": "^1.2.1"
}
},
"content-disposition": {
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
"integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
"requires": {
"safe-buffer": "5.2.1"
}
},
"content-type": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="
},
"cookie": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz",
"integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="
},
"cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
"requires": {
"es-define-property": "^1.0.0",
"es-errors": "^1.3.0",
"gopd": "^1.0.1"
}
},
"depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
},
"destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
},
"es-define-property": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
"requires": {
"get-intrinsic": "^1.2.4"
}
},
"es-errors": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
},
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
},
"finalhandler": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
"integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
"requires": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
"statuses": "2.0.1",
"unpipe": "~1.0.0"
}
},
"forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
},
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
},
"function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
},
"get-intrinsic": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
"requires": {
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
"hasown": "^2.0.0"
}
},
"gopd": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
"requires": {
"get-intrinsic": "^1.1.3"
}
},
"has-property-descriptors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
"requires": {
"es-define-property": "^1.0.0"
}
},
"has-proto": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q=="
},
"has-symbols": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
},
"hasown": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
"integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
"requires": {
"function-bind": "^1.1.2"
}
},
"http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"requires": {
"depd": "2.0.0",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"toidentifier": "1.0.1"
}
},
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
},
"merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
"methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
},
"mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
},
"mime-types": {
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"requires": {
"mime-db": "1.52.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"negotiator": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
},
"object-inspect": {
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
"integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g=="
},
"on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"requires": {
"ee-first": "1.1.1"
}
},
"parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
},
"path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
},
"proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
"integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"requires": {
"forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
}
},
"qs": {
"version": "6.11.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
"integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
"requires": {
"side-channel": "^1.0.4"
}
},
"range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
"requires": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
}
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"send": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"requires": {
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"mime": "1.6.0",
"ms": "2.1.3",
"on-finished": "2.4.1",
"range-parser": "~1.2.1",
"statuses": "2.0.1"
},
"dependencies": {
"ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}
}
},
"serve-static": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
"integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
"requires": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
"send": "0.18.0"
}
},
"set-function-length": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"requires": {
"define-data-property": "^1.1.4",
"es-errors": "^1.3.0",
"function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
"gopd": "^1.0.1",
"has-property-descriptors": "^1.0.2"
}
},
"setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"side-channel": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
"integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"requires": {
"call-bind": "^1.0.7",
"es-errors": "^1.3.0",
"get-intrinsic": "^1.2.4",
"object-inspect": "^1.13.1"
}
},
"statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
},
"toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
},
"type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"requires": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
}
},
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
},
"utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
}
}
}
}
}

15
package.json Normal file
View File

@ -0,0 +1,15 @@
{
"name": "tim-walz-fixed-your-bicycle",
"version": "1.0.0",
"description": "Tim Walz Fixed Your Bicycle",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.17.1"
},
"engines": {
"node": "18.x"
}
}

67
public/style.css Normal file
View File

@ -0,0 +1,67 @@
body {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
min-height: 100svh;
font-family: 'Cooper Black', 'Caprasimo', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
padding: 0;
background-color: #f5a7a3; /* Be more pink */
color: #0a0b0b;
margin: 0;
text-align: center;
}
.main {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
flex-grow: 1;
padding: 0;
}
.container {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
}
.sentence {
font-size: clamp(2rem, 5vw + 1rem, 8rem);
font-family: 'Cooper Black', 'Caprasimo', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
background-color: transparent;
border: none;
padding: 0;
max-width: 25ch;
color: #0a0b0b;
cursor: pointer;
padding: 0 clamp(1rem, .875em, 10rem);
width: 100%;
text-wrap: balance;
}
.link {
margin-top: 50px;
margin-bottom: 0px;
font-size: 1.25rem;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-weight: 900;
color: #0a0b0b;
background-color: #f5a7a3;
text-decoration: none;
padding: .5em .75em;
}
.link:hover {
text-decoration: none;
}
.disclaimer {
background-color: #0a0b0b;
font-size: 1rem;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-weight: 600;
color: #f5a7a3;
padding: .75em 1em;
text-align: center;
text-wrap: balance;
width: 100%;
letter-spacing: .025ch;
}

237
sentences.js Normal file
View File

@ -0,0 +1,237 @@
const sentences = [
"Tim Walz fixed your bicycle.",
"Tim Walz sends birthday texts to everyone hes ever served with.",
"Tim Walz clipped you a coupon for that thing youve been wanting.",
"Tim Walz knew exactly when your printer was going to run out of ink.",
"Tim Walz has a spare one of those out in the shed.",
"Tim Walz spends saturday mornings at the laundromat with a bag of quarters just in case youre short.",
"Tim Walz understands the Infield Fly Rule.",
"Tim Walz has some jumper cables, just give him a minute.",
"Tim Walz just shoveled your walk.",
"Tim Walz made you a plate and none of the food was touching.",
"Tim Walz hands out full-sized candy bars on Halloween.",
"Tim Walz hugged you when you came out and said “I love you so much.”",
"Tim Walz thinks youre doing a fine job.",
"Tim Walz is over here if you ever need a hand.",
"Tim Walz will drive you and your friends to the bead store.",
"Tim Walz is always ready to pick you up early from your sleepover.",
"Tim Walz won you a toy from the claw machine.",
"Tim Walz brought enough for everybody.",
"Tim Walz isnt afraid to ask the clerk which aisle the tampons are on.",
"Tim Walz brought some hotdish.",
"Tim Walz has an extra Springsteen ticket, if youre interested.",
"Tim Walz already has the grill fired up.",
"Tim Walz brought ice.",
"Tim Walz is happy to break down the cardboard.",
"Tim Walz will lend you his drill. No rush to get it back.",
"Tim Walz doesnt mind rewatching that show you really want to see.",
"Tim Walz doesnt mind rewatching that movie you really want to see.",
"Tim Walz doesnt care if its less or fewer, he knows what you mean.",
"Tim Walz will teach you how to parallel park.",
"Tim Walz sends you New Yorker cartoons you might like and doesnt mind if you dont reply.",
"Tim Walz will go record shopping with you.",
"Tim Walz says hello to everyone in the post office.",
"Tim Walz gets the couch joke.",
"Tim Walz will keep an eye on your kids when youre running late for school pickup.",
"Tim Walz will give you back your stapler.",
"Tim Walz is happy to check over that job application for you.",
"Tim Walz knows that you should just buy that one Brother printer.",
"Tim Walz will let you borrow his glasses so you can read the menu.",
"Tim Walz is glad to give you a hand with your stroller down those stairs.",
"Tim Walz will give your phone a call when you cant find yours.",
"Tim Walz will let you have the window seat.",
"Tim Walz saw $20 on the ground and left it there.",
"Tim Walz always texts you back.",
"Tim Walz loves that you show love, and will spend hours talking with you about it.",
"Tim Walz would never leave you on read.",
"Tim Walz will go to your drag show, sit in the front row, and cheer you on.",
"Tim Walz wants to buy ten tickets for your raffle.",
"Tim Walz has a scrap of maple from another project that you can use to fix that wobbly shelf.",
"Tim Walz wants to know if he can pet your dog.",
"Tim Walz noticed that your rear drivers side tire is a little low.",
"Tim Walz carries a spare ice scraper “for situations like this.”",
"Tim Walz wont tell your boss youre unionizing.",
"Tim Walz always rings your doorbell when he gets to your house.",
"Tim Walz knows what Minnesota nice is, and hes not afraid to use it.",
"Tim Walz remembers where you parked your car.",
"Tim Walz asks anyone taller than him “Hows the weather up there?”",
"Tim Walz Venmod you for pizza even though he only had a slice.",
"Tim Walz just shot you finger guns and a smile.",
"Tim Walz says “right tighty, lefty loosey” every time.",
"Tim Walz knows how to properly strap down lumber in the back of an old truck.",
"Tim Walz will point a stud finder at himself and say “Looks like it works.” Every. Single. Time.",
"Tim Walz is gonna take you and your friends to the Olive Garden. His treat.",
"Tim Walz will cover your shift so you dont have to miss the party.",
"Tim Walz always returns it with a full tank of gas.",
"Tim Walz only needs one trip to the hardware store.",
"Tim Walz measures twice. Cuts once.",
"Tim Walz remembers how you like your steak.",
"Tim Walz is kind, rewinds.",
"Tim Walz remembers your kids birthdays.",
"Tim Walz slipped gas money in your pocket without you noticing.",
"Tim Walz has some advice on how to pack down the minivan for your road trip, if you wanna hear it.",
"Tim Walz topped off your wiper fluid before you hit the road.",
"Tim Walz can explain the 3-4 defense and knows when to blitz.",
"Tim Walz will say “Nice to meet you, hungry,” if he hears you say “Im hungry.”",
"Tim Walz can give you a ride to the airport.",
"Tim Walz doesnt get a haircut. He gets ALL OF THEM cut.",
"Tim Walz pulls the car around when its raining.",
"Tim Walz is wondering if you need a hand with that.",
"Tim Walz keeps a couple cans of your favorite soda in his fridge.",
"Tim Walz noticed your sink was draining a little slow and took care of it.",
"Tim Walz fixed your flat.",
"Tim Walz always has room for a little slice of pie.",
"Tim Walz remembers whether you like pumpkin or pecan.",
"Tim Walz invites you around to his friendsgiving.",
"Tim Walz would be happy to show you how to tie a tie.",
"Tim Walz left you a note saying hes looking after that delivery you were waiting for.",
"Tim Walz watered your plants.",
"Tim Walz can help you mount your new TV, if you need a hand.",
"Tim Walz is fine with either pronunciation of pecan, and yes he would love a slice. Please and thank you.",
"Tim Walz will have what shes having.",
"Tim Walz doesnt mind if you like mayo on your hot dog.",
"Tim Walz says what bathroom you use is none of his damn business.",
"Tim Walz doesnt mind waiting up. Hell come get you when you need him to.",
"Tim Walz left you some, its in the fridge.",
"Tim Walz bought those plums and put them in your icebox.",
"Tim Walz knows that “Die Hard” is a Christmas movie.",
"Tim Walz wouldve listened to Ripley.",
"Tim Walz knows when to leave well enough alone.",
"Tim Walz will help you tidy up afterwards.",
"Tim Walz will leave the party well before anyone has to ask.",
"Tim Walz shows up early to help you set up.",
"Tim Walz sees you struggling with that tent and can definitely hold that in place just for a sec.",
"Tim Walz will be your dad at graduation, if you want.",
"Tim Walz knows where you hide the cookies, but would never dream of taking one.",
"Tim Walz can teach you how to drive stick.",
"Tim Walz will drive you to your doctors appointment if youre scared of going alone.",
"Tim Walz isnt upset with you, he knows everyone makes mistakes.",
"Tim Walz doesnt care what color your text bubbles are.",
"Tim Walz knows youre doing your best.",
"Tim Walz cries at the end of “Its a Wonderful Life.”",
"Tim Walz has an elegant solution for your technical debt.",
"Tim Walz holds the door. Even if you are a little too far away.",
"Tim Walz will never have “more of a comment than a question, really.”",
"Tim Walz isnt going to finish his fries. Go ahead and have some.",
"Tim Walz reported that reply guy for you.",
"Tim Walz doesnt read the comments. Doesnt need to.",
"Tim Walz knows that wasnt as easy as you made it look.",
"Tim Walz knows you tried your best and hes proud of you.",
"Tim Walz doesnt mind if you beat him at Wordle.",
"Tim Walz knows all the prices on “The Price Is Right.”",
"Tim Walz wants you to put down the phone and hold the other end of the tape measure.",
"Tim Walz knows Monopoly isnt a great board game but will definitely play it with you.",
"Tim Walz knows how to steer into the skid.",
"Tim Walz got that reference you made.",
"Tim Walz will take you back-to-school shopping.",
"Tim Walz doesnt care if you jump into the pile of leaves he just raked.",
"Tim Walz doesnt mind being corrected, he loves to learn new things.",
"Tim Walz is happy to lend a hand.",
"Tim Walz can definitely go with to pick up that Craigslist thing you just bought.",
"Tim Walz can fax that thing for you.",
"Tim Walz will count your stitches and wont say anything when you drop one.",
"Tim Walz wishes you werent still on Facebook, but he gets it.",
"Tim Walz calls his Sweetwater sales rep to check in on him.",
"Tim Walz just came over to mow your lawn because he knows youve been feeling poorly lately.",
"Tim Walz says hes happy to keep an eye on the grill while you get the sides ready.",
"Tim Walz said your chili was the some of the best he's ever had even though you know you added too much salt.",
"Tim Walz is the fantasy football commissioner every year. He keeps the trash talk from getting TOO rough.",
"Tim Walz is happy to learn your pronouns.",
"Tim Walz says, “You just cant predict the weather. Why don't you take a sweater with you? Just in case.”",
"Tim Walz thinks you look amazing just as you are.",
"Tim Walz ordered fries for the table.",
"Tim Walz lifts with his legs, not his back.",
"Tim Walz mutes himself on Zoom when hes not talking.",
"Tim Walz keeps an extra toboggan in his Scout.",
"Tim Walz remembers how you like your coffee.",
"Tim Walz noticed your new haircut.",
"Tim Walz says “Its okay to feel hope.”",
"Tim Walz would be honored to take a spare key and check in on your place while youre away.",
"Tim Walz would go get a mani-pedi with you.",
"Tim Walz will return the cup of sugar he borrowed.",
"Tim Walz tips extra, cause he knows youre working hard.",
"Tim Walz knows the right way to hang a roll of toilet paper.",
"Tim Walz knows where to rent a tractor, and can help with that stump.",
"Tim Walz will definitely let you have a turn on his ride-on mower.",
"Tim Walz believes you.",
"Tim Walz knows that even Tim Walz is just doing his best.",
"Tim Walz will let (almost) anybody crash on his couch.",
"Tim Walz would like to remind you to hydrate.",
"Tim Walz can show you how to tighten that nut properly.",
"Tim Walz knows hes campaigning for us, not him.",
"Tim Walz waited in line with you to get a Wii.",
"Tim Walz is no doubt embarrassed and humbled by this website.",
"Tim Walz is very excited about the Nintendo 64 you got.",
"Tim Walz will hold your place in line while you run back to pick up tampons.",
"Tim Walz knows his way around a state fair.",
"Tim Walz loves when people are excited about their lightsaber technique.",
"Tim Walz pinned your mittens to your sleeve.",
"Tim Walz sings “Born to Run” while doing the laundry.",
"Tim Walz is glad to watch Netflix, fold, and put away laundry with you.",
"Tim Walz knows which laundry belongs to which person in his family.",
"Tim Walz does his own research first before asking.",
"Tim Walz cleaned your gutters for you.",
"Tim Walz is fine with it if your socks dont match.",
"Tim Walz checked the weather and hands you an umbrella as you walk out the door.",
"Tim Walz will come over if you need help uncluttering. No judgment. He knows how it gets.",
"Tim Walz uses humane rat traps.",
"Tim Walz knows which wrench you need and will lend it to you right then and there.",
"Tim Walz has a spare mask you can have.",
"Tim Walz is there for you when its time for your pet to go.",
"Tim Walz cheered during the Mona Lisa Vito testimony.",
"Tim Walz knows its complicated. Hes just here to listen.",
"Tim Walz will happily sit next to you in silence.",
"Tim Walz ran to catch the ice cream truck for you.",
"Tim Walz lends you his car while yours is in the shop.",
"Tim Walz picked up your mail while you were on vacation.",
"Tim Walz knows when to leave things well enough alone.",
"Tim Walz carried the diaper bag without being asked.",
"Tim Walz will put you on his shoulders so you can see the firetrucks.",
"Tim Walz appreciates the value of a post-dentist lollipop.",
"Tim Walz has a reserve of extra, pre-sharpened number two pencils.",
"Tim Walz would never call dibs on a parking spot in February, even though he did spend two hours shoveling it out.",
"Tim Walz brought homemade cookies, even after being told “No, just bring yourself.”",
"Tim Walz knows Han shot first.",
"Tim Walz can help you get that carry-on down from the overhead bin.",
"Tim Walz insists that you go before him in the checkout line. Youve only got a couple items.",
"Tim Walz just wants you to text when you get there.",
"Tim Walz is happy to see you here and wonders how your family is doing.",
"Tim Walz will hold your place in line.",
"Tim Walz takes the pretty way home.",
"Tim Walz says “We really needed this.” when it rains.",
"Tim Walz knows theyre not your preferred pronouns, theyre *your* pronouns.",
"Tim Walz does the edges of the jigsaw puzzle first, and lets you put in the last piece.",
"Tim Walz will find and fill out that form on LEGOs website to get that missing piece.",
"Tim Walz will take the training wheels off your bike.",
"Tim Walz saved that one email and will re-forward it to you.",
"Tim Walz returned your Tupperware with some fresh cookies inside.",
"Tim Walz made sure there were enough hot dog buns at the cookout.",
"Tim Walz just wants everyone to have joy.",
"Tim Walz ends phone calls with, “Good to hear your voice!”",
"Tim Walz says “Ope! Excuse me!” when he accidentally bumps someone.",
"Tim Walz is proud of that repair you did all by yourself.",
"Tim Walz can show you how to tie a fish hook, if youd like to know an easier way.",
"Tim Walz wrote a LinkedIn Recommendation that made you tear up.",
"Tim Walz doesnt brag about donations, he just makes them. Theyre no ones business.",
"Tim Walz knows how to fold a map.",
"Tim Walz has never needed GPS in his life.",
"Tim Walz is undefeated in Soulcalibur.",
"Tim Walz would never call the salad that you brought to the potluck dessert.",
"Tim Walz stopped by just to chit-chat when you got stuck doing graveyard watch.",
"Tim Walz brought orange slices.",
"Tim Walz prints out articles from the internet to mail to you later.",
"Tim Walz will patiently explain to your relatives that schools dont have litter boxes for kids.",
"Tim Walz was going that way anyway. Hop in.",
"Tim Walz would love to hear about your Neocities fansite.",
"Tim Walz keeps both types of phone charger in his car.",
"Tim Walz saw you sneak an extra scoop of ice cream, but wont tell. He knows we all need that sometimes.",
"Tim Walz thinks your baseball card collection looks great.",
"Tim Walz doesnt believe in guilty pleasures. Enjoy your silly show.",
"Tim Walz puts the recipe at the top of the post.",
"Tim Walz always checks for bike riders before he opens the car door.",
"Tim Walz doesnt park in the bike lane.",
"Tim Walz never met a pool that didnt get his famous cannonball.",
"Tim Walz can start a lawnmower every time.",
];
module.exports = sentences;

92
server.js Normal file
View File

@ -0,0 +1,92 @@
const express = require("express");
const app = express();
const PORT = process.env.PORT || 3000;
// Import sentences from sentences.js
const sentences = require("./sentences");
// Serve static files from the "public" directory
app.use(express.static("public"));
app.get("/", (req, res) => {
const randomSentence = sentences[Math.floor(Math.random() * sentences.length)];
res.send(`
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tim Walz Fixed Your Bicycle</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<meta name="description" content="Tim Walz fixed your bicycle? What a nice fella!">
<!-- Facebook Meta Tags -->
<meta property="og:url" content="https://timwalzfixedyourbicycle.com/">
<meta property="og:type" content="website">
<meta property="og:title" content="Tim Walz Fixed Your Bicycle">
<meta property="og:description" content="Tim Walz fixed your bicycle? What a nice fella!">
<meta property="og:image" content="https://cdn.glitch.global/caa249ff-6ba5-4a91-901e-9d343ae05bc9/timwaltzfixedyourbicycle.png?v=1723152647672">
<!-- Twitter Meta Tags -->
<meta name="twitter:card" content="summary_large_image">
<meta property="twitter:domain" content="timwalzfixedyourbicycle.com">
<meta property="twitter:url" content="https://timwalzfixedyourbicycle.com/">
<meta name="twitter:title" content="Tim Walz Fixed Your Bicycle">
<meta name="twitter:description" content="Tim Walz fixed your bicycle? What a nice fella!">
<meta name="twitter:image" content="https://cdn.glitch.global/caa249ff-6ba5-4a91-901e-9d343ae05bc9/timwaltzfixedyourbicycle.png?v=1723152647672">
<!-- Elon Musk can go eat a dry white dog turd. -->
<link href="https://fonts.googleapis.com/css2?family=Caprasimo&display=swap" rel="stylesheet">
<style>
body {display: flex;flex-direction: column;justify-content: center;align-items: center;min-height: 100svh;font-family: 'Cooper Black', 'Caprasimo', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";padding: 0;background-color: #f5a7a3;color: #0a0b0b;margin: 0;text-align: center;}.main {display: flex;flex-direction: column;justify-content: center;align-items: center;flex-grow: 1;padding: 0;}.container {display: flex;flex-direction: column;justify-content: center;align-items: center;width: 100%;}.sentence {font-size: clamp(2rem, 5vw + 1rem, 8rem);font-family: 'Cooper Black', 'Caprasimo', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";background-color: transparent;border: none;padding: 0;max-width: 25ch;color: #0a0b0b;cursor: pointer;padding: 0 clamp(1rem, .875em, 10rem);width: 100%;text-wrap: balance;}.link {margin-top: 50px;margin-bottom: 0px;font-size: 1.25rem;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";font-weight: 900;color: #0a0b0b;background-color: #f5a7a3;text-decoration: none;padding: .5em .75em;}.link:hover {text-decoration: none;}.disclaimer {background-color: #0a0b0b;font-size: 1rem;font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";font-weight: 600;color: #f5a7a3;padding: .75em 1em;text-align: center;text-wrap: balance;width: 100%;letter-spacing: .025ch;}
</style>
<script defer src="https://nebulous-lyrebird.pikapod.net/script.js" data-website-id="591e18f9-b70c-41ab-a172-e70b04b27882"></script>
<script>
if (window.location.hostname !== 'timwalzfixedyourbicycle.com') {
window.location.href = 'https://timwalzfixedyourbicycle.com';
}
</script>
</head>
<body>
<div class="main">
<button class="sentence" onclick="window.location.reload()">${randomSentence}</button>
<a class="link" href="https://secure.actblue.com/donate/web-hfp-waltz-august-2024">Donate to Harris/Walz 2024</a>
<a class="link" href="https://cottonbureau.com/people/tim-walz-fixed-your-bicycle">Get a shirt</a>
</div>
<div class="disclaimer">Not paid for by any candidate or candidates committee.</div>
<!--
Fun nerd? Member of the media? Just wanna chat? I've had the username "boogah" over on
Gmail for like 20 years now. Drop me a line there. Unless you're some sort of far right
weirdo, that is.
I primarily use the fediverse (see: Mastodon) so you could also say hi there:
https://simian.rodeo/@boogah
Want to make your own version of this site? Remix it on Glitch:
https://glitch.com/edit/#!/tim-walz-fixed-your-bicycle
Finally, I *would not* be mad if you wanted to help me cover the costs of running this
thing. You can do so by buying a t-shirt or sending along a couple bucks.
https://cottonbureau.com/people/tim-walz-fixed-your-bicycle
https://venmo.com/u/boogah
https://cash.app/$boogah
https://paypal.me/boogah
-->
</body>
</html>
`);
});
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});

634
shrinkwrap.yaml Normal file
View File

@ -0,0 +1,634 @@
dependencies:
fastify: 3.28.0
fastify-formbody: 5.2.0
fastify-static: 4.6.1
handlebars: 4.7.7
point-of-view: 5.2.0
packages:
/@fastify/ajv-compiler/1.1.0:
dependencies:
ajv: 6.12.6
dev: false
resolution:
integrity: sha512-gvCOUNpXsWrIQ3A4aXCLIdblL0tDq42BG/2Xw7oxbil9h11uow10ztS2GuFazNBfjbrsZ5nl+nPl5jDSjj5TSg==
/abstract-logging/2.0.1:
dev: false
resolution:
integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==
/ajv/6.12.6:
dependencies:
fast-deep-equal: 3.1.3
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
dev: false
resolution:
integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
/ajv/8.11.0:
dependencies:
fast-deep-equal: 3.1.3
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
uri-js: 4.4.1
dev: false
resolution:
integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==
/archy/1.0.0:
dev: false
resolution:
integrity: sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=
/atomic-sleep/1.0.0:
dev: false
engines:
node: '>=8.0.0'
resolution:
integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
/avvio/7.2.5:
dependencies:
archy: 1.0.0
debug: 4.3.4
fastq: 1.13.0
queue-microtask: 1.2.3
dev: false
resolution:
integrity: sha512-AOhBxyLVdpOad3TujtC9kL/9r3HnTkxwQ5ggOsYrvvZP1cCFvzHWJd5XxZDFuTn+IN8vkKSG5SEJrd27vCSbeA==
/balanced-match/1.0.2:
dev: false
resolution:
integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
/brace-expansion/1.1.11:
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
dev: false
resolution:
integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
/concat-map/0.0.1:
dev: false
resolution:
integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
/content-disposition/0.5.4:
dependencies:
safe-buffer: 5.2.1
dev: false
engines:
node: '>= 0.6'
resolution:
integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
/cookie/0.4.2:
dev: false
engines:
node: '>= 0.6'
resolution:
integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
/debug/2.6.9:
dependencies:
ms: 2.0.0
dev: false
resolution:
integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
/debug/4.3.4:
dependencies:
ms: 2.1.2
dev: false
engines:
node: '>=6.0'
resolution:
integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
/deepmerge/4.2.2:
dev: false
engines:
node: '>=0.10.0'
resolution:
integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
/depd/1.1.2:
dev: false
engines:
node: '>= 0.6'
resolution:
integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
/destroy/1.0.4:
dev: false
resolution:
integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
/ee-first/1.1.1:
dev: false
resolution:
integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
/encodeurl/1.0.2:
dev: false
engines:
node: '>= 0.8'
resolution:
integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
/encoding-negotiator/2.0.1:
dev: false
engines:
node: '>=10.13.0'
resolution:
integrity: sha512-GSK7qphNR4iPcejfAlZxKDoz3xMhnspwImK+Af5WhePS9jUpK/Oh7rUdyENWu+9rgDflOCTmAojBsgsvM8neAQ==
/escape-html/1.0.3:
dev: false
resolution:
integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
/etag/1.8.1:
dev: false
engines:
node: '>= 0.6'
resolution:
integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
/fast-decode-uri-component/1.0.1:
dev: false
resolution:
integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==
/fast-deep-equal/3.1.3:
dev: false
resolution:
integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
/fast-json-stable-stringify/2.1.0:
dev: false
resolution:
integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
/fast-json-stringify/2.7.13:
dependencies:
ajv: 6.12.6
deepmerge: 4.2.2
rfdc: 1.3.0
string-similarity: 4.0.4
dev: false
engines:
node: '>= 10.0.0'
resolution:
integrity: sha512-ar+hQ4+OIurUGjSJD1anvYSDcUflywhKjfxnsW4TBTD7+u0tJufv6DKRWoQk3vI6YBOWMoz0TQtfbe7dxbQmvA==
/fast-redact/3.1.1:
dev: false
engines:
node: '>=6'
resolution:
integrity: sha512-odVmjC8x8jNeMZ3C+rPMESzXVSEU8tSWSHv9HFxP2mm89G/1WwqhrerJDQm9Zus8X6aoRgQDThKqptdNA6bt+A==
/fast-safe-stringify/2.1.1:
dev: false
resolution:
integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==
/fastify-error/0.3.1:
dev: false
resolution:
integrity: sha512-oCfpcsDndgnDVgiI7bwFKAun2dO+4h84vBlkWsWnz/OUK9Reff5UFoFl241xTiLeHWX/vU9zkDVXqYUxjOwHcQ==
/fastify-formbody/5.2.0:
dependencies:
fastify-plugin: 3.0.0
dev: false
resolution:
integrity: sha512-d8Y5hCL82akPyoFiXh2wYOm3es0pV9jqoPo3pO9OV2cNF0cQx39J5WAVXzCh4MSt9Z2qF4Fy5gHlvlyESwjtvg==
/fastify-plugin/3.0.0:
dev: false
resolution:
integrity: sha512-ZdCvKEEd92DNLps5n0v231Bha8bkz1DjnPP/aEz37rz/q42Z5JVLmgnqR4DYuNn3NXAO3IDCPyRvgvxtJ4Ym4w==
/fastify-plugin/3.0.1:
dev: false
resolution:
integrity: sha512-qKcDXmuZadJqdTm6vlCqioEbyewF60b/0LOFCcYN1B6BIZGlYJumWWOYs70SFYLDAH4YqdE1cxH/RKMG7rFxgA==
/fastify-static/4.6.1:
dependencies:
content-disposition: 0.5.4
encoding-negotiator: 2.0.1
fastify-plugin: 3.0.1
glob: 7.2.0
p-limit: 3.1.0
readable-stream: 3.6.0
send: 0.17.2
dev: false
resolution:
integrity: sha512-vy7N28U4AMhuOim12ZZWHulEE6OQKtzZbHgiB8Zj4llUuUQXPka0WHAQI3njm1jTCx4W6fixUHfpITxweMtAIA==
/fastify/3.28.0:
dependencies:
'@fastify/ajv-compiler': 1.1.0
abstract-logging: 2.0.1
avvio: 7.2.5
fast-json-stringify: 2.7.13
fastify-error: 0.3.1
find-my-way: 4.5.1
flatstr: 1.0.12
light-my-request: 4.9.0
pino: 6.14.0
process-warning: 1.0.0
proxy-addr: 2.0.7
rfdc: 1.3.0
secure-json-parse: 2.4.0
semver: 7.3.7
tiny-lru: 8.0.2
dev: false
resolution:
integrity: sha512-LAQtGllpkRe8L6Tpf3zdbvXzXFOrgaWV3Tbvp3xMv9ngcr9zht9U2/mo5zq9qp9kplSiBJ0w43aVAMqv6PBMbw==
/fastq/1.13.0:
dependencies:
reusify: 1.0.4
dev: false
resolution:
integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
/find-my-way/4.5.1:
dependencies:
fast-decode-uri-component: 1.0.1
fast-deep-equal: 3.1.3
safe-regex2: 2.0.0
semver-store: 0.3.0
dev: false
engines:
node: '>=10'
resolution:
integrity: sha512-kE0u7sGoUFbMXcOG/xpkmz4sRLCklERnBcg7Ftuu1iAxsfEt2S46RLJ3Sq7vshsEy2wJT2hZxE58XZK27qa8kg==
/flatstr/1.0.12:
dev: false
resolution:
integrity: sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==
/forwarded/0.2.0:
dev: false
engines:
node: '>= 0.6'
resolution:
integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
/fresh/0.5.2:
dev: false
engines:
node: '>= 0.6'
resolution:
integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
/fs.realpath/1.0.0:
dev: false
resolution:
integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
/glob/7.2.0:
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
minimatch: 3.1.2
once: 1.4.0
path-is-absolute: 1.0.1
dev: false
resolution:
integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
/handlebars/4.7.7:
dependencies:
minimist: 1.2.5
neo-async: 2.6.2
source-map: 0.6.1
wordwrap: 1.0.0
dev: false
engines:
node: '>=0.4.7'
hasBin: true
optionalDependencies:
uglify-js: 3.13.3
resolution:
integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==
/hashlru/2.3.0:
dev: false
resolution:
integrity: sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==
/http-errors/1.8.1:
dependencies:
depd: 1.1.2
inherits: 2.0.4
setprototypeof: 1.2.0
statuses: 1.5.0
toidentifier: 1.0.1
dev: false
engines:
node: '>= 0.6'
resolution:
integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
/inflight/1.0.6:
dependencies:
once: 1.4.0
wrappy: 1.0.2
dev: false
resolution:
integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
/inherits/2.0.4:
dev: false
resolution:
integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
/ipaddr.js/1.9.1:
dev: false
engines:
node: '>= 0.10'
resolution:
integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
/json-schema-traverse/0.4.1:
dev: false
resolution:
integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
/json-schema-traverse/1.0.0:
dev: false
resolution:
integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
/light-my-request/4.9.0:
dependencies:
ajv: 8.11.0
cookie: 0.4.2
process-warning: 1.0.0
set-cookie-parser: 2.4.8
dev: false
resolution:
integrity: sha512-b1U3z4OVPoO/KanT14NRkXMr9rRtXAiq0ORqNrqhDyb5bGkZjAdEc6GRN1GWCfgaLBG+aq73qkCLDNeB3c2sLw==
/lru-cache/6.0.0:
dependencies:
yallist: 4.0.0
dev: false
engines:
node: '>=10'
resolution:
integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
/mime/1.6.0:
dev: false
engines:
node: '>=4'
hasBin: true
resolution:
integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
/minimatch/3.1.2:
dependencies:
brace-expansion: 1.1.11
dev: false
resolution:
integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
/minimist/1.2.5:
dev: false
resolution:
integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
/ms/2.0.0:
dev: false
resolution:
integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
/ms/2.1.2:
dev: false
resolution:
integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
/ms/2.1.3:
dev: false
resolution:
integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
/neo-async/2.6.2:
dev: false
resolution:
integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
/on-finished/2.3.0:
dependencies:
ee-first: 1.1.1
dev: false
engines:
node: '>= 0.8'
resolution:
integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
/once/1.4.0:
dependencies:
wrappy: 1.0.2
dev: false
resolution:
integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
/p-limit/3.1.0:
dependencies:
yocto-queue: 0.1.0
dev: false
engines:
node: '>=10'
resolution:
integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
/path-is-absolute/1.0.1:
dev: false
engines:
node: '>=0.10.0'
resolution:
integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
/pino-std-serializers/3.2.0:
dev: false
resolution:
integrity: sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==
/pino/6.14.0:
dependencies:
fast-redact: 3.1.1
fast-safe-stringify: 2.1.1
flatstr: 1.0.12
pino-std-serializers: 3.2.0
process-warning: 1.0.0
quick-format-unescaped: 4.0.4
sonic-boom: 1.4.1
dev: false
hasBin: true
resolution:
integrity: sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==
/point-of-view/5.2.0:
dependencies:
fastify-plugin: 3.0.1
hashlru: 2.3.0
dev: false
resolution:
integrity: sha512-PYoeqEunutxZTmNih6NXXoz8xZZopzw2MWgBoKPLcofOJNagEoXVpzbHT30AkK/9ArKjJYrvV6iU8JAg87+VMw==
/process-warning/1.0.0:
dev: false
resolution:
integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==
/proxy-addr/2.0.7:
dependencies:
forwarded: 0.2.0
ipaddr.js: 1.9.1
dev: false
engines:
node: '>= 0.10'
resolution:
integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==
/punycode/2.1.1:
dev: false
engines:
node: '>=6'
resolution:
integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
/queue-microtask/1.2.3:
dev: false
resolution:
integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
/quick-format-unescaped/4.0.4:
dev: false
resolution:
integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==
/range-parser/1.2.1:
dev: false
engines:
node: '>= 0.6'
resolution:
integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
/readable-stream/3.6.0:
dependencies:
inherits: 2.0.4
string_decoder: 1.3.0
util-deprecate: 1.0.2
dev: false
engines:
node: '>= 6'
resolution:
integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
/require-from-string/2.0.2:
dev: false
engines:
node: '>=0.10.0'
resolution:
integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
/ret/0.2.2:
dev: false
engines:
node: '>=4'
resolution:
integrity: sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==
/reusify/1.0.4:
dev: false
engines:
iojs: '>=1.0.0'
node: '>=0.10.0'
resolution:
integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
/rfdc/1.3.0:
dev: false
resolution:
integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
/safe-buffer/5.2.1:
dev: false
resolution:
integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
/safe-regex2/2.0.0:
dependencies:
ret: 0.2.2
dev: false
resolution:
integrity: sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==
/secure-json-parse/2.4.0:
dev: false
resolution:
integrity: sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==
/semver-store/0.3.0:
dev: false
resolution:
integrity: sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg==
/semver/7.3.7:
dependencies:
lru-cache: 6.0.0
dev: false
engines:
node: '>=10'
hasBin: true
resolution:
integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
/send/0.17.2:
dependencies:
debug: 2.6.9
depd: 1.1.2
destroy: 1.0.4
encodeurl: 1.0.2
escape-html: 1.0.3
etag: 1.8.1
fresh: 0.5.2
http-errors: 1.8.1
mime: 1.6.0
ms: 2.1.3
on-finished: 2.3.0
range-parser: 1.2.1
statuses: 1.5.0
dev: false
engines:
node: '>= 0.8.0'
resolution:
integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==
/set-cookie-parser/2.4.8:
dev: false
resolution:
integrity: sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==
/setprototypeof/1.2.0:
dev: false
resolution:
integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
/sonic-boom/1.4.1:
dependencies:
atomic-sleep: 1.0.0
flatstr: 1.0.12
dev: false
resolution:
integrity: sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==
/source-map/0.6.1:
dev: false
engines:
node: '>=0.10.0'
resolution:
integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
/statuses/1.5.0:
dev: false
engines:
node: '>= 0.6'
resolution:
integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
/string-similarity/4.0.4:
dev: false
resolution:
integrity: sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==
/string_decoder/1.3.0:
dependencies:
safe-buffer: 5.2.1
dev: false
resolution:
integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
/tiny-lru/8.0.2:
dev: false
engines:
node: '>=6'
resolution:
integrity: sha512-ApGvZ6vVvTNdsmt676grvCkUCGwzG9IqXma5Z07xJgiC5L7akUMof5U8G2JTI9Rz/ovtVhJBlY6mNhEvtjzOIg==
/toidentifier/1.0.1:
dev: false
engines:
node: '>=0.6'
resolution:
integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
/uglify-js/3.13.3:
dev: false
engines:
node: '>=0.8.0'
hasBin: true
optional: true
resolution:
integrity: sha512-otIc7O9LyxpUcQoXzj2hL4LPWKklO6LJWoJUzNa8A17Xgi4fOeDC8FBDOLHnC/Slo1CQgsZMcM6as0M76BZaig==
/uri-js/4.4.1:
dependencies:
punycode: 2.1.1
dev: false
resolution:
integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
/util-deprecate/1.0.2:
dev: false
resolution:
integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
/wordwrap/1.0.0:
dev: false
resolution:
integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
/wrappy/1.0.2:
dev: false
resolution:
integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
/yallist/4.0.0:
dev: false
resolution:
integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
/yocto-queue/0.1.0:
dev: false
engines:
node: '>=10'
resolution:
integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
registry: 'https://registry.npmjs.org/'
shrinkwrapMinorVersion: 9
shrinkwrapVersion: 3
specifiers:
fastify: ^3.28.0
fastify-formbody: ^5.2.0
fastify-static: ^4.6.1
handlebars: ^4.7.7
point-of-view: ^5.2.0

1
tmp
View File

@ -1 +0,0 @@