diff --git a/.gitignore b/.gitignore
index d5b6ff3..122ce2f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
/.idea
/target
-/src/main/resources/public/disbrowser.*
\ No newline at end of file
+/src/jvmMain/resources/public/disbrowser.*
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..0c36512
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,57 @@
+plugins {
+ id 'kotlin-multiplatform' version '1.3.11'
+}
+repositories {
+ mavenCentral()
+}
+kotlin {
+ targets {
+ fromPreset(presets.jvm, 'jvm')
+ fromPreset(presets.js, 'js')
+ }
+ sourceSets {
+ commonMain {
+ dependencies {
+ implementation 'org.jetbrains.kotlin:kotlin-stdlib-common'
+ }
+ }
+ commonTest {
+ dependencies {
+ implementation 'org.jetbrains.kotlin:kotlin-test-common'
+ implementation 'org.jetbrains.kotlin:kotlin-test-annotations-common'
+ }
+ }
+ jvmMain {
+ dependencies {
+ implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
+ implementation 'com.fasterxml.jackson.core:jackson-core:2.9.8'
+ implementation 'com.fasterxml.jackson.core:jackson-databind:2.9.8'
+ implementation 'com.fasterxml.jackson.core:jackson-annotations:2.9.8'
+ implementation 'com.fasterxml.jackson.module:jackson-module-kotlin:2.9.8'
+ implementation 'org.glassfish.jersey.containers:jersey-container-grizzly2-http:2.27'
+ implementation 'org.glassfish.jersey.inject:jersey-hk2:2.27'
+
+ }
+ languageSettings {
+ enableLanguageFeature('InlineClasses')
+ useExperimentalAnnotation('kotlin.ExperimentalUnsignedTypes')
+ }
+ }
+ jvmTest {
+ dependencies {
+ implementation 'org.jetbrains.kotlin:kotlin-test'
+ implementation 'org.jetbrains.kotlin:kotlin-test-junit'
+ }
+ }
+ jsMain {
+ dependencies {
+ implementation 'org.jetbrains.kotlin:kotlin-stdlib-js'
+ }
+ }
+ jsTest {
+ dependencies {
+ implementation 'org.jetbrains.kotlin:kotlin-test-js'
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..29e08e8
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1 @@
+kotlin.code.style=official
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 178034c..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,159 +0,0 @@
-
-
- 4.0.0
-
- com.smallhacker.disbrowser
- disbrowser
- war
- 1.0-SNAPSHOT
- disbrowser
-
-
-
-
- org.glassfish.jersey
- jersey-bom
- ${jersey.version}
- pom
- import
-
-
-
-
-
-
- com.fasterxml.jackson.core
- jackson-core
- ${jackson.version}
-
-
- com.fasterxml.jackson.core
- jackson-databind
- ${jackson.version}
-
-
- com.fasterxml.jackson.core
- jackson-annotations
- ${jackson.version}
-
-
- com.fasterxml.jackson.module
- jackson-module-kotlin
- ${jackson.version}
-
-
- org.glassfish.jersey.containers
- jersey-container-grizzly2-http
-
-
- org.glassfish.jersey.inject
- jersey-hk2
-
-
-
-
- junit
- junit
- 4.9
- test
-
-
- org.jetbrains.kotlin
- kotlin-stdlib-jdk8
- ${kotlin.version}
-
-
- org.jetbrains.kotlin
- kotlin-test
- ${kotlin.version}
- test
-
-
-
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
- 1.2.1
-
-
-
- java
-
-
-
-
- com.smallhacker.disbrowser.Main
-
-
-
- org.jetbrains.kotlin
- kotlin-maven-plugin
- ${kotlin.version}
-
-
- compile
- compile
-
- compile
-
-
-
- test-compile
- test-compile
-
- test-compile
-
-
-
-
- 1.8
-
- -XXLanguage:+InlineClasses
- -Xexperimental=kotlin.ExperimentalUnsignedTypes
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.8.0
-
-
- compile
- compile
-
- compile
-
-
-
- testCompile
- test-compile
-
- testCompile
-
-
-
- true
-
-
- 1.8
-
-
-
-
-
-
- 2.27
- UTF-8
- 1.3.11
- 2.9.8
-
-
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..0599e6c
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,11 @@
+pluginManagement {
+ resolutionStrategy {
+ eachPlugin {
+ if (requested.id.id == "kotlin-multiplatform") {
+ useModule("org.jetbrains.kotlin:kotlin-gradle-plugin:${requested.version}")
+ }
+ }
+ }
+}
+rootProject.name = 'disbrowser'
+
diff --git a/src/main/java/com/smallhacker/disbrowser/Grid.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/Grid.kt
similarity index 74%
rename from src/main/java/com/smallhacker/disbrowser/Grid.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/Grid.kt
index 9ac6a65..9023037 100644
--- a/src/main/java/com/smallhacker/disbrowser/Grid.kt
+++ b/src/jvmMain/kotlin/com/smallhacker/disbrowser/Grid.kt
@@ -81,47 +81,47 @@ class Grid {
= ins.print(gameData)
add(y, ins.address,
- htmlFragment {
- text(address ?: "")
- },
- htmlFragment {
- text(bytes)
- },
+ htmlFragment {
+ text(address ?: "")
+ },
+ htmlFragment {
+ text(bytes)
+ },
editableField(game, indicativeAddress, "label", label),
- htmlFragment {
- if (secondaryMnemonic == null) {
+ htmlFragment {
+ if (secondaryMnemonic == null) {
+ text(primaryMnemonic)
+ } else {
+ span {
text(primaryMnemonic)
+ }.attr("title", secondaryMnemonic).addClass("opcode-info")
+ }
+ text(suffix ?: "")
+ text(" ")
+ val link = ins.linkedState
+ if (link == null) {
+ if (labelAddress == null) {
+ text(operands ?: "")
} else {
- span {
- text(primaryMnemonic)
- }.attr("title", secondaryMnemonic).addClass("opcode-info")
+ val currentLabel = gameData[labelAddress]?.label
+ editablePopupField(game, labelAddress, "label", operands, currentLabel)
}
- text(suffix ?: "")
- text(" ")
- val link = ins.linkedState
- if (link == null) {
- if (labelAddress == null) {
- text(operands ?: "")
- } else {
- val currentLabel = gameData[labelAddress]?.label
- editablePopupField(game, labelAddress, "label", operands, currentLabel)
- }
- } else {
- val local = link.address in disassembly
+ } else {
+ val local = link.address in disassembly
- val url = when {
- local -> "#${link.address.toSimpleString()}"
- else -> "/${game.id}/${link.address.toSimpleString()}/${link.urlString}"
- }
-
- a {
- text(operands ?: "")
- }.attr("href", url)
+ val url = when {
+ local -> "#${link.address.toSimpleString()}"
+ else -> "/${game.id}/${link.address.toSimpleString()}/${link.urlString}"
}
- },
- htmlFragment {
- text(state ?: "")
- },
+
+ a {
+ text(operands ?: "")
+ }.attr("href", url)
+ }
+ },
+ htmlFragment {
+ text(state ?: "")
+ },
editableField(game, indicativeAddress, "comment", comment)
)
@@ -135,12 +135,12 @@ class Grid {
private fun editableField(game: Game, address: SnesAddress, type: String, value: String?): HtmlNode {
return htmlFragment {
input.attr("value", value ?: "")
- .attr("type", "text")
- .addClass("field-$type")
- .addClass("field-editable")
- .attr("data-field", type)
- .attr("data-game", game.id)
- .attr("data-address", address.toSimpleString())
+ .attr("type", "text")
+ .addClass("field-$type")
+ .addClass("field-editable")
+ .attr("data-field", type)
+ .attr("data-game", game.id)
+ .attr("data-address", address.toSimpleString())
}
}
@@ -164,9 +164,9 @@ class Grid {
null,
null,
null,
- htmlFragment {
- text("...")
- },
+ htmlFragment {
+ text("...")
+ },
null,
null
)
@@ -220,8 +220,8 @@ class Grid {
}.addClass(cssClass)
}
}.addClass(rowClasses[y])
- .attr("id", rowId[y])
- .attr("row-certainty", rowCertainties[y])
+ .attr("id", rowId[y])
+ .attr("row-certainty", rowCertainties[y])
}
}
}
diff --git a/src/main/java/com/smallhacker/disbrowser/Html.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/Html.kt
similarity index 96%
rename from src/main/java/com/smallhacker/disbrowser/Html.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/Html.kt
index b47998e..bb4bcb0 100644
--- a/src/main/java/com/smallhacker/disbrowser/Html.kt
+++ b/src/jvmMain/kotlin/com/smallhacker/disbrowser/Html.kt
@@ -66,10 +66,14 @@ private class HtmlTextNode(private val text: String): HtmlNode {
}
private object ParentBuilder {
- operator fun getValue(a: HtmlArea, b: KProperty<*>) = ParentHtmlElement(b.name).appendTo(a.parent)
+ operator fun getValue(a: HtmlArea, b: KProperty<*>) = ParentHtmlElement(
+ b.name
+ ).appendTo(a.parent)
}
private object LeafBuilder {
- operator fun getValue(a: HtmlArea, b: KProperty<*>) = HtmlElement(b.name).appendTo(a.parent)
+ operator fun getValue(a: HtmlArea, b: KProperty<*>) = HtmlElement(
+ b.name
+ ).appendTo(a.parent)
}
fun htmlFragment(inner: InnerHtml = {}) = object : HtmlNode {
@@ -108,7 +112,9 @@ val HtmlArea.button by ParentBuilder
fun HtmlNode.appendTo(node: HtmlNode) = apply { node.append(this) }
fun HtmlNode.addClass(c: String?) = attrAdd("class", c)
val HtmlNode.inner get() = this
-operator fun HtmlNode.invoke(inner: InnerHtml): HtmlNode = append(htmlFragment(inner))
+operator fun HtmlNode.invoke(inner: InnerHtml): HtmlNode = append(
+ htmlFragment(inner)
+)
fun HtmlNode.attr(key: String, value: String?, inner: InnerHtml) = attr(key, value).inner(inner)
fun HtmlNode.addClass(c: String?, inner: InnerHtml) = addClass(c).inner(inner)
diff --git a/src/main/java/com/smallhacker/disbrowser/ImmStack.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/ImmStack.kt
similarity index 95%
rename from src/main/java/com/smallhacker/disbrowser/ImmStack.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/ImmStack.kt
index 4759acd..4a7aad5 100644
--- a/src/main/java/com/smallhacker/disbrowser/ImmStack.kt
+++ b/src/jvmMain/kotlin/com/smallhacker/disbrowser/ImmStack.kt
@@ -15,7 +15,8 @@ fun immStack(): ImmStack {
return EmptyImmStack as ImmStack
}
-private class ImmStackImpl(private val parent: ImmStack, override val top: E): ImmStack {
+private class ImmStackImpl(private val parent: ImmStack, override val top: E):
+ ImmStack {
override fun isEmpty() = false
override fun pop(): ImmStack = parent
diff --git a/src/main/java/com/smallhacker/disbrowser/Main.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/Main.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/Main.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/Main.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/Service.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/Service.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/Service.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/Service.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/Certainty.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Certainty.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/Certainty.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Certainty.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/Continuation.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Continuation.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/Continuation.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Continuation.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/Disassembly.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Disassembly.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/Disassembly.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Disassembly.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/Instruction.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Instruction.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/Instruction.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Instruction.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/MemorySpace.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/MemorySpace.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/MemorySpace.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/MemorySpace.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/MetadataLine.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/MetadataLine.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/MetadataLine.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/MetadataLine.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/Mnemonic.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Mnemonic.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/Mnemonic.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Mnemonic.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/Mode.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Mode.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/Mode.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Mode.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/Opcode.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Opcode.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/Opcode.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Opcode.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/Segment.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Segment.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/Segment.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/Segment.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/SnesAddress.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/SnesAddress.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/SnesAddress.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/SnesAddress.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/SnesMemory.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/SnesMemory.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/SnesMemory.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/SnesMemory.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/State.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/State.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/State.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/State.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/asm/VagueNumber.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/VagueNumber.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/asm/VagueNumber.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/asm/VagueNumber.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/datatype/RangeMap.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/datatype/RangeMap.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/datatype/RangeMap.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/datatype/RangeMap.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/disassembler/Disassembler.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/disassembler/Disassembler.kt
similarity index 99%
rename from src/main/java/com/smallhacker/disbrowser/disassembler/Disassembler.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/disassembler/Disassembler.kt
index 0a03266..26cf88a 100644
--- a/src/main/java/com/smallhacker/disbrowser/disassembler/Disassembler.kt
+++ b/src/jvmMain/kotlin/com/smallhacker/disbrowser/disassembler/Disassembler.kt
@@ -111,7 +111,7 @@ object Disassembler {
.forEach { tryAddFatal(it.address) }
while (fatalQueue.isNotEmpty()) {
- val badAddress = fatalQueue.removeNext()!!
+ val badAddress = fatalQueue.removeNext()
val instruction = instructionMap[badAddress] ?: continue
val mnemonic = instruction.opcode.mnemonic
if (mnemonic == Mnemonic.JSL || mnemonic == Mnemonic.JSR) continue
diff --git a/src/main/java/com/smallhacker/disbrowser/game/Game.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/game/Game.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/game/Game.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/game/Game.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/game/GameData.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/game/GameData.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/game/GameData.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/game/GameData.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/game/GameSource.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/game/GameSource.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/game/GameSource.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/game/GameSource.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/resource/DisassemblyResource.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/resource/DisassemblyResource.kt
similarity index 83%
rename from src/main/java/com/smallhacker/disbrowser/resource/DisassemblyResource.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/resource/DisassemblyResource.kt
index 00695ed..0aa300b 100644
--- a/src/main/java/com/smallhacker/disbrowser/resource/DisassemblyResource.kt
+++ b/src/jvmMain/kotlin/com/smallhacker/disbrowser/resource/DisassemblyResource.kt
@@ -101,28 +101,28 @@ class DisassemblyResource {
?: return Response.status(404).build()
val html =
- htmlFragment {
- html {
- head {
- title { text("Disassembly Browser") }
- link.attr("rel", "stylesheet").attr("href", "/resources/style.css")
- meta.attr("charset", "UTF-8")
+ htmlFragment {
+ html {
+ head {
+ title { text("Disassembly Browser") }
+ link.attr("rel", "stylesheet").attr("href", "/resources/style.css")
+ meta.attr("charset", "UTF-8")
+ }
+ body {
+ main {
+ output.appendTo(parent)
}
- body {
- main {
- output.appendTo(parent)
- }
- aside.addClass("sidebar") {
- button.attr("id", "btn-dark-mode") {
- text("Dark Mode")
- }
+ aside.addClass("sidebar") {
+ button.attr("id", "btn-dark-mode") {
+ text("Dark Mode")
}
-
- script.attr("src", "/resources/disbrowser.js")
}
+
+ script.attr("src", "/resources/disbrowser.js")
}
}
+ }
return Response.ok(html.toString().toByteArray(StandardCharsets.UTF_8))
.encoding("UTF-8")
diff --git a/src/main/java/com/smallhacker/disbrowser/resource/RestResource.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/resource/RestResource.kt
similarity index 96%
rename from src/main/java/com/smallhacker/disbrowser/resource/RestResource.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/resource/RestResource.kt
index 6af8ad6..5c0f5d7 100644
--- a/src/main/java/com/smallhacker/disbrowser/resource/RestResource.kt
+++ b/src/jvmMain/kotlin/com/smallhacker/disbrowser/resource/RestResource.kt
@@ -3,7 +3,6 @@ package com.smallhacker.disbrowser.resource
import com.smallhacker.disbrowser.Service
import com.smallhacker.disbrowser.asm.SnesAddress
import com.smallhacker.disbrowser.asm.MetadataLine
-import com.smallhacker.disbrowser.game.GameSource
import com.smallhacker.disbrowser.game.getGameSource
import javax.ws.rs.Consumes
import javax.ws.rs.POST
diff --git a/src/main/java/com/smallhacker/disbrowser/resource/StaticResource.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/resource/StaticResource.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/resource/StaticResource.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/resource/StaticResource.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/util/ItemQueue.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/util/ItemQueue.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/util/ItemQueue.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/util/ItemQueue.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/util/UVal.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/util/UVal.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/util/UVal.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/util/UVal.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/util/json.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/util/json.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/util/json.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/util/json.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/util/misc.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/util/misc.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/util/misc.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/util/misc.kt
diff --git a/src/main/java/com/smallhacker/disbrowser/util/multiMap.kt b/src/jvmMain/kotlin/com/smallhacker/disbrowser/util/multiMap.kt
similarity index 100%
rename from src/main/java/com/smallhacker/disbrowser/util/multiMap.kt
rename to src/jvmMain/kotlin/com/smallhacker/disbrowser/util/multiMap.kt
diff --git a/src/main/resources/public/style.css b/src/jvmMain/resources/public/style.css
similarity index 100%
rename from src/main/resources/public/style.css
rename to src/jvmMain/resources/public/style.css
diff --git a/src/main/ts/main.ts b/src/jvmMain/ts/main.ts
similarity index 100%
rename from src/main/ts/main.ts
rename to src/jvmMain/ts/main.ts
diff --git a/src/main/ts/tsconfig.json b/src/jvmMain/ts/tsconfig.json
similarity index 100%
rename from src/main/ts/tsconfig.json
rename to src/jvmMain/ts/tsconfig.json