mirror of
https://github.com/ViaVersion/VIAaaS.git
synced 2024-09-28 04:37:40 +02:00
update deps, bye icanhazepoch
This commit is contained in:
parent
64bc013ed3
commit
4f87550ee8
@ -1,3 +1,5 @@
|
|||||||
|
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||||
|
import com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCacheFileTransformer
|
||||||
import com.google.javascript.jscomp.CompilerOptions.LanguageMode
|
import com.google.javascript.jscomp.CompilerOptions.LanguageMode
|
||||||
import com.googlecode.htmlcompressor.compressor.HtmlCompressor
|
import com.googlecode.htmlcompressor.compressor.HtmlCompressor
|
||||||
import org.gradlewebtools.minify.minifier.js.JsMinifier
|
import org.gradlewebtools.minify.minifier.js.JsMinifier
|
||||||
@ -13,7 +15,7 @@ buildscript {
|
|||||||
plugins {
|
plugins {
|
||||||
`java-library`
|
`java-library`
|
||||||
application
|
application
|
||||||
kotlin("jvm") version "1.7.10"
|
kotlin("jvm") version "1.7.20"
|
||||||
id("maven-publish")
|
id("maven-publish")
|
||||||
id("com.github.ben-manes.versions") version "0.42.0"
|
id("com.github.ben-manes.versions") version "0.42.0"
|
||||||
id("com.github.johnrengelman.shadow") version "7.1.2"
|
id("com.github.johnrengelman.shadow") version "7.1.2"
|
||||||
@ -91,7 +93,7 @@ dependencies {
|
|||||||
implementation("org.jline:jline-terminal-jansi:3.21.0")
|
implementation("org.jline:jline-terminal-jansi:3.21.0")
|
||||||
implementation("org.slf4j:slf4j-api:$slf4jVer")
|
implementation("org.slf4j:slf4j-api:$slf4jVer")
|
||||||
|
|
||||||
val ktorVersion = "2.1.0"
|
val ktorVersion = "2.1.2"
|
||||||
implementation("io.ktor:ktor-network-tls-certificates-jvm:$ktorVersion")
|
implementation("io.ktor:ktor-network-tls-certificates-jvm:$ktorVersion")
|
||||||
implementation("io.ktor:ktor-server-websockets:$ktorVersion")
|
implementation("io.ktor:ktor-server-websockets:$ktorVersion")
|
||||||
implementation("io.ktor:ktor-server-netty-jvm:$ktorVersion")
|
implementation("io.ktor:ktor-server-netty-jvm:$ktorVersion")
|
||||||
@ -117,9 +119,9 @@ run.standardInput = System.`in`
|
|||||||
|
|
||||||
project.configurations.implementation.get().isCanBeResolved = true
|
project.configurations.implementation.get().isCanBeResolved = true
|
||||||
tasks {
|
tasks {
|
||||||
named<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar>("shadowJar") {
|
named<ShadowJar>("shadowJar") {
|
||||||
configurations = listOf(project.configurations.implementation.get())
|
configurations = listOf(project.configurations.implementation.get())
|
||||||
transform(com.github.jengelman.gradle.plugins.shadow.transformers.Log4j2PluginsCacheFileTransformer::class.java)
|
transform(Log4j2PluginsCacheFileTransformer::class.java)
|
||||||
}
|
}
|
||||||
build {
|
build {
|
||||||
dependsOn(shadowJar)
|
dependsOn(shadowJar)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.viaversion.aas.web
|
package com.viaversion.aas.web
|
||||||
|
|
||||||
import io.ktor.http.*
|
import io.ktor.http.*
|
||||||
|
import io.ktor.http.content.*
|
||||||
import io.ktor.serialization.gson.*
|
import io.ktor.serialization.gson.*
|
||||||
import io.ktor.server.http.content.*
|
import io.ktor.server.http.content.*
|
||||||
import io.ktor.server.application.*
|
import io.ktor.server.application.*
|
||||||
@ -8,7 +9,7 @@ import io.ktor.server.plugins.*
|
|||||||
import io.ktor.server.plugins.cachingheaders.*
|
import io.ktor.server.plugins.cachingheaders.*
|
||||||
import io.ktor.server.plugins.callloging.*
|
import io.ktor.server.plugins.callloging.*
|
||||||
import io.ktor.server.plugins.compression.*
|
import io.ktor.server.plugins.compression.*
|
||||||
import io.ktor.server.plugins.conditionalheaders.*
|
import io.ktor.server.plugins.contentnegotiation.*
|
||||||
import io.ktor.server.plugins.defaultheaders.*
|
import io.ktor.server.plugins.defaultheaders.*
|
||||||
import io.ktor.server.plugins.forwardedheaders.*
|
import io.ktor.server.plugins.forwardedheaders.*
|
||||||
import io.ktor.server.plugins.partialcontent.*
|
import io.ktor.server.plugins.partialcontent.*
|
||||||
@ -27,12 +28,6 @@ import java.time.Duration
|
|||||||
class ViaWebApp(val viaWebServer: WebServer) {
|
class ViaWebApp(val viaWebServer: WebServer) {
|
||||||
fun Application.main() {
|
fun Application.main() {
|
||||||
install(DefaultHeaders)
|
install(DefaultHeaders)
|
||||||
install(ConditionalHeaders)
|
|
||||||
install(CachingHeaders) {
|
|
||||||
options { _, _ ->
|
|
||||||
io.ktor.http.content.CachingOptions(CacheControl.MaxAge(600, visibility = CacheControl.Visibility.Public))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
install(CallLogging) {
|
install(CallLogging) {
|
||||||
level = Level.DEBUG
|
level = Level.DEBUG
|
||||||
this.format {
|
this.format {
|
||||||
@ -48,19 +43,27 @@ class ViaWebApp(val viaWebServer: WebServer) {
|
|||||||
}
|
}
|
||||||
install(XForwardedHeaders)
|
install(XForwardedHeaders)
|
||||||
install(ForwardedHeaders)
|
install(ForwardedHeaders)
|
||||||
// i think we aren't vulnerable to breach, dynamic things are websockets
|
install(ContentNegotiation) {
|
||||||
// https://ktor.io/docs/compression.html#security
|
gson()
|
||||||
install(Compression)
|
}
|
||||||
install(PartialContent)
|
|
||||||
|
|
||||||
routing {
|
routing {
|
||||||
routeStatic()
|
routeStatic()
|
||||||
routeWs()
|
routeWs()
|
||||||
|
routeApi()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Route.routeStatic() {
|
private fun Route.routeStatic() {
|
||||||
static {
|
static("/") {
|
||||||
|
// https://ktor.io/docs/compression.html#security
|
||||||
|
install(Compression)
|
||||||
|
install(CachingHeaders) {
|
||||||
|
options { _, _ ->
|
||||||
|
CachingOptions(CacheControl.MaxAge(600, visibility = CacheControl.Visibility.Public))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//install(ConditionalHeaders) https://youtrack.jetbrains.com/issue/KTOR-4943/
|
||||||
|
install(PartialContent)
|
||||||
get("{path...}") {
|
get("{path...}") {
|
||||||
val relativePath = Path.of(call.parameters.getAll("path")?.joinToString("/") ?: "")
|
val relativePath = Path.of(call.parameters.getAll("path")?.joinToString("/") ?: "")
|
||||||
val index = Path.of("index.html")
|
val index = Path.of("index.html")
|
||||||
@ -101,4 +104,10 @@ class ViaWebApp(val viaWebServer: WebServer) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun Route.routeApi() {
|
||||||
|
get("/api/getEpoch") {
|
||||||
|
call.respond(System.currentTimeMillis() / 1000)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -309,10 +309,10 @@ async function getIpAddress(cors) {
|
|||||||
.then(it => it.trim());
|
.then(it => it.trim());
|
||||||
}
|
}
|
||||||
function getNetworkTimestamp() {
|
function getNetworkTimestamp() {
|
||||||
return fetch("https://icanhazepoch.com")
|
return fetch("/api/getEpoch", { "headers": { "accept": "application/json" } })
|
||||||
.then(checkFetchSuccess("code"))
|
.then(checkFetchSuccess("code"))
|
||||||
.then(r => r.text())
|
.then(r => r.json())
|
||||||
.then(it => parseInt(it.trim()));
|
.then(it => parseInt(it));
|
||||||
}
|
}
|
||||||
let notificationCallbacks = new Map();
|
let notificationCallbacks = new Map();
|
||||||
$(() => {
|
$(() => {
|
||||||
|
@ -332,11 +332,11 @@ async function getIpAddress(cors: boolean): Promise<string> {
|
|||||||
.then(it => it.trim());
|
.then(it => it.trim());
|
||||||
}
|
}
|
||||||
|
|
||||||
function getNetworkTimestamp() {
|
function getNetworkTimestamp(): Promise<number> {
|
||||||
return fetch("https://icanhazepoch.com")
|
return fetch("/api/getEpoch", {"headers": {"accept": "application/json"}})
|
||||||
.then(checkFetchSuccess("code"))
|
.then(checkFetchSuccess("code"))
|
||||||
.then(r => r.text())
|
.then(r => r.json())
|
||||||
.then(it => parseInt(it.trim()))
|
.then(it => parseInt(it))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Notification
|
// Notification
|
||||||
@ -686,7 +686,7 @@ function removeToken(token: string) {
|
|||||||
|
|
||||||
function getTokens(): Array<string> {
|
function getTokens(): Array<string> {
|
||||||
let serialized = localStorage.getItem("viaaas_tokens");
|
let serialized = localStorage.getItem("viaaas_tokens");
|
||||||
let parsed = serialized? JSON.parse(serialized) : {};
|
let parsed = serialized ? JSON.parse(serialized) : {};
|
||||||
return parsed[wsUrl] || [];
|
return parsed[wsUrl] || [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user