Server initial

This commit is contained in:
Kalle (Sendou) 2021-10-23 16:28:07 +03:00
parent e123544358
commit 94a0897833
5 changed files with 1009 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
node_modules

967
package-lock.json generated Normal file
View File

@ -0,0 +1,967 @@
{
"name": "sendou.ink",
"version": "1.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "sendou.ink",
"version": "1.0.0",
"workspaces": [
"packages/server"
]
},
"node_modules/@tinyhttp/accepts": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@tinyhttp/accepts/-/accepts-2.0.4.tgz",
"integrity": "sha512-Qz+ReA+DaXCNKdzicVZhl4qUhGpLKQ8vYNMU+pm3PtSBwY32wXw+k0nh6+XBhrKnZ4/o8QeMCV5x7XTtJfW//Q==",
"dependencies": {
"es-mime-types": "^0.1.4",
"negotiator": "^0.6.2"
},
"engines": {
"node": ">=12.4.0"
},
"funding": {
"type": "individual",
"url": "https://github.com/tinyhttp/tinyhttp?sponsor=1"
}
},
"node_modules/@tinyhttp/app": {
"version": "2.0.11",
"resolved": "https://registry.npmjs.org/@tinyhttp/app/-/app-2.0.11.tgz",
"integrity": "sha512-Ueo5+hvjoyaw5darnRan5MaOxHfliOfvI6TnCUBWV/5iWyltYSrW25SpUg49TMvQTbUd7pTAphCE6EQQoYBtbg==",
"dependencies": {
"@tinyhttp/cookie": "2.0.3",
"@tinyhttp/proxy-addr": "2.0.2",
"@tinyhttp/req": "2.0.8",
"@tinyhttp/res": "2.0.9",
"@tinyhttp/router": "2.0.3",
"header-range-parser": "^1.1.1",
"regexparam": "^2.0.0"
},
"engines": {
"node": ">=12.x"
},
"funding": {
"type": "individual",
"url": "https://github.com/tinyhttp/tinyhttp?sponsor=1"
}
},
"node_modules/@tinyhttp/content-disposition": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@tinyhttp/content-disposition/-/content-disposition-2.0.4.tgz",
"integrity": "sha512-SGU8nVfDbiJa5eCA7BWUEMjSaf/b6nLQHEzuzmKhA3BIGHuBWXSIcr1dGeLopmohQoZkIQfk5psM5TOgVgrraA==",
"engines": {
"node": ">=12.4.0"
},
"funding": {
"type": "individual",
"url": "https://github.com/tinyhttp/tinyhttp?sponsor=1"
}
},
"node_modules/@tinyhttp/cookie": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/cookie/-/cookie-2.0.3.tgz",
"integrity": "sha512-ZHvDHyNc0VwKLgFqwCNbrMObJqJHKQNnMARdPlK2+VvKVB3h/ZT5kYAXYFxxWFJFNqXaXz0E7i2kX32bMeMGUw==",
"engines": {
"node": ">=12.4.0"
},
"funding": {
"type": "individual",
"url": "https://github.com/tinyhttp/tinyhttp?sponsor=1"
}
},
"node_modules/@tinyhttp/cookie-signature": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@tinyhttp/cookie-signature/-/cookie-signature-2.0.2.tgz",
"integrity": "sha512-lyIdDzLILp6T2fymJn9zKBgXwlZMIUiqMUIEd4x/ZGFNvnNs/zeYDBQFdAygBtv4Bgl5Zpf6tN+e6fkj6TlMYQ==",
"engines": {
"node": ">=12.4.0"
}
},
"node_modules/@tinyhttp/encode-url": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/encode-url/-/encode-url-2.0.3.tgz",
"integrity": "sha512-bAKjBLhYTZZgLphZ9B09Q8bQ39RejEiB1+3Rjjmkb/Q2cIKOWvRNTgkeQ3D6ITefxW9KMPE9eab51PPYhFbvbg==",
"engines": {
"node": ">=12.4.0"
}
},
"node_modules/@tinyhttp/etag": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@tinyhttp/etag/-/etag-2.0.2.tgz",
"integrity": "sha512-utxkv5skxWJESUAKZk7F11DcgBiE4vBXiPfnWZcGNZDa6T372V2ESUD2Y7fV85bsC1/4ZrnnmS7lg9Nd401oLw==",
"engines": {
"node": ">=12.4.0"
}
},
"node_modules/@tinyhttp/forwarded": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@tinyhttp/forwarded/-/forwarded-2.0.2.tgz",
"integrity": "sha512-q+l7xMyN7buYjUfWbepLM36lI7FZmv+sm0arqzFGrTVWfEbKLiHTv+5c7H3O8/aYcxuyR4cBUrmwT6jw4dZhFw==",
"engines": {
"node": ">=12.4.0"
}
},
"node_modules/@tinyhttp/logger": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@tinyhttp/logger/-/logger-1.3.0.tgz",
"integrity": "sha512-u8vbW8OEPur3ZlkJGNO+Nl/xw78cdIaDAcWMUEg7o3UY9L5xezMQcLBPX8ykJLEB+Yl+BDmTvt1s1LzkwM6mNQ==",
"dependencies": {
"colorette": "^1.2.2",
"dayjs": "^1.10.4",
"http-status-emojis": "^2.2.0"
},
"engines": {
"node": ">=12.4.0"
}
},
"node_modules/@tinyhttp/proxy-addr": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@tinyhttp/proxy-addr/-/proxy-addr-2.0.2.tgz",
"integrity": "sha512-wuXpzG9XsUQ2/YvCL5BSvp1JXc5HIuXlVJhMqdC0wv8iKF3hHv62H5XVd/wvzo/OWgiqt4hjxA4wITzND5Ed+g==",
"dependencies": {
"@tinyhttp/forwarded": "2.0.2",
"ipaddr.js": "^2.0.1"
},
"engines": {
"node": ">=12.4.0"
}
},
"node_modules/@tinyhttp/req": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/@tinyhttp/req/-/req-2.0.8.tgz",
"integrity": "sha512-Hndl83KEHJd2oDw2kdg1NmroYj1fjPBRpVXbgmbJ3+Yz5yInaugnbD1FAjL2sPX0ZMwDF+x3wlBrULRGQzccxw==",
"dependencies": {
"@tinyhttp/accepts": "2.0.4",
"@tinyhttp/type-is": "2.0.3",
"@tinyhttp/url": "2.0.3",
"es-fresh": "^0.0.10",
"header-range-parser": "^1.1.1"
},
"engines": {
"node": ">=12.4.0"
}
},
"node_modules/@tinyhttp/res": {
"version": "2.0.9",
"resolved": "https://registry.npmjs.org/@tinyhttp/res/-/res-2.0.9.tgz",
"integrity": "sha512-twHhwFiGah3i9erm9Ky7fIxVYTmE7qJCNp1F11XkYHx6ZrG6gNR/xDcsmde8cak+jJOrLBX62rjcSSAMUqPpZQ==",
"dependencies": {
"@tinyhttp/content-disposition": "2.0.4",
"@tinyhttp/cookie": "2.0.3",
"@tinyhttp/cookie-signature": "2.0.2",
"@tinyhttp/encode-url": "2.0.3",
"@tinyhttp/req": "2.0.8",
"@tinyhttp/send": "2.0.3",
"es-escape-html": "^0.1.1",
"es-mime-types": "^0.1.4",
"es-vary": "^0.1.1"
},
"engines": {
"node": ">=12.4.0"
}
},
"node_modules/@tinyhttp/router": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/router/-/router-2.0.3.tgz",
"integrity": "sha512-WwZqSOv4bJmzMQgP66No0ZUiTpiysQAn6ubmsf8iqO+SWyPeKD5kemAfGnHoPl1dRtvZa4Zi+0uxxDMc963I7A==",
"engines": {
"node": ">=12.4.0"
}
},
"node_modules/@tinyhttp/send": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/send/-/send-2.0.3.tgz",
"integrity": "sha512-oU4Q6NJzXJeOVCdYbgtOFlq5viEpKUFkZVpbF5AqFD64yzPp2vX9MuiSVvrIzL9Ls2qR+OzWsrwuXIkKzjW+xg==",
"dependencies": {
"@tinyhttp/etag": "2.0.2",
"es-content-type": "^0.1.0",
"es-mime-types": "^0.1.4"
},
"engines": {
"node": ">=12.4.0"
}
},
"node_modules/@tinyhttp/type-is": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/type-is/-/type-is-2.0.3.tgz",
"integrity": "sha512-vmOvbI7dSue4oV5JRbEpgJGgsfQE/Gd6eqEIhdeRO0jcVUzJaYx2/XvBGbBG9Mo8MGFjiEiq7qBzeOFctCmXBw==",
"dependencies": {
"es-content-type": "^0.1.0",
"es-mime-types": "^0.1.4"
},
"engines": {
"node": ">=12.4.0"
}
},
"node_modules/@tinyhttp/url": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/url/-/url-2.0.3.tgz",
"integrity": "sha512-0KRWSE0W4hjejHJ1ksmUIIp3Rvn/6nDa5sYQ7gjwsixYQ8J8vTSOtPI7FOkH9M/evsnCGrCYp5JNBnqTjkShTw==",
"engines": {
"node": ">=12.4.0"
}
},
"node_modules/colorette": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
"integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
},
"node_modules/dayjs": {
"version": "1.10.7",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz",
"integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig=="
},
"node_modules/es-content-type": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/es-content-type/-/es-content-type-0.1.0.tgz",
"integrity": "sha512-DqWU9pSzhNlO10q+NQ/KebImLkKbwbcy0pSv3hNQfEpKFHsrqDJz2vajpZdq7nkiG9DoJcTh22oHGymp7XJd9g==",
"engines": {
"node": ">=12.x"
}
},
"node_modules/es-escape-html": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/es-escape-html/-/es-escape-html-0.1.1.tgz",
"integrity": "sha512-yUx1o+8RsG7UlszmYPtks+dm6Lho2m8lgHMOsLJQsFI0R8XwUJwiMhM1M4E/S8QLeGyf6MkDV/pWgjQ0tdTSyQ==",
"engines": {
"node": ">=12.x"
}
},
"node_modules/es-fresh": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/es-fresh/-/es-fresh-0.0.10.tgz",
"integrity": "sha512-/e5etUqtxj7JktALldpsDNC84DOHavN9PqojnTTGeX1M2/Q4/SF8d55d7AsB3n66WYS43hdBbn0sAllto5kSIg==",
"engines": {
"node": ">=12.x"
}
},
"node_modules/es-mime-types": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/es-mime-types/-/es-mime-types-0.1.4.tgz",
"integrity": "sha512-rUrmfrUIHU/4ykYB+YH80LDiSpmn6sE/A9E8EsFZP4LCtf/PH+ju6d6goFJ8fsGf81pRtQn1cJSmp8JGA9YkfQ==",
"dependencies": {
"mime-db": "^1.50.0"
},
"engines": {
"node": ">=12.x"
}
},
"node_modules/es-vary": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/es-vary/-/es-vary-0.1.1.tgz",
"integrity": "sha512-4UOWrTu8lz5otSyWxcS0LbYz8WyYOEiWHGkBIu0VfhTsY+vtc7+fOSDHsxtEUBeu7mDnTwqsKg5NEXeq5Da1Hg==",
"engines": {
"node": ">=12.x"
}
},
"node_modules/esbuild": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.8.tgz",
"integrity": "sha512-A4af7G7YZLfG5OnARJRMtlpEsCkq/zHZQXewgPA864l9D6VjjbH1SuFYK/OSV6BtHwDGkdwyRrX0qQFLnMfUcw==",
"dev": true,
"hasInstallScript": true,
"bin": {
"esbuild": "bin/esbuild"
},
"optionalDependencies": {
"esbuild-android-arm64": "0.13.8",
"esbuild-darwin-64": "0.13.8",
"esbuild-darwin-arm64": "0.13.8",
"esbuild-freebsd-64": "0.13.8",
"esbuild-freebsd-arm64": "0.13.8",
"esbuild-linux-32": "0.13.8",
"esbuild-linux-64": "0.13.8",
"esbuild-linux-arm": "0.13.8",
"esbuild-linux-arm64": "0.13.8",
"esbuild-linux-mips64le": "0.13.8",
"esbuild-linux-ppc64le": "0.13.8",
"esbuild-netbsd-64": "0.13.8",
"esbuild-openbsd-64": "0.13.8",
"esbuild-sunos-64": "0.13.8",
"esbuild-windows-32": "0.13.8",
"esbuild-windows-64": "0.13.8",
"esbuild-windows-arm64": "0.13.8"
}
},
"node_modules/esbuild-android-arm64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.8.tgz",
"integrity": "sha512-AilbChndywpk7CdKkNSZ9klxl+9MboLctXd9LwLo3b0dawmOF/i/t2U5d8LM6SbT1Xw36F8yngSUPrd8yPs2RA==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"android"
]
},
"node_modules/esbuild-darwin-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.8.tgz",
"integrity": "sha512-b6sdiT84zV5LVaoF+UoMVGJzR/iE2vNUfUDfFQGrm4LBwM/PWXweKpuu6RD9mcyCq18cLxkP6w/LD/w9DtX3ng==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"darwin"
]
},
"node_modules/esbuild-darwin-arm64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.8.tgz",
"integrity": "sha512-R8YuPiiJayuJJRUBG4H0VwkEKo6AvhJs2m7Tl0JaIer3u1FHHXwGhMxjJDmK+kXwTFPriSysPvcobXC/UrrZCQ==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"darwin"
]
},
"node_modules/esbuild-freebsd-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.8.tgz",
"integrity": "sha512-zBn6urrn8FnKC+YSgDxdof9jhPCeU8kR/qaamlV4gI8R3KUaUK162WYM7UyFVAlj9N0MyD3AtB+hltzu4cysTw==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"freebsd"
]
},
"node_modules/esbuild-freebsd-arm64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.8.tgz",
"integrity": "sha512-pWW2slN7lGlkx0MOEBoUGwRX5UgSCLq3dy2c8RIOpiHtA87xAUpDBvZK10MykbT+aMfXc0NI2lu1X+6kI34xng==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"freebsd"
]
},
"node_modules/esbuild-linux-32": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.8.tgz",
"integrity": "sha512-T0I0ueeKVO/Is0CAeSEOG9s2jeNNb8jrrMwG9QBIm3UU18MRB60ERgkS2uV3fZ1vP2F8i3Z2e3Zju4lg9dhVmw==",
"cpu": [
"ia32"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/esbuild-linux-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.8.tgz",
"integrity": "sha512-Bm8SYmFtvfDCIu9sjKppFXzRXn2BVpuCinU1ChTuMtdKI/7aPpXIrkqBNOgPTOQO9AylJJc1Zw6EvtKORhn64w==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/esbuild-linux-arm": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.8.tgz",
"integrity": "sha512-4/HfcC40LJ4GPyboHA+db0jpFarTB628D1ifU+/5bunIgY+t6mHkJWyxWxAAE8wl/ZIuRYB9RJFdYpu1AXGPdg==",
"cpu": [
"arm"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/esbuild-linux-arm64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.8.tgz",
"integrity": "sha512-X4pWZ+SL+FJ09chWFgRNO3F+YtvAQRcWh0uxKqZSWKiWodAB20flsW/OWFYLXBKiVCTeoGMvENZS/GeVac7+tQ==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/esbuild-linux-mips64le": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.8.tgz",
"integrity": "sha512-o7e0D+sqHKT31v+mwFircJFjwSKVd2nbkHEn4l9xQ1hLR+Bv8rnt3HqlblY3+sBdlrOTGSwz0ReROlKUMJyldA==",
"cpu": [
"mips64el"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/esbuild-linux-ppc64le": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.8.tgz",
"integrity": "sha512-eZSQ0ERsWkukJp2px/UWJHVNuy0lMoz/HZcRWAbB6reoaBw7S9vMzYNUnflfL3XA6WDs+dZn3ekHE4Y2uWLGig==",
"cpu": [
"ppc64"
],
"dev": true,
"optional": true,
"os": [
"linux"
]
},
"node_modules/esbuild-netbsd-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.8.tgz",
"integrity": "sha512-gZX4kP7gVvOrvX0ZwgHmbuHczQUwqYppxqtoyC7VNd80t5nBHOFXVhWo2Ad/Lms0E8b+wwgI/WjZFTCpUHOg9Q==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"netbsd"
]
},
"node_modules/esbuild-openbsd-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.8.tgz",
"integrity": "sha512-afzza308X4WmcebexbTzAgfEWt9MUkdTvwIa8xOu4CM2qGbl2LanqEl8/LUs8jh6Gqw6WsicEK52GPrS9wvkcw==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"openbsd"
]
},
"node_modules/esbuild-sunos-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.8.tgz",
"integrity": "sha512-mWPZibmBbuMKD+LDN23LGcOZ2EawMYBONMXXHmbuxeT0XxCNwadbCVwUQ/2p5Dp5Kvf6mhrlIffcnWOiCBpiVw==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"sunos"
]
},
"node_modules/esbuild-windows-32": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.8.tgz",
"integrity": "sha512-QsZ1HnWIcnIEApETZWw8HlOhDSWqdZX2SylU7IzGxOYyVcX7QI06ety/aDcn437mwyO7Ph4RrbhB+2ntM8kX8A==",
"cpu": [
"ia32"
],
"dev": true,
"optional": true,
"os": [
"win32"
]
},
"node_modules/esbuild-windows-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.8.tgz",
"integrity": "sha512-76Fb57B9eE/JmJi1QmUW0tRLQZfGo0it+JeYoCDTSlbTn7LV44ecOHIMJSSgZADUtRMWT9z0Kz186bnaB3amSg==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"win32"
]
},
"node_modules/esbuild-windows-arm64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.8.tgz",
"integrity": "sha512-HW6Mtq5eTudllxY2YgT62MrVcn7oq2o8TAoAvDUhyiEmRmDY8tPwAhb1vxw5/cdkbukM3KdMYtksnUhF/ekWeg==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"win32"
]
},
"node_modules/header-range-parser": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/header-range-parser/-/header-range-parser-1.1.1.tgz",
"integrity": "sha512-aVuAHdlgxPCMkOtKTdUoH72eAHEAqmZqA+oQxvDv1DkYS50KgCt218AYd89/+Pd7+TFQimzn/9LNVfUPEBbRDQ==",
"engines": {
"node": ">=12.22.0"
}
},
"node_modules/http-status-emojis": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/http-status-emojis/-/http-status-emojis-2.2.0.tgz",
"integrity": "sha512-ompKtgwpx8ff0hsbpIB7oE4ax1LXoHmftsHHStMELX56ivG3GhofTX8ZHWlUaFKfGjcGjw6G3rPk7dJRXMmbbg=="
},
"node_modules/ipaddr.js": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
"integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==",
"engines": {
"node": ">= 10"
}
},
"node_modules/mime-db": {
"version": "1.50.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz",
"integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/regexparam": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.0.tgz",
"integrity": "sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow==",
"engines": {
"node": ">=8"
}
},
"node_modules/server.sendou.ink": {
"resolved": "packages/server",
"link": true
},
"node_modules/tsm": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/tsm/-/tsm-2.1.2.tgz",
"integrity": "sha512-1jF8LNTRcPsw15ajZK2ra3RA2PSCdVGvJzF/Q1TCsu1tH2dY59HgNWxhttN2s1mfJUFoattjf9QZ410u5bgtJQ==",
"dev": true,
"dependencies": {
"esbuild": "^0.13.4"
},
"bin": {
"tsm": "bin.js"
},
"engines": {
"node": ">=12"
}
},
"node_modules/typescript": {
"version": "4.4.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz",
"integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=4.2.0"
}
},
"packages/server": {
"name": "server.sendou.ink",
"version": "1.0.0",
"dependencies": {
"@tinyhttp/app": "^2.0.11",
"@tinyhttp/logger": "^1.3.0"
},
"devDependencies": {
"tsm": "^2.1.2",
"typescript": "^4.4.4"
}
}
},
"dependencies": {
"@tinyhttp/accepts": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@tinyhttp/accepts/-/accepts-2.0.4.tgz",
"integrity": "sha512-Qz+ReA+DaXCNKdzicVZhl4qUhGpLKQ8vYNMU+pm3PtSBwY32wXw+k0nh6+XBhrKnZ4/o8QeMCV5x7XTtJfW//Q==",
"requires": {
"es-mime-types": "^0.1.4",
"negotiator": "^0.6.2"
}
},
"@tinyhttp/app": {
"version": "2.0.11",
"resolved": "https://registry.npmjs.org/@tinyhttp/app/-/app-2.0.11.tgz",
"integrity": "sha512-Ueo5+hvjoyaw5darnRan5MaOxHfliOfvI6TnCUBWV/5iWyltYSrW25SpUg49TMvQTbUd7pTAphCE6EQQoYBtbg==",
"requires": {
"@tinyhttp/cookie": "2.0.3",
"@tinyhttp/proxy-addr": "2.0.2",
"@tinyhttp/req": "2.0.8",
"@tinyhttp/res": "2.0.9",
"@tinyhttp/router": "2.0.3",
"header-range-parser": "^1.1.1",
"regexparam": "^2.0.0"
}
},
"@tinyhttp/content-disposition": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@tinyhttp/content-disposition/-/content-disposition-2.0.4.tgz",
"integrity": "sha512-SGU8nVfDbiJa5eCA7BWUEMjSaf/b6nLQHEzuzmKhA3BIGHuBWXSIcr1dGeLopmohQoZkIQfk5psM5TOgVgrraA=="
},
"@tinyhttp/cookie": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/cookie/-/cookie-2.0.3.tgz",
"integrity": "sha512-ZHvDHyNc0VwKLgFqwCNbrMObJqJHKQNnMARdPlK2+VvKVB3h/ZT5kYAXYFxxWFJFNqXaXz0E7i2kX32bMeMGUw=="
},
"@tinyhttp/cookie-signature": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@tinyhttp/cookie-signature/-/cookie-signature-2.0.2.tgz",
"integrity": "sha512-lyIdDzLILp6T2fymJn9zKBgXwlZMIUiqMUIEd4x/ZGFNvnNs/zeYDBQFdAygBtv4Bgl5Zpf6tN+e6fkj6TlMYQ=="
},
"@tinyhttp/encode-url": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/encode-url/-/encode-url-2.0.3.tgz",
"integrity": "sha512-bAKjBLhYTZZgLphZ9B09Q8bQ39RejEiB1+3Rjjmkb/Q2cIKOWvRNTgkeQ3D6ITefxW9KMPE9eab51PPYhFbvbg=="
},
"@tinyhttp/etag": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@tinyhttp/etag/-/etag-2.0.2.tgz",
"integrity": "sha512-utxkv5skxWJESUAKZk7F11DcgBiE4vBXiPfnWZcGNZDa6T372V2ESUD2Y7fV85bsC1/4ZrnnmS7lg9Nd401oLw=="
},
"@tinyhttp/forwarded": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@tinyhttp/forwarded/-/forwarded-2.0.2.tgz",
"integrity": "sha512-q+l7xMyN7buYjUfWbepLM36lI7FZmv+sm0arqzFGrTVWfEbKLiHTv+5c7H3O8/aYcxuyR4cBUrmwT6jw4dZhFw=="
},
"@tinyhttp/logger": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@tinyhttp/logger/-/logger-1.3.0.tgz",
"integrity": "sha512-u8vbW8OEPur3ZlkJGNO+Nl/xw78cdIaDAcWMUEg7o3UY9L5xezMQcLBPX8ykJLEB+Yl+BDmTvt1s1LzkwM6mNQ==",
"requires": {
"colorette": "^1.2.2",
"dayjs": "^1.10.4",
"http-status-emojis": "^2.2.0"
}
},
"@tinyhttp/proxy-addr": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@tinyhttp/proxy-addr/-/proxy-addr-2.0.2.tgz",
"integrity": "sha512-wuXpzG9XsUQ2/YvCL5BSvp1JXc5HIuXlVJhMqdC0wv8iKF3hHv62H5XVd/wvzo/OWgiqt4hjxA4wITzND5Ed+g==",
"requires": {
"@tinyhttp/forwarded": "2.0.2",
"ipaddr.js": "^2.0.1"
}
},
"@tinyhttp/req": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/@tinyhttp/req/-/req-2.0.8.tgz",
"integrity": "sha512-Hndl83KEHJd2oDw2kdg1NmroYj1fjPBRpVXbgmbJ3+Yz5yInaugnbD1FAjL2sPX0ZMwDF+x3wlBrULRGQzccxw==",
"requires": {
"@tinyhttp/accepts": "2.0.4",
"@tinyhttp/type-is": "2.0.3",
"@tinyhttp/url": "2.0.3",
"es-fresh": "^0.0.10",
"header-range-parser": "^1.1.1"
}
},
"@tinyhttp/res": {
"version": "2.0.9",
"resolved": "https://registry.npmjs.org/@tinyhttp/res/-/res-2.0.9.tgz",
"integrity": "sha512-twHhwFiGah3i9erm9Ky7fIxVYTmE7qJCNp1F11XkYHx6ZrG6gNR/xDcsmde8cak+jJOrLBX62rjcSSAMUqPpZQ==",
"requires": {
"@tinyhttp/content-disposition": "2.0.4",
"@tinyhttp/cookie": "2.0.3",
"@tinyhttp/cookie-signature": "2.0.2",
"@tinyhttp/encode-url": "2.0.3",
"@tinyhttp/req": "2.0.8",
"@tinyhttp/send": "2.0.3",
"es-escape-html": "^0.1.1",
"es-mime-types": "^0.1.4",
"es-vary": "^0.1.1"
}
},
"@tinyhttp/router": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/router/-/router-2.0.3.tgz",
"integrity": "sha512-WwZqSOv4bJmzMQgP66No0ZUiTpiysQAn6ubmsf8iqO+SWyPeKD5kemAfGnHoPl1dRtvZa4Zi+0uxxDMc963I7A=="
},
"@tinyhttp/send": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/send/-/send-2.0.3.tgz",
"integrity": "sha512-oU4Q6NJzXJeOVCdYbgtOFlq5viEpKUFkZVpbF5AqFD64yzPp2vX9MuiSVvrIzL9Ls2qR+OzWsrwuXIkKzjW+xg==",
"requires": {
"@tinyhttp/etag": "2.0.2",
"es-content-type": "^0.1.0",
"es-mime-types": "^0.1.4"
}
},
"@tinyhttp/type-is": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/type-is/-/type-is-2.0.3.tgz",
"integrity": "sha512-vmOvbI7dSue4oV5JRbEpgJGgsfQE/Gd6eqEIhdeRO0jcVUzJaYx2/XvBGbBG9Mo8MGFjiEiq7qBzeOFctCmXBw==",
"requires": {
"es-content-type": "^0.1.0",
"es-mime-types": "^0.1.4"
}
},
"@tinyhttp/url": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@tinyhttp/url/-/url-2.0.3.tgz",
"integrity": "sha512-0KRWSE0W4hjejHJ1ksmUIIp3Rvn/6nDa5sYQ7gjwsixYQ8J8vTSOtPI7FOkH9M/evsnCGrCYp5JNBnqTjkShTw=="
},
"colorette": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
"integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g=="
},
"dayjs": {
"version": "1.10.7",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.7.tgz",
"integrity": "sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig=="
},
"es-content-type": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/es-content-type/-/es-content-type-0.1.0.tgz",
"integrity": "sha512-DqWU9pSzhNlO10q+NQ/KebImLkKbwbcy0pSv3hNQfEpKFHsrqDJz2vajpZdq7nkiG9DoJcTh22oHGymp7XJd9g=="
},
"es-escape-html": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/es-escape-html/-/es-escape-html-0.1.1.tgz",
"integrity": "sha512-yUx1o+8RsG7UlszmYPtks+dm6Lho2m8lgHMOsLJQsFI0R8XwUJwiMhM1M4E/S8QLeGyf6MkDV/pWgjQ0tdTSyQ=="
},
"es-fresh": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/es-fresh/-/es-fresh-0.0.10.tgz",
"integrity": "sha512-/e5etUqtxj7JktALldpsDNC84DOHavN9PqojnTTGeX1M2/Q4/SF8d55d7AsB3n66WYS43hdBbn0sAllto5kSIg=="
},
"es-mime-types": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/es-mime-types/-/es-mime-types-0.1.4.tgz",
"integrity": "sha512-rUrmfrUIHU/4ykYB+YH80LDiSpmn6sE/A9E8EsFZP4LCtf/PH+ju6d6goFJ8fsGf81pRtQn1cJSmp8JGA9YkfQ==",
"requires": {
"mime-db": "^1.50.0"
}
},
"es-vary": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/es-vary/-/es-vary-0.1.1.tgz",
"integrity": "sha512-4UOWrTu8lz5otSyWxcS0LbYz8WyYOEiWHGkBIu0VfhTsY+vtc7+fOSDHsxtEUBeu7mDnTwqsKg5NEXeq5Da1Hg=="
},
"esbuild": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.8.tgz",
"integrity": "sha512-A4af7G7YZLfG5OnARJRMtlpEsCkq/zHZQXewgPA864l9D6VjjbH1SuFYK/OSV6BtHwDGkdwyRrX0qQFLnMfUcw==",
"dev": true,
"requires": {
"esbuild-android-arm64": "0.13.8",
"esbuild-darwin-64": "0.13.8",
"esbuild-darwin-arm64": "0.13.8",
"esbuild-freebsd-64": "0.13.8",
"esbuild-freebsd-arm64": "0.13.8",
"esbuild-linux-32": "0.13.8",
"esbuild-linux-64": "0.13.8",
"esbuild-linux-arm": "0.13.8",
"esbuild-linux-arm64": "0.13.8",
"esbuild-linux-mips64le": "0.13.8",
"esbuild-linux-ppc64le": "0.13.8",
"esbuild-netbsd-64": "0.13.8",
"esbuild-openbsd-64": "0.13.8",
"esbuild-sunos-64": "0.13.8",
"esbuild-windows-32": "0.13.8",
"esbuild-windows-64": "0.13.8",
"esbuild-windows-arm64": "0.13.8"
}
},
"esbuild-android-arm64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.8.tgz",
"integrity": "sha512-AilbChndywpk7CdKkNSZ9klxl+9MboLctXd9LwLo3b0dawmOF/i/t2U5d8LM6SbT1Xw36F8yngSUPrd8yPs2RA==",
"dev": true,
"optional": true
},
"esbuild-darwin-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.8.tgz",
"integrity": "sha512-b6sdiT84zV5LVaoF+UoMVGJzR/iE2vNUfUDfFQGrm4LBwM/PWXweKpuu6RD9mcyCq18cLxkP6w/LD/w9DtX3ng==",
"dev": true,
"optional": true
},
"esbuild-darwin-arm64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.8.tgz",
"integrity": "sha512-R8YuPiiJayuJJRUBG4H0VwkEKo6AvhJs2m7Tl0JaIer3u1FHHXwGhMxjJDmK+kXwTFPriSysPvcobXC/UrrZCQ==",
"dev": true,
"optional": true
},
"esbuild-freebsd-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.8.tgz",
"integrity": "sha512-zBn6urrn8FnKC+YSgDxdof9jhPCeU8kR/qaamlV4gI8R3KUaUK162WYM7UyFVAlj9N0MyD3AtB+hltzu4cysTw==",
"dev": true,
"optional": true
},
"esbuild-freebsd-arm64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.8.tgz",
"integrity": "sha512-pWW2slN7lGlkx0MOEBoUGwRX5UgSCLq3dy2c8RIOpiHtA87xAUpDBvZK10MykbT+aMfXc0NI2lu1X+6kI34xng==",
"dev": true,
"optional": true
},
"esbuild-linux-32": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.8.tgz",
"integrity": "sha512-T0I0ueeKVO/Is0CAeSEOG9s2jeNNb8jrrMwG9QBIm3UU18MRB60ERgkS2uV3fZ1vP2F8i3Z2e3Zju4lg9dhVmw==",
"dev": true,
"optional": true
},
"esbuild-linux-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.8.tgz",
"integrity": "sha512-Bm8SYmFtvfDCIu9sjKppFXzRXn2BVpuCinU1ChTuMtdKI/7aPpXIrkqBNOgPTOQO9AylJJc1Zw6EvtKORhn64w==",
"dev": true,
"optional": true
},
"esbuild-linux-arm": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.8.tgz",
"integrity": "sha512-4/HfcC40LJ4GPyboHA+db0jpFarTB628D1ifU+/5bunIgY+t6mHkJWyxWxAAE8wl/ZIuRYB9RJFdYpu1AXGPdg==",
"dev": true,
"optional": true
},
"esbuild-linux-arm64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.8.tgz",
"integrity": "sha512-X4pWZ+SL+FJ09chWFgRNO3F+YtvAQRcWh0uxKqZSWKiWodAB20flsW/OWFYLXBKiVCTeoGMvENZS/GeVac7+tQ==",
"dev": true,
"optional": true
},
"esbuild-linux-mips64le": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.8.tgz",
"integrity": "sha512-o7e0D+sqHKT31v+mwFircJFjwSKVd2nbkHEn4l9xQ1hLR+Bv8rnt3HqlblY3+sBdlrOTGSwz0ReROlKUMJyldA==",
"dev": true,
"optional": true
},
"esbuild-linux-ppc64le": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.8.tgz",
"integrity": "sha512-eZSQ0ERsWkukJp2px/UWJHVNuy0lMoz/HZcRWAbB6reoaBw7S9vMzYNUnflfL3XA6WDs+dZn3ekHE4Y2uWLGig==",
"dev": true,
"optional": true
},
"esbuild-netbsd-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.8.tgz",
"integrity": "sha512-gZX4kP7gVvOrvX0ZwgHmbuHczQUwqYppxqtoyC7VNd80t5nBHOFXVhWo2Ad/Lms0E8b+wwgI/WjZFTCpUHOg9Q==",
"dev": true,
"optional": true
},
"esbuild-openbsd-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.8.tgz",
"integrity": "sha512-afzza308X4WmcebexbTzAgfEWt9MUkdTvwIa8xOu4CM2qGbl2LanqEl8/LUs8jh6Gqw6WsicEK52GPrS9wvkcw==",
"dev": true,
"optional": true
},
"esbuild-sunos-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.8.tgz",
"integrity": "sha512-mWPZibmBbuMKD+LDN23LGcOZ2EawMYBONMXXHmbuxeT0XxCNwadbCVwUQ/2p5Dp5Kvf6mhrlIffcnWOiCBpiVw==",
"dev": true,
"optional": true
},
"esbuild-windows-32": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.8.tgz",
"integrity": "sha512-QsZ1HnWIcnIEApETZWw8HlOhDSWqdZX2SylU7IzGxOYyVcX7QI06ety/aDcn437mwyO7Ph4RrbhB+2ntM8kX8A==",
"dev": true,
"optional": true
},
"esbuild-windows-64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.8.tgz",
"integrity": "sha512-76Fb57B9eE/JmJi1QmUW0tRLQZfGo0it+JeYoCDTSlbTn7LV44ecOHIMJSSgZADUtRMWT9z0Kz186bnaB3amSg==",
"dev": true,
"optional": true
},
"esbuild-windows-arm64": {
"version": "0.13.8",
"resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.8.tgz",
"integrity": "sha512-HW6Mtq5eTudllxY2YgT62MrVcn7oq2o8TAoAvDUhyiEmRmDY8tPwAhb1vxw5/cdkbukM3KdMYtksnUhF/ekWeg==",
"dev": true,
"optional": true
},
"header-range-parser": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/header-range-parser/-/header-range-parser-1.1.1.tgz",
"integrity": "sha512-aVuAHdlgxPCMkOtKTdUoH72eAHEAqmZqA+oQxvDv1DkYS50KgCt218AYd89/+Pd7+TFQimzn/9LNVfUPEBbRDQ=="
},
"http-status-emojis": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/http-status-emojis/-/http-status-emojis-2.2.0.tgz",
"integrity": "sha512-ompKtgwpx8ff0hsbpIB7oE4ax1LXoHmftsHHStMELX56ivG3GhofTX8ZHWlUaFKfGjcGjw6G3rPk7dJRXMmbbg=="
},
"ipaddr.js": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
"integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng=="
},
"mime-db": {
"version": "1.50.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz",
"integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A=="
},
"negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
},
"regexparam": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/regexparam/-/regexparam-2.0.0.tgz",
"integrity": "sha512-gJKwd2MVPWHAIFLsaYDZfyKzHNS4o7E/v8YmNf44vmeV2e4YfVoDToTOKTvE7ab68cRJ++kLuEXJBaEeJVt5ow=="
},
"server.sendou.ink": {
"version": "file:packages/server",
"requires": {
"@tinyhttp/app": "^2.0.11",
"@tinyhttp/logger": "^1.3.0",
"tsm": "*",
"typescript": "^4.4.4"
}
},
"tsm": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/tsm/-/tsm-2.1.2.tgz",
"integrity": "sha512-1jF8LNTRcPsw15ajZK2ra3RA2PSCdVGvJzF/Q1TCsu1tH2dY59HgNWxhttN2s1mfJUFoattjf9QZ410u5bgtJQ==",
"dev": true,
"requires": {
"esbuild": "^0.13.4"
}
},
"typescript": {
"version": "4.4.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz",
"integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==",
"dev": true
}
}
}

7
package.json Normal file
View File

@ -0,0 +1,7 @@
{
"name": "sendou.ink",
"version": "1.0.0",
"workspaces": [
"packages/server"
]
}

View File

@ -0,0 +1,16 @@
{
"name": "server.sendou.ink",
"version": "1.0.0",
"scripts": {
"dev": "tsm src/index.ts"
},
"dependencies": {
"@tinyhttp/app": "^2.0.11",
"@tinyhttp/logger": "^1.3.0"
},
"devDependencies": {
"tsm": "^2.1.2",
"typescript": "^4.4.4"
},
"type": "module"
}

View File

@ -0,0 +1,18 @@
import { App } from "@tinyhttp/app";
import { logger } from "@tinyhttp/logger";
const app = new App();
app
.use(logger())
.get("/", (_, res) => void res.send("<h1>Hello World</h1>"))
.get("/page/:page/", (req, res) => {
res.status(200).send(`
<h1>Some cool page</h1>
<h2>URL</h2>
${req.url}
<h2>Params</h2>
${JSON.stringify(req.params, null, 2)}
`);
})
.listen(3000);