Pull work from Glitch into repo #1
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.glitchdotcom.json
|
||||||
|
.node-gyp
|
||||||
|
node_modules
|
2
.glitch-assets
Normal file
2
.glitch-assets
Normal 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
21
LICENSE
Normal 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
33
README.md
Normal 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
497
package-lock.json
generated
Normal 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
15
package.json
Normal 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
67
public/style.css
Normal 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
237
sentences.js
Normal file
@ -0,0 +1,237 @@
|
|||||||
|
const sentences = [
|
||||||
|
"Tim Walz fixed your bicycle.",
|
||||||
|
"Tim Walz sends birthday texts to everyone he’s ever served with.",
|
||||||
|
"Tim Walz clipped you a coupon for that thing you’ve 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 you’re 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 you’re 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 isn’t afraid to ask the clerk which aisle the tampons are on.",
|
||||||
|
"Tim Walz brought some hotdish.",
|
||||||
|
"Tim Walz has an extra Springsteen ticket, if you’re 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 doesn’t mind rewatching that show you really want to see.",
|
||||||
|
"Tim Walz doesn’t mind rewatching that movie you really want to see.",
|
||||||
|
"Tim Walz doesn’t care if it’s 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 doesn’t mind if you don’t 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 you’re 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 can’t 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 driver’s side tire is a little low.",
|
||||||
|
"Tim Walz carries a spare ice scraper “for situations like this.”",
|
||||||
|
"Tim Walz won’t tell your boss you’re unionizing.",
|
||||||
|
"Tim Walz always rings your doorbell when he gets to your house.",
|
||||||
|
"Tim Walz knows what Minnesota nice is, and he’s not afraid to use it.",
|
||||||
|
"Tim Walz remembers where you parked your car.",
|
||||||
|
"Tim Walz asks anyone taller than him “How’s the weather up there?”",
|
||||||
|
"Tim Walz Venmo’d 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 don’t 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 “I’m hungry.”",
|
||||||
|
"Tim Walz can give you a ride to the airport.",
|
||||||
|
"Tim Walz doesn’t get a haircut. He gets ALL OF THEM cut.",
|
||||||
|
"Tim Walz pulls the car around when it’s 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 he’s 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 she’s having.",
|
||||||
|
"Tim Walz doesn’t mind if you like mayo on your hot dog.",
|
||||||
|
"Tim Walz says what bathroom you use is none of his damn business.",
|
||||||
|
"Tim Walz doesn’t mind waiting up. He’ll come get you when you need him to.",
|
||||||
|
"Tim Walz left you some, it’s 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 would’ve 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 doctor’s appointment if you’re scared of going alone.",
|
||||||
|
"Tim Walz isn’t upset with you, he knows everyone makes mistakes.",
|
||||||
|
"Tim Walz doesn’t care what color your text bubbles are.",
|
||||||
|
"Tim Walz knows you’re doing your best.",
|
||||||
|
"Tim Walz cries at the end of “It’s 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 isn’t going to finish his fries. Go ahead and have some.",
|
||||||
|
"Tim Walz reported that reply guy for you.",
|
||||||
|
"Tim Walz doesn’t read the comments. Doesn’t need to.",
|
||||||
|
"Tim Walz knows that wasn’t as easy as you made it look.",
|
||||||
|
"Tim Walz knows you tried your best and he’s proud of you.",
|
||||||
|
"Tim Walz doesn’t 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 isn’t 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 doesn’t care if you jump into the pile of leaves he just raked.",
|
||||||
|
"Tim Walz doesn’t 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 won’t say anything when you drop one.",
|
||||||
|
"Tim Walz wishes you weren’t 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 you’ve been feeling poorly lately.",
|
||||||
|
"Tim Walz says he’s 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 can’t 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 he’s 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 “It’s okay to feel hope.”",
|
||||||
|
"Tim Walz would be honored to take a spare key and check in on your place while you’re 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 you’re 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 he’s 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 don’t 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 it’s time for your pet to go.",
|
||||||
|
"Tim Walz cheered during the Mona Lisa Vito testimony.",
|
||||||
|
"Tim Walz knows it’s complicated. He’s 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. You’ve 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 they’re not your preferred pronouns, they’re *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 LEGO’s 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 you’d like to know an easier way.",
|
||||||
|
"Tim Walz wrote a LinkedIn Recommendation that made you tear up.",
|
||||||
|
"Tim Walz doesn’t brag about donations, he just makes them. They’re no one’s 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 don’t 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 won’t tell. He knows we all need that sometimes.",
|
||||||
|
"Tim Walz thinks your baseball card collection looks great.",
|
||||||
|
"Tim Walz doesn’t 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 doesn’t park in the bike lane.",
|
||||||
|
"Tim Walz never met a pool that didn’t get his famous cannonball.",
|
||||||
|
"Tim Walz can start a lawnmower every time.",
|
||||||
|
];
|
||||||
|
|
||||||
|
module.exports = sentences;
|
92
server.js
Normal file
92
server.js
Normal 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
634
shrinkwrap.yaml
Normal 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
|
Loading…
x
Reference in New Issue
Block a user