diff --git a/app/app.vue b/app/app.vue index 4976477..696fc10 100644 --- a/app/app.vue +++ b/app/app.vue @@ -1,3 +1,8 @@ + + diff --git a/bun.lock b/bun.lock index cdaef7c..1067dae 100644 --- a/bun.lock +++ b/bun.lock @@ -7,6 +7,7 @@ "dependencies": { "@nuxt/content": "3.13.0", "better-sqlite3": "^12.9.0", + "chalk": "^5.6.2", "gsap": "^3.15.0", "nuxt": "^4.4.2", "vue": "^3.5.33", @@ -710,6 +711,8 @@ "ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="], + "chalk": ["chalk@5.6.2", "", {}, "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA=="], + "char-regex": ["char-regex@1.0.2", "", {}, "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw=="], "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], diff --git a/package.json b/package.json index ca5e28d..0fad56d 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "dependencies": { "@nuxt/content": "3.13.0", "better-sqlite3": "^12.9.0", + "chalk": "^5.6.2", "gsap": "^3.15.0", "nuxt": "^4.4.2", "vue": "^3.5.33", diff --git a/server/middleware/curl.ts b/server/middleware/curl.ts new file mode 100644 index 0000000..1da306a --- /dev/null +++ b/server/middleware/curl.ts @@ -0,0 +1,41 @@ +import chalk from 'chalk'; + +export default defineEventHandler(async (event) => { + const userAgent = getRequestHeader(event, 'user-agent') || ''; + + if (userAgent.startsWith('curl/')) { + const path = event.path; + + if (path === '/') { + setResponseHeader( + event, + 'content-type', + 'text/plain; charset=utf-8', + ); + const padding = chalk.reset(' '); + return ( + chalk.bgGray(`\ + +${padding}░█░█░█▀▀░█░░░█░░░█▀█░░░░░░░▀█▀░▀░█▄█░░░▀▀█░█▀█░█▀▄░█▀█░█▀█ +${padding}░█▀█░█▀▀░█░░░█░░░█░█░░░░░░░░█░░░░█░█░░░░░█░█▀█░█▀▄░█░█░█░█ +${padding}░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▄▀░░░░▀▀▀░░░▀░▀░░░▀▀░░▀░▀░▀░▀░▀▀▀░▀░▀ +${padding} +${padding}┌ About ─────────────────────────────────────────────────────────────────────┐ +${padding}│ │ +${padding}│ I build things to solve problems from the ground up. │ +${padding}│ │ +${padding}│ I left school and my job at Chick-fil-A in 2022 to write code full time. │ +${padding}│ It's definitely one of the best decisions I've ever made. │ +${padding}│ I've learned a lot since then and still have so much more to learn. │ +${padding}│ │ +${padding}│ If you want to build something cool or connect hit me up │ +${padding}│ we'll grab a coffee or beer in you're in Austin! │ +${padding}│ │ +${padding}└────────────────────────────────────────────────────────────────────────────┘ +${padding} +${padding} Austin, TX yo@jp.wtf +`) + '\n' + ); + } + } +});