aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build.yml5
-rw-r--r--basetypes/src/main/kotlin/moe/nea/ledger/TransactionType.kt6
-rw-r--r--basetypes/src/main/kotlin/moe/nea/ledger/utils/ULIDWrapper.kt8
-rw-r--r--build-src/src/main/kotlin/helpers.kt7
-rw-r--r--build-src/src/main/kotlin/ledger-globals.gradle.kts2
-rw-r--r--build.gradle.kts3
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/Column.kt10
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/Constraint.kt2
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/DBType.kt16
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/InsertStatement.kt4
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/Query.kt2
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/ResultRow.kt6
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/Table.kt14
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/UniqueConstraint.kt4
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/columns/DBDouble.kt2
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/columns/DBEnum.kt2
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/columns/DBInstant.kt2
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/columns/DBInt.kt2
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/columns/DBString.kt2
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/columns/DBUlid.kt2
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/columns/DBUuid.kt2
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/ANDExpression.kt5
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/Clause.kt6
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/ClauseBuilder.kt22
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/ColumnOperand.kt6
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/EqualsClause.kt2
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/IntoSelectable.kt2
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/LessThanEqualsExpression.kt15
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/LessThanExpression.kt15
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/LikeClause.kt2
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/ListClause.kt8
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/ListExpression.kt22
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/Operand.kt7
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/SQLQueryComponent.kt19
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/Selectable.kt8
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/StringOperand.kt5
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/TypedOperand.kt7
-rw-r--r--database/core/src/main/kotlin/moe/nea/ledger/database/sql/ValuedOperand.kt15
-rw-r--r--database/impl/src/main/kotlin/moe/nea/ledger/database/DBUpgrade.kt4
-rw-r--r--database/impl/src/main/kotlin/moe/nea/ledger/database/Upgrades.kt2
-rw-r--r--mod/log4j2.xml6
-rw-r--r--mod/src/main/java/moe/nea/ledger/init/AutoDiscoveryMixinPlugin.java2
-rw-r--r--mod/src/main/java/moe/nea/ledger/mixin/AccessorContainerDispenser.java12
-rw-r--r--mod/src/main/java/moe/nea/ledger/mixin/AccessorContainerHopper.java13
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/ItemIdProvider.kt4
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/Ledger.kt21
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/QueryCommand.kt2
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/config/DebugOptions.kt3
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/events/BeforeGuiAction.kt12
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/events/LedgerEvent.kt22
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/modules/BankInterestDetection.kt44
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/modules/BasicReforgeDetection.kt71
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/modules/CaducousFeederDetection.kt48
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/modules/ExternalDataProvider.kt5
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/modules/ForgeDetection.kt3
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/modules/GhostCoinDropDetection.kt38
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/modules/PestRepellentDetection.kt47
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/modules/StonksAuctionDetection.kt59
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/telemetry/GuiContextValue.kt16
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/telemetry/TelemetryProvider.kt (renamed from mod/src/main/kotlin/moe/nea/ledger/TelemetryProvider.kt)6
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/utils/ScreenUtil.kt29
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/utils/network/RequestTrace.kt21
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/utils/network/RequestUtil.kt9
-rw-r--r--mod/src/main/kotlin/moe/nea/ledger/utils/telemetry/Span.kt3
-rw-r--r--server/aio/build.gradle.kts19
-rw-r--r--server/aio/src/main/kotlin/moe/nea/ledger/server/aio/AIO.kt20
-rw-r--r--server/analysis/build.gradle.kts16
-rw-r--r--server/analysis/src/main/kotlin/moe/nea/ledger/analysis/Analysis.kt9
-rw-r--r--server/analysis/src/main/kotlin/moe/nea/ledger/analysis/AnalysisFilter.kt26
-rw-r--r--server/analysis/src/main/kotlin/moe/nea/ledger/analysis/AnalysisResult.kt8
-rw-r--r--server/analysis/src/main/kotlin/moe/nea/ledger/analysis/CoinsSpentOnAuctions.kt49
-rw-r--r--server/analysis/src/main/kotlin/moe/nea/ledger/analysis/Visualization.kt30
-rw-r--r--server/core/build.gradle.kts24
-rw-r--r--server/core/src/main/kotlin/moe/nea/ledger/server/core/Application.kt53
-rw-r--r--server/core/src/main/kotlin/moe/nea/ledger/server/core/api/BaseApi.kt188
-rw-r--r--server/core/test-requests/test-hello.http5
-rw-r--r--server/frontend/.gitignore2
-rw-r--r--server/frontend/build.gradle.kts17
-rw-r--r--server/frontend/index.html16
-rw-r--r--server/frontend/package.json37
-rw-r--r--server/frontend/pnpm-lock.yaml1920
-rw-r--r--server/frontend/src/Analysis.tsx84
-rw-r--r--server/frontend/src/App.module.css0
-rw-r--r--server/frontend/src/App.tsx22
-rw-r--r--server/frontend/src/Test.tsx31
-rw-r--r--server/frontend/src/api-schema.d.ts236
-rw-r--r--server/frontend/src/api.ts13
-rw-r--r--server/frontend/src/index.css13
-rw-r--r--server/frontend/src/index.tsx23
-rw-r--r--server/frontend/tsconfig.json19
-rw-r--r--server/frontend/vite.config.ts17
-rw-r--r--server/swagger/build.gradle.kts17
-rw-r--r--server/swagger/src/main/kotlin/moe/nea/ledger/server/core/api/OpenApiModel.kt117
-rw-r--r--server/swagger/src/main/kotlin/moe/nea/ledger/server/core/api/docs.kt323
-rw-r--r--settings.gradle.kts7
95 files changed, 4041 insertions, 91 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index a9eee2c..fd9ec1e 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -15,7 +15,10 @@ jobs:
with:
distribution: temurin
java-version: 17
-
+ - name: Setup PNPM
+ uses: pnpm/action-setup@v4
+ with:
+ package_json_file: 'server/frontend/package.json'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
diff --git a/basetypes/src/main/kotlin/moe/nea/ledger/TransactionType.kt b/basetypes/src/main/kotlin/moe/nea/ledger/TransactionType.kt
index 8424893..d4c15e5 100644
--- a/basetypes/src/main/kotlin/moe/nea/ledger/TransactionType.kt
+++ b/basetypes/src/main/kotlin/moe/nea/ledger/TransactionType.kt
@@ -8,13 +8,16 @@ enum class TransactionType {
AUCTION_SOLD,
AUTOMERCHANT_PROFIT_COLLECT,
BANK_DEPOSIT,
+ BANK_INTEREST,
BANK_WITHDRAW,
+ BASIC_REFORGE,
BAZAAR_BUY_INSTANT,
BAZAAR_BUY_ORDER,
BAZAAR_SELL_INSTANT,
BAZAAR_SELL_ORDER,
BITS_PURSE_STATUS,
BOOSTER_COOKIE_ATE,
+ CADUCOUS_FEEDER_USED,
CAPSAICIN_EYEDROPS_USED,
COMMUNITY_SHOP_BUY,
CORPSE_DESECRATED,
@@ -22,6 +25,7 @@ enum class TransactionType {
DRACONIC_SACRIFICE,
DUNGEON_CHEST_OPEN,
FORGED,
+ GHOST_COIN_DROP,
GOD_POTION_DRANK,
GOD_POTION_MIXIN_DRANK,
GUMMY_POLAR_BEAR_ATE,
@@ -31,6 +35,8 @@ enum class TransactionType {
KUUDRA_CHEST_OPEN,
NPC_BUY,
NPC_SELL,
+ PEST_REPELLENT_USED,
+ STONKS_AUCTION,
VISITOR_BARGAIN,
WYRM_EVOKED,
} \ No newline at end of file
diff --git a/basetypes/src/main/kotlin/moe/nea/ledger/utils/ULIDWrapper.kt b/basetypes/src/main/kotlin/moe/nea/ledger/utils/ULIDWrapper.kt
index b8c5d3b..29d5e31 100644
--- a/basetypes/src/main/kotlin/moe/nea/ledger/utils/ULIDWrapper.kt
+++ b/basetypes/src/main/kotlin/moe/nea/ledger/utils/ULIDWrapper.kt
@@ -9,6 +9,14 @@ value class ULIDWrapper(
val wrapped: String
) {
companion object {
+ fun lowerBound(timestamp: Instant): ULIDWrapper {
+ return ULIDWrapper(ULID.generate(timestamp.toEpochMilli(), ByteArray(10)))
+ }
+
+ fun upperBound(timestamp: Instant): ULIDWrapper {
+ return ULIDWrapper(ULID.generate(timestamp.toEpochMilli(), ByteArray(10) { -1 }))
+ }
+
fun createULIDAt(timestamp: Instant): ULIDWrapper {
return ULIDWrapper(ULID.generate(
timestamp.toEpochMilli(),
diff --git a/build-src/src/main/kotlin/helpers.kt b/build-src/src/main/kotlin/helpers.kt
index 5afef4f..48c230e 100644
--- a/build-src/src/main/kotlin/helpers.kt
+++ b/build-src/src/main/kotlin/helpers.kt
@@ -1,4 +1,5 @@
import org.gradle.api.plugins.ExtensionAware
+import org.gradle.kotlin.dsl.DependencyHandlerScope
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.findByType
@@ -8,3 +9,9 @@ inline fun <reified T : Any> ExtensionAware.configureIf(crossinline block: T.()
extensions.configure<T> { block() }
}
}
+
+val ktor_version = "3.0.3"
+
+fun DependencyHandlerScope.declareKtorVersion() {
+ "implementation"(platform("io.ktor:ktor-bom:$ktor_version"))
+}
diff --git a/build-src/src/main/kotlin/ledger-globals.gradle.kts b/build-src/src/main/kotlin/ledger-globals.gradle.kts
index 8d49379..4238322 100644
--- a/build-src/src/main/kotlin/ledger-globals.gradle.kts
+++ b/build-src/src/main/kotlin/ledger-globals.gradle.kts
@@ -1,3 +1,5 @@
+apply(plugin = "org.gradle.base")
+
repositories {
mavenCentral()
maven("https://repo.nea.moe/releases/")
diff --git a/build.gradle.kts b/build.gradle.kts
index 8377205..4c6ee45 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -2,11 +2,12 @@ import com.github.gmazzo.buildconfig.BuildConfigExtension
import java.io.ByteArrayOutputStream
plugins {
- val kotlinVersion = "2.0.20"
+ val kotlinVersion = "2.0.21"
kotlin("jvm") version kotlinVersion apply false
kotlin("plugin.serialization") version kotlinVersion apply false
id("com.github.gmazzo.buildconfig") version "5.5.0" apply false
id("ledger-globals")
+ id("com.google.devtools.ksp") version "2.0.21-1.0.26" apply false
id("com.github.johnrengelman.shadow") version "8.1.1" apply false
}
diff --git a/database/core/src/main/kotlin/moe/nea/ledger/database/Column.kt b/database/core/src/main/kotlin/moe/nea/ledger/database/Column.kt
index 33727de..c21a159 100644
--- a/database/core/src/main/kotlin/moe/nea/ledger/database/Column.kt
+++ b/database/core/src/main/kotlin/moe/nea/ledger/database/Column.kt
@@ -4,20 +4,20 @@ import moe.nea.ledger.database.sql.IntoSelectable
import moe.nea.ledger.database.sql.Selectable
import java.sql.PreparedStatement
-class Column<T> @Deprecated("Use Table.column instead") constructor(
+class Column<T, Raw> @Deprecated("Use Table.column instead") constructor(
val table: Table,
val name: String,
- val type: DBType<T>
+ val type: DBType<T, Raw>
) : IntoSelectable<T> {
- override fun asSelectable() = object : Selectable<T> {
+ override fun asSelectable() = object : Selectable<T, Raw> {
override fun asSql(): String {
return qualifiedSqlName
}
- override val dbType: DBType<T>
+ override val dbType: DBType<T, Raw>
get() = this@Column.type
- override fun guessColumn(): Column<T>? {
+ override fun guessColumn(): Column<T, Raw> {
return this@Column
}
diff --git a/database/core/src/main/kotlin/moe/nea/ledger/database/Constraint.kt b/database/core/src/main/kotlin/moe/nea/ledger/database/Constraint.kt
index 9f7c9ef..729c6b8 100644
--- a/database/core/src/main/kotlin/moe/nea/ledger/database/Constraint.kt
+++ b/database/core/src/main/kotlin/moe/nea/ledger/database/Constraint.kt
@@ -1,6 +1,6 @@
package moe.nea.ledger.database
interface Constraint {
- val affectedColumns: Collection<Column<*>>
+ val affectedColumns: Collection<Column<*, *>>
fun asSQL(): String
} \ No newline at end of file
diff --git a/database/core/src/main/kotlin/moe/nea/ledger/database/DBType.kt b/database/core/src/main/kotlin/moe/nea/ledger/database/DBType.kt
index 86ff544..622aff3 100644
--- a/databas