From 9b4e65b9f5c8ed58ce4892c805385ebce4b5bd13 Mon Sep 17 00:00:00 2001 From: Matjaz Mesnjak Date: Thu, 3 Feb 2022 18:41:15 +0100 Subject: [PATCH] Initial commit. --- .gitignore | 118 +++ app.js | 41 + bin/www | 90 +++ index.html | 105 +++ package-lock.json | 1131 ++++++++++++++++++++++++++++ package.json | 20 + public/images/e3c4a6d5b1f352ee.jpg | Bin 0 -> 125352 bytes public/stylesheets/style.css | 1015 +++++++++++++++++++++++++ routes/index.js | 9 + routes/users.js | 9 + src/style.css | 3 + tailwind.config.js | 7 + views/error.ejs | 3 + views/index.ejs | 136 ++++ views/partials/_toot.ejs | 18 + 15 files changed, 2705 insertions(+) create mode 100644 .gitignore create mode 100644 app.js create mode 100755 bin/www create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/images/e3c4a6d5b1f352ee.jpg create mode 100644 public/stylesheets/style.css create mode 100644 routes/index.js create mode 100644 routes/users.js create mode 100644 src/style.css create mode 100644 tailwind.config.js create mode 100644 views/error.ejs create mode 100644 views/index.ejs create mode 100644 views/partials/_toot.ejs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6f92a01 --- /dev/null +++ b/.gitignore @@ -0,0 +1,118 @@ +# ---> Node +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + diff --git a/app.js b/app.js new file mode 100644 index 0000000..62dff0d --- /dev/null +++ b/app.js @@ -0,0 +1,41 @@ +var createError = require('http-errors'); +var express = require('express'); +var path = require('path'); +var cookieParser = require('cookie-parser'); +var logger = require('morgan'); + +var indexRouter = require('./routes/index'); +var usersRouter = require('./routes/users'); + +var app = express(); + +// view engine setup +app.set('views', path.join(__dirname, 'views')); +app.set('view engine', 'ejs'); + +app.use(logger('dev')); +app.use(express.json()); +app.use(express.urlencoded({ extended: false })); +app.use(cookieParser()); +app.use(express.static(path.join(__dirname, 'public'))); + +app.use('/', indexRouter); +app.use('/users', usersRouter); + +// catch 404 and forward to error handler +app.use(function(req, res, next) { + next(createError(404)); +}); + +// error handler +app.use(function(err, req, res, next) { + // set locals, only providing error in development + res.locals.message = err.message; + res.locals.error = req.app.get('env') === 'development' ? err : {}; + + // render the error page + res.status(err.status || 500); + res.render('error'); +}); + +module.exports = app; diff --git a/bin/www b/bin/www new file mode 100755 index 0000000..95fcd03 --- /dev/null +++ b/bin/www @@ -0,0 +1,90 @@ +#!/usr/bin/env node + +/** + * Module dependencies. + */ + +var app = require('../app'); +var debug = require('debug')('socialbot:server'); +var http = require('http'); + +/** + * Get port from environment and store in Express. + */ + +var port = normalizePort(process.env.PORT || '3000'); +app.set('port', port); + +/** + * Create HTTP server. + */ + +var server = http.createServer(app); + +/** + * Listen on provided port, on all network interfaces. + */ + +server.listen(port); +server.on('error', onError); +server.on('listening', onListening); + +/** + * Normalize a port into a number, string, or false. + */ + +function normalizePort(val) { + var port = parseInt(val, 10); + + if (isNaN(port)) { + // named pipe + return val; + } + + if (port >= 0) { + // port number + return port; + } + + return false; +} + +/** + * Event listener for HTTP server "error" event. + */ + +function onError(error) { + if (error.syscall !== 'listen') { + throw error; + } + + var bind = typeof port === 'string' + ? 'Pipe ' + port + : 'Port ' + port; + + // handle specific listen errors with friendly messages + switch (error.code) { + case 'EACCES': + console.error(bind + ' requires elevated privileges'); + process.exit(1); + break; + case 'EADDRINUSE': + console.error(bind + ' is already in use'); + process.exit(1); + break; + default: + throw error; + } +} + +/** + * Event listener for HTTP server "listening" event. + */ + +function onListening() { + var addr = server.address(); + var bind = typeof addr === 'string' + ? 'pipe ' + addr + : 'port ' + addr.port; + debug('Listening on ' + bind); +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..4ed6f2b --- /dev/null +++ b/index.html @@ -0,0 +1,105 @@ + + + + + Social Robot + + + + + + +
+ +
+
+
+
+ + + + +
+
+
+ John Doe + John Doe +
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ John Doe +
+
+
John Doe
+ +

There are so many programs configurable in #Lua. I am making a list.

+ +

I revisited the tiling window manager topic. #awesomewm is configurable in Lua, but for now I think I will rewrite my #bspwm config in Lua and learn how to do more advanced customization with conditionals.

+ +

Found out that #conky's visualizations are done in Lua with the Cairo graphics library. That looks really cool and I hope to do some with that soon.

+ +

Set terminal text and bspwm to #gruvbox colors.

+ +

#RetroEdgeTechStack

+
+
+
+ +
+ +
+ +
+
+ + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..f9b9c65 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1131 @@ +{ + "name": "socialbot", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/highlight": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", + "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "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" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", + "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + }, + "cookie-parser": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.6.tgz", + "integrity": "sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==", + "requires": { + "cookie": "0.4.1", + "cookie-signature": "1.0.6" + } + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "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" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dev": true, + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.2.tgz", + "integrity": "sha512-PcW2a0tyTuPHz3tWyYqtK6r1fZ3gp+3Sop8Ph+ZYN81Ob5rwmbHEzaqs10N3BEsaGTkh/ooniXK+WwszGlc2+Q==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "express": { + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", + "requires": { + "accepts": "~1.3.5", + "array-flatten": "1.1.1", + "body-parser": "1.18.3", + "content-disposition": "0.5.2", + "content-type": "~1.0.4", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.1.1", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", + "range-parser": "~1.2.0", + "safe-buffer": "5.1.2", + "send": "0.16.2", + "serve-static": "1.13.2", + "setprototypeof": "1.1.0", + "statuses": "~1.4.0", + "type-is": "~1.6.16", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + } + } + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "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": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "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==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "lilconfig": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "dev": true + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==" + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "requires": { + "mime-db": "1.51.0" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "morgan": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", + "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", + "requires": { + "basic-auth": "~2.0.0", + "debug": "2.6.9", + "depd": "~1.1.2", + "on-finished": "~2.3.0", + "on-headers": "~1.0.1" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nanoid": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "postcss": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", + "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", + "dev": true, + "requires": { + "nanoid": "^3.2.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", + "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", + "dev": true, + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-load-config": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.1.tgz", + "integrity": "sha512-c/9XYboIbSEUZpiD1UQD0IKiUe8n9WHYV7YFe7X7J+ZwCsEKkUJSFWjS9hBU1RR9THR7jMXst8sxiqP0jjo2mg==", + "dev": true, + "requires": { + "lilconfig": "^2.0.4", + "yaml": "^1.10.2" + } + }, + "postcss-nested": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", + "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.6" + } + }, + "postcss-selector-parser": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", + "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "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.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true + }, + "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.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "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.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "requires": { + "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.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + } + }, + "serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", + "send": "0.16.2" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tailwindcss": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.18.tgz", + "integrity": "sha512-ihPTpEyA5ANgZbwKlgrbfnzOp9R5vDHFWmqxB1PT8NwOGCOFVVMl+Ps1cQQ369acaqqf1BEF77roCwK0lvNmTw==", + "dev": true, + "requires": { + "arg": "^5.0.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "cosmiconfig": "^7.0.1", + "detective": "^5.2.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "normalize-path": "^3.0.0", + "object-hash": "^2.2.0", + "postcss-js": "^4.0.0", + "postcss-load-config": "^3.1.0", + "postcss-nested": "5.0.6", + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.21.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "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": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..06f994f --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "socialbot", + "version": "0.0.0", + "private": true, + "scripts": { + "start": "node ./bin/www" + }, + "dependencies": { + "cookie-parser": "~1.4.4", + "debug": "~2.6.9", + "ejs": "~2.6.1", + "express": "~4.16.1", + "http-errors": "~1.6.3", + "morgan": "~1.9.1" + }, + "devDependencies": { + "postcss": "^8.4.6", + "tailwindcss": "^3.0.18" + } +} diff --git a/public/images/e3c4a6d5b1f352ee.jpg b/public/images/e3c4a6d5b1f352ee.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e809d43a87abf6c808559a0c077ad1444f90bf5 GIT binary patch literal 125352 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 L|7L+Rf2aNjoi#;X literal 0 HcmV?d00001 diff --git a/public/stylesheets/style.css b/public/stylesheets/style.css new file mode 100644 index 0000000..a7ec09f --- /dev/null +++ b/public/stylesheets/style.css @@ -0,0 +1,1015 @@ +/* +! tailwindcss v3.0.18 | MIT License | https://tailwindcss.com +*/ + +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; + /* 1 */ + border-width: 0; + /* 2 */ + border-style: solid; + /* 2 */ + border-color: #e5e7eb; + /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +*/ + +html { + line-height: 1.5; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ + -moz-tab-size: 4; + /* 3 */ + -o-tab-size: 4; + tab-size: 4; + /* 3 */ + font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + /* 4 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ + +body { + margin: 0; + /* 1 */ + line-height: inherit; + /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; + /* 1 */ + color: inherit; + /* 2 */ + border-top-width: 1px; + /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured `mono` font family by default. +2. Correct the odd `em` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; + /* 1 */ + border-color: inherit; + /* 2 */ + border-collapse: collapse; + /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + line-height: inherit; + /* 1 */ + color: inherit; + /* 1 */ + margin: 0; + /* 2 */ + padding: 0; + /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; + /* 1 */ + background-color: transparent; + /* 2 */ + background-image: none; + /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to `inherit` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::-moz-placeholder, textarea::-moz-placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +input:-ms-input-placeholder, textarea:-ms-input-placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +input::placeholder, +textarea::placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role="button"] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ + +:disabled { + cursor: default; +} + +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + /* 1 */ + vertical-align: middle; + /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +/* +Ensure the default browser behavior of the `hidden` attribute. +*/ + +[hidden] { + display: none; +} + +*, ::before, ::after { + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +.static { + position: static; +} + +.absolute { + position: absolute; +} + +.relative { + position: relative; +} + +.inset-y-0 { + top: 0px; + bottom: 0px; +} + +.left-0 { + left: 0px; +} + +.-top-10 { + top: -2.5rem; +} + +.z-0 { + z-index: 0; +} + +.z-50 { + z-index: 50; +} + +.order-1 { + order: 1; +} + +.m-2 { + margin: 0.5rem; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.my-4 { + margin-top: 1rem; + margin-bottom: 1rem; +} + +.my-2 { + margin-top: 0.5rem; + margin-bottom: 0.5rem; +} + +.mx-2 { + margin-left: 0.5rem; + margin-right: 0.5rem; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.mt-5 { + margin-top: 1.25rem; +} + +.mr-2 { + margin-right: 0.5rem; +} + +.mr-4 { + margin-right: 1rem; +} + +.mb-4 { + margin-bottom: 1rem; +} + +.mr-1 { + margin-right: 0.25rem; +} + +.ml-2 { + margin-left: 0.5rem; +} + +.mr-3 { + margin-right: 0.75rem; +} + +.mt-1 { + margin-top: 0.25rem; +} + +.mt-3 { + margin-top: 0.75rem; +} + +.mt-14 { + margin-top: 3.5rem; +} + +.block { + display: block; +} + +.flex { + display: flex; +} + +.h-6 { + height: 1.5rem; +} + +.h-screen { + height: 100vh; +} + +.h-4 { + height: 1rem; +} + +.h-40 { + height: 10rem; +} + +.h-36 { + height: 9rem; +} + +.h-32 { + height: 8rem; +} + +.h-24 { + height: 6rem; +} + +.h-20 { + height: 5rem; +} + +.h-16 { + height: 4rem; +} + +.h-14 { + height: 3.5rem; +} + +.max-h-52 { + max-height: 13rem; +} + +.max-h-40 { + max-height: 10rem; +} + +.max-h-10 { + max-height: 2.5rem; +} + +.w-6 { + width: 1.5rem; +} + +.w-full { + width: 100%; +} + +.w-8 { + width: 2rem; +} + +.w-10 { + width: 2.5rem; +} + +.w-fit { + width: -webkit-fit-content; + width: -moz-fit-content; + width: fit-content; +} + +.flex-1 { + flex: 1 1 0%; +} + +.flex-auto { + flex: 1 1 auto; +} + +.flex-shrink-0 { + flex-shrink: 0; +} + +.place-content-end { + place-content: end; +} + +.items-center { + align-items: center; +} + +.justify-end { + justify-content: flex-end; +} + +.justify-between { + justify-content: space-between; +} + +.justify-items-end { + justify-items: end; +} + +.justify-self-end { + justify-self: end; +} + +.overflow-visible { + overflow: visible; +} + +.overflow-y-hidden { + overflow-y: hidden; +} + +.rounded-md { + border-radius: 0.375rem; +} + +.border { + border-width: 1px; +} + +.border-b { + border-bottom-width: 1px; +} + +.border-white { + --tw-border-opacity: 1; + border-color: rgb(255 255 255 / var(--tw-border-opacity)); +} + +.border-b-gray-400 { + --tw-border-opacity: 1; + border-bottom-color: rgb(156 163 175 / var(--tw-border-opacity)); +} + +.border-b-zinc-50 { + --tw-border-opacity: 1; + border-bottom-color: rgb(250 250 250 / var(--tw-border-opacity)); +} + +.border-b-white { + --tw-border-opacity: 1; + border-bottom-color: rgb(255 255 255 / var(--tw-border-opacity)); +} + +.border-b-gray-300 { + --tw-border-opacity: 1; + border-bottom-color: rgb(209 213 219 / var(--tw-border-opacity)); +} + +.border-b-gray-500 { + --tw-border-opacity: 1; + border-bottom-color: rgb(107 114 128 / var(--tw-border-opacity)); +} + +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.bg-blue-500 { + --tw-bg-opacity: 1; + background-color: rgb(59 130 246 / var(--tw-bg-opacity)); +} + +.bg-gray-900 { + --tw-bg-opacity: 1; + background-color: rgb(17 24 39 / var(--tw-bg-opacity)); +} + +.bg-gray-800 { + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); +} + +.bg-gray-700 { + --tw-bg-opacity: 1; + background-color: rgb(55 65 81 / var(--tw-bg-opacity)); +} + +.bg-gray-600 { + --tw-bg-opacity: 1; + background-color: rgb(75 85 99 / var(--tw-bg-opacity)); +} + +.bg-blue-600 { + --tw-bg-opacity: 1; + background-color: rgb(37 99 235 / var(--tw-bg-opacity)); +} + +.object-cover { + -o-object-fit: cover; + object-fit: cover; +} + +.object-none { + -o-object-fit: none; + object-fit: none; +} + +.object-center { + -o-object-position: center; + object-position: center; +} + +.object-left-bottom { + -o-object-position: left bottom; + object-position: left bottom; +} + +.object-left-top { + -o-object-position: left top; + object-position: left top; +} + +.object-top { + -o-object-position: top; + object-position: top; +} + +.p-1 { + padding: 0.25rem; +} + +.p-4 { + padding: 1rem; +} + +.p-2 { + padding: 0.5rem; +} + +.p-3 { + padding: 0.75rem; +} + +.p-5 { + padding: 1.25rem; +} + +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; +} + +.pl-2 { + padding-left: 0.5rem; +} + +.pl-10 { + padding-left: 2.5rem; +} + +.pt-2 { + padding-top: 0.5rem; +} + +.pt-3 { + padding-top: 0.75rem; +} + +.pr-5 { + padding-right: 1.25rem; +} + +.align-middle { + vertical-align: middle; +} + +.align-bottom { + vertical-align: bottom; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} + +.font-bold { + font-weight: 700; +} + +.text-gray-600 { + --tw-text-opacity: 1; + color: rgb(75 85 99 / var(--tw-text-opacity)); +} + +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.text-gray-400 { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.shadow { + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-sm { + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.shadow-xl { + --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.focus-within\:text-gray-400:focus-within { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.focus\:outline-none:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +@media (prefers-color-scheme: dark) { + .dark\:bg-gray-800 { + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); + } + + .dark\:bg-gray-900 { + --tw-bg-opacity: 1; + background-color: rgb(17 24 39 / var(--tw-bg-opacity)); + } + + .dark\:bg-gray-700 { + --tw-bg-opacity: 1; + background-color: rgb(55 65 81 / var(--tw-bg-opacity)); + } + + .dark\:text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); + } + + .dark\:focus\:bg-white:focus { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + } + + .dark\:focus\:text-gray-900:focus { + --tw-text-opacity: 1; + color: rgb(17 24 39 / var(--tw-text-opacity)); + } +} + +@media (min-width: 1024px) { + .lg\:mx-10 { + margin-left: 2.5rem; + margin-right: 2.5rem; + } + + .lg\:mx-5 { + margin-left: 1.25rem; + margin-right: 1.25rem; + } + + .lg\:mx-3 { + margin-left: 0.75rem; + margin-right: 0.75rem; + } + + .lg\:flex { + display: flex; + } + + .lg\:h-screen { + height: 100vh; + } + + .lg\:w-1\/4 { + width: 25%; + } + + .lg\:flex-1 { + flex: 1 1 0%; + } + + .lg\:overflow-scroll { + overflow: scroll; + } + + .lg\:overflow-y-scroll { + overflow-y: scroll; + } + + .lg\:px-24 { + padding-left: 6rem; + padding-right: 6rem; + } +} \ No newline at end of file diff --git a/routes/index.js b/routes/index.js new file mode 100644 index 0000000..ecca96a --- /dev/null +++ b/routes/index.js @@ -0,0 +1,9 @@ +var express = require('express'); +var router = express.Router(); + +/* GET home page. */ +router.get('/', function(req, res, next) { + res.render('index', { title: 'Express' }); +}); + +module.exports = router; diff --git a/routes/users.js b/routes/users.js new file mode 100644 index 0000000..623e430 --- /dev/null +++ b/routes/users.js @@ -0,0 +1,9 @@ +var express = require('express'); +var router = express.Router(); + +/* GET users listing. */ +router.get('/', function(req, res, next) { + res.send('respond with a resource'); +}); + +module.exports = router; diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..bd6213e --- /dev/null +++ b/src/style.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..89c75d1 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,7 @@ +module.exports = { + content: ["./src/**/*.{html,js}", "./*.{html,js}", "./views/**/*.{ejs,js,html}"], + theme: { + extend: {}, + }, + plugins: [], +} \ No newline at end of file diff --git a/views/error.ejs b/views/error.ejs new file mode 100644 index 0000000..7cf94ed --- /dev/null +++ b/views/error.ejs @@ -0,0 +1,3 @@ +

<%= message %>

+

<%= error.status %>

+
<%= error.stack %>
diff --git a/views/index.ejs b/views/index.ejs new file mode 100644 index 0000000..1ccc773 --- /dev/null +++ b/views/index.ejs @@ -0,0 +1,136 @@ + + + + + Social Robot + + + + + + + +
+ +
+ +
+
+
+ + + + +
+
+
+ John Doe + John Doe +
+
+
+ +
+
+ +
+
+
+
+ +
+
+
Home
+
+
+ +
+
+ paralax +
+
+
+ John Doe +
+
+ + +
+
+ +
+
+

John Doe

+

john.doe@uplink.si

+
+
+

Joined Dec 28, 2021

+
+
5 Posts
+
3 Following
+
7 Followers
+
+
+
+ <% for(var i=0; i < 8; i++) {%> + <%- include('partials/_toot') %> + <% } %> +
+
+ +
+ +
+ +
+
+ + + \ No newline at end of file diff --git a/views/partials/_toot.ejs b/views/partials/_toot.ejs new file mode 100644 index 0000000..284d3a8 --- /dev/null +++ b/views/partials/_toot.ejs @@ -0,0 +1,18 @@ +
+
+ John Doe +
+
+
John Doe
+ +

There are so many programs configurable in #Lua. I am making a list.

+ +

I revisited the tiling window manager topic. #awesomewm is configurable in Lua, but for now I think I will rewrite my #bspwm config in Lua and learn how to do more advanced customization with conditionals.

+ +

Found out that #conky's visualizations are done in Lua with the Cairo graphics library. That looks really cool and I hope to do some with that soon.

+ +

Set terminal text and bspwm to #gruvbox colors.

+ +

#RetroEdgeTechStack

+
+
\ No newline at end of file