The version catalog pointed kxs-ts-gen-core at a JitPack coordinate (com.github.adamko-dev.kotlinx-serialization-typescript-generator) that no longer serves real artifacts there, despite JitPack's build-status API still reporting it as built. The library is properly published to Maven Central under dev.adamko.kxstsgen - a commented-out line with that exact coordinate was already sitting in the catalog. Swapping to it fixes dependency resolution for every module depending on versions-platform (which previously blocked any Gradle task touching events-library, including all of its tests). That unblocked two more pre-existing, unrelated bugs that had never been caught because this module never previously compiled: - LuaJsonList<T> : List<T> by list triggered a longstanding Kotlin compiler bug (KT-3546, "accidental override" on generic toArray) specific to delegating java.util.List via `by`. Replaced with a hand-written Collection<T> implementation (no delegation codegen, no bug), which still satisfies Kotest's forOne/forAll inspectors - the only thing any code actually needs from it. - The kxs-ts-gen Kotlin->TypeScript generator (kt2ts2.kt) still emitted the pre-2.0 bare `uint`/`int` names and no import statement, since it predates typed-factorio's move to virtual modules. Updated its primitive-type mappings to uint32/int32 and added the "factorio:runtime" import to its generated header, so the regenerated schema matches what the rest of events-mod now expects. Verified via real Gradle tasks (not just manual tooling): events-library compiles and all tests pass; events-mod's full build - Kotlin schema generation, npm install, tstl compile, and info.json generation (with factorio_version "2.0" and the space-exploration/Krastorio2 optional dependencies) - succeeds end-to-end. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
331 lines
17 KiB
TOML
331 lines
17 KiB
TOML
# @formatter:off
|
|
|
|
##########
|
|
[versions]
|
|
##########
|
|
|
|
## compilation ##
|
|
jvm = "11"
|
|
kotlin = "1.7.22"
|
|
|
|
## libs ##
|
|
camel-kafkaConnectors = "0.11.0"
|
|
http4k = "4.25.16.2"
|
|
kafka = "3.3.1" # https://kafka.apache.org/downloads
|
|
kvision = "5.18.1" # https://github.com/rjaros/kvision/releases
|
|
log4j2 = "2.17.2"
|
|
okio = "3.2.0" # https://search.maven.org/artifact/com.squareup.okio/okio
|
|
qosLogback = "1.2.11"
|
|
scrimage = "4.0.32" # https://github.com/sksamuel/scrimage/releases
|
|
semver = "1.2.0" # https://github.com/swiftzer/semver/releases
|
|
slf4j = "1.7.36"
|
|
|
|
kotlinx-serialization = "1.4.0" # https://github.com/Kotlin/kotlinx.serialization/releases
|
|
kxs-charleskornKaml = "0.44.0"
|
|
kxs-mamoeYamlkt = "0.12.0"
|
|
kxs-kxsTsGen = "0.2.1"
|
|
|
|
kotlinJsWrappers = "1.0.0-pre.456" # https://search.maven.org/artifact/org.jetbrains.kotlin-wrappers/kotlin-wrappers-bom
|
|
|
|
kotlinx-cli = "0.3.5" # https://github.com/Kotlin/kotlinx-cli/releases
|
|
kotlinx-coroutines = "1.6.4" # https://github.com/Kotlin/kotlinx.coroutines/releases
|
|
kotlinx-datetime = "0.4.0" # https://github.com/Kotlin/kotlinx-datetime/releases
|
|
kotlinx-html = "0.8.0" # https://github.com/Kotlin/kotlinx.html/releases
|
|
kotlinx-nodejs = "0.0.7"
|
|
|
|
kSvgDsl = "v2.2.0"
|
|
|
|
ktor = "2.1.3" # https://github.com/ktorio/ktor/releases
|
|
|
|
hoplite = "2.7.0" # https://github.com/sksamuel/hoplite/releases
|
|
|
|
simpleSyslogParser = "1.0.0" # https://search.maven.org/artifact/com.github.palindromicity/simple-syslog
|
|
|
|
kotkaStreams = "22.08.06"
|
|
|
|
marykRocksDb = "7.3.1-2" # https://search.maven.org/artifact/io.maryk.rocksdb/rocksdb-multiplatform
|
|
|
|
klogging = "0.4.9"
|
|
|
|
nimbusJoseJwt = "9.25.6" # https://search.maven.org/artifact/com.nimbusds/nimbus-jose-jwt
|
|
|
|
## npm ##
|
|
|
|
npm-luaTypes = "2.13.1" # https://www.npmjs.com/package/lua-types
|
|
npm-typescriptToLua = "1.25.2" # peer-pins typescript 5.4.2, matching typed-factorio's own dev dependency; https://www.npmjs.com/package/typescript-to-lua
|
|
npm-typedFactorio = "3.36.0" # targets Factorio 2.0.75 ("factorio-2.0" dist-tag); https://github.com/GlassBricks/typed-factorio/blob/main/Changelog.md https://www.npmjs.com/package/typed-factorio
|
|
npm-typescript = "5.4.2" # https://github.com/microsoft/TypeScript/releases
|
|
|
|
npm-bootswatch = "5.2.2" # https://www.jsdelivr.com/package/npm/bootswatch
|
|
|
|
## test ##
|
|
junit = "5.9.1" # https://github.com/junit-team/junit5/releases
|
|
kotest = "5.5.4" # https://github.com/kotest/kotest/releases
|
|
mockk = "1.13.3" # https://github.com/mockk/mockk/releases/
|
|
|
|
|
|
## infra ##
|
|
factorio = "2.0.77" # https://www.factorio.com/download
|
|
confluent-kafkaConnect = "7.0.1"
|
|
grafana = "8.5.0"
|
|
prometheus = "v2.34.0"
|
|
|
|
|
|
## gradle plugins ##
|
|
gradleNodePlugin = "3.5.0" # https://github.com/node-gradle/gradle-node-plugin/releases
|
|
|
|
|
|
#########
|
|
[plugins]
|
|
#########
|
|
|
|
kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
|
kotlinJs = { id = "org.jetbrains.kotlin.js", version.ref = "kotlin" }
|
|
kotlinSerialization = { id = "org.jetbrains.kotlin.kotlin-serialization", version.ref = "kotlin" }
|
|
|
|
loggingCapabilities = { id = "dev.jacomet.logging-capabilities", version = "0.10.0" }
|
|
|
|
|
|
###########
|
|
[libraries]
|
|
###########
|
|
|
|
## kotlin ##
|
|
kotlin-bom = { group = "org.jetbrains.kotlin", name = "kotlin-bom", version.ref = "kotlin" }
|
|
|
|
kotlin-embeddableCompiler = { module = "org.jetbrains.kotlin:kotlin-compiler-embeddable" }
|
|
|
|
kotlinScripting-common = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-common" }
|
|
kotlinScripting-jvm = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jvm" }
|
|
kotlinScripting-jvmHost = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jvm-host" }
|
|
kotlinScripting-dependencies = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-dependencies" }
|
|
kotlinScripting-dependenciesMaven = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-dependencies-maven" }
|
|
|
|
|
|
kotlinxSerialization-bom = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-bom", version.ref = "kotlinx-serialization" }
|
|
kotlinxSerialization-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-core" }
|
|
kotlinxSerialization-cbor = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-cbor" }
|
|
kotlinxSerialization-hocon = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-hocon" }
|
|
kotlinxSerialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json" }
|
|
kotlinxSerialization-properties = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-properties" }
|
|
kotlinxSerialization-protobuf = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-protobuf" }
|
|
kotlinxSerialization-jsonOkio = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json-okio" }
|
|
|
|
|
|
kotlinxSerialization-charleskornKaml = { group = "com.charleskorn.kaml", name = "kaml", version.ref = "kxs-charleskornKaml" }
|
|
kotlinxSerialization-mamoeYamlkt = { group = "net.mamoe.yamlkt", name = "yamlkt", version.ref = "kxs-mamoeYamlkt" }
|
|
kotlinxSerialization-kxsTsGen = { group = "dev.adamko.kxstsgen", name = "kxs-ts-gen-core", version.ref = "kxs-kxsTsGen" }
|
|
#kotlinxSerialization-kxsTsGen = { group = "com.github.adamko-dev.kotlinx-serialization-typescript-generator", name = "kxs-ts-gen-core", version.ref = "kxs-kxsTsGen" }
|
|
|
|
|
|
kotlinx-coroutines-bom = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-bom", version.ref = "kotlinx-coroutines" }
|
|
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core" }
|
|
kotlinx-coroutines-jdk8 = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-jdk8" }
|
|
|
|
kotlinx-html = { group = "org.jetbrains.kotlinx", name = "kotlinx-html", version.ref = "kotlinx-html" }
|
|
kotlinx-nodejs = { group = "org.jetbrains.kotlinx", name = "kotlinx-nodejs", version.ref = "kotlinx-nodejs" }
|
|
kotlinx-cli = { group = "org.jetbrains.kotlinx", name = "kotlinx-cli", version.ref = "kotlinx-cli" }
|
|
kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinx-datetime" }
|
|
|
|
|
|
kSvgDsl = { group = "com.github.nwillc", name = "ksvg", version.ref = "kSvgDsl" }
|
|
|
|
|
|
kotlin-jsWrappers-bom = { group = "org.jetbrains.kotlin-wrappers", name = "kotlin-wrappers-bom", version.ref = "kotlinJsWrappers" }
|
|
|
|
|
|
## http4k ##
|
|
http4k-bom = { group = "org.http4k", name = "http4k-bom", version.ref = "http4k" }
|
|
http4k-core = { group = "org.http4k", name = "http4k-core" }
|
|
http4k-contract = { group = "org.http4k", name = "http4k-contract" }
|
|
http4k-client-okhttp = { group = "org.http4k", name = "http4k-client-okhttp" }
|
|
http4k-client-ws = { group = "org.http4k", name = "http4k-client-websocket" }
|
|
http4k-server = { group = "org.http4k", name = "http4k-server-undertow" }
|
|
http4k-cloudnative = { group = "org.http4k", name = "http4k-cloudnative" }
|
|
#http4k-format-jackson-json = { group = "org.http4k", name = "http4k-format-jackson" }
|
|
#http4k-format-jackson-xml = { group = "org.http4k", name = "http4k-format-jackson-xml" }
|
|
#http4k-format-jackson-yaml = { group = "org.http4k", name = "http4k-format-jackson-yaml" }
|
|
http4k-format-kotlinx = { group = "org.http4k", name = "http4k-format-kotlinx-serialization" }
|
|
http4k-graphql = { group = "org.http4k", name = "http4k-graphql" }
|
|
|
|
|
|
## ktor ##
|
|
ktor-bom = { group = "io.ktor", name = "ktor-bom", version.ref = "ktor" }
|
|
|
|
ktorSerialization-kotlinxJson = { group = "io.ktor", name = "ktor-serialization-kotlinx-json" }
|
|
|
|
ktorClient-core = { group = "io.ktor", name = "ktor-client-core" }
|
|
ktorClient-auth = { group = "io.ktor", name = "ktor-client-auth" }
|
|
ktorClient-cio = { group = "io.ktor", name = "ktor-client-cio" }
|
|
ktorClient-contentNegotiation = { group = "io.ktor", name = "ktor-client-content-negotiation" }
|
|
ktorClient-encoding = { group = "io.ktor", name = "ktor-client-encoding" }
|
|
ktorClient-logging = { group = "io.ktor", name = "ktor-client-logging" }
|
|
ktorClient-resources = { group = "io.ktor", name = "ktor-client-resources" }
|
|
ktorClient-websockets = { group = "io.ktor", name = "ktor-client-websockets" }
|
|
|
|
ktorClient-testMock = { group = "io.ktor", name = "ktor-client-mock" }
|
|
|
|
|
|
ktorServer-core = { group = "io.ktor", name = "ktor-server-core" }
|
|
ktorServer-auth = { group = "io.ktor", name = "ktor-server-auth" }
|
|
ktorServer-authJwt = { group = "io.ktor", name = "ktor-server-auth-jwt" }
|
|
ktorServer-autoHeadResponse = { group = "io.ktor", name = "ktor-server-auto-head-response" }
|
|
ktorServer-cachingHeaders = { group = "io.ktor", name = "ktor-server-caching-headers" }
|
|
ktorServer-callId = { group = "io.ktor", name = "ktor-server-call-id" }
|
|
ktorServer-callLogging = { group = "io.ktor", name = "ktor-server-call-logging" }
|
|
ktorServer-compression = { group = "io.ktor", name = "ktor-server-compression" }
|
|
ktorServer-conditionalHeaders = { group = "io.ktor", name = "ktor-server-conditional-headers" }
|
|
ktorServer-contentNegotiaion = { group = "io.ktor", name = "ktor-server-content-negotiation" }
|
|
ktorServer-cors = { group = "io.ktor", name = "ktor-server-cors" }
|
|
ktorServer-dataConversion = { group = "io.ktor", name = "ktor-server-data-conversion" }
|
|
ktorServer-defaultHeaders = { group = "io.ktor", name = "ktor-server-default-headers" }
|
|
ktorServer-forwardedHeader = { group = "io.ktor", name = "ktor-server-forwarded-header" }
|
|
ktorServer-hsts = { group = "io.ktor", name = "ktor-server-hsts" }
|
|
ktorServer-httpRedirect = { group = "io.ktor", name = "ktor-server-http-redirect" }
|
|
ktorServer-netty = { group = "io.ktor", name = "ktor-server-netty" }
|
|
ktorServer-cio = { group = "io.ktor", name = "ktor-server-cio" }
|
|
ktorServer-partialContent = { group = "io.ktor", name = "ktor-server-partial-content" }
|
|
ktorServer-resources = { group = "io.ktor", name = "ktor-server-resources" }
|
|
ktorServer-sessions = { group = "io.ktor", name = "ktor-server-sessions" }
|
|
ktorServer-statusPages = { group = "io.ktor", name = "ktor-server-status-pages" }
|
|
ktorServer-websockets = { group = "io.ktor", name = "ktor-server-websockets" }
|
|
|
|
ktorServer-testHost = { group = "io.ktor", name = "ktor-server-test-host" }
|
|
|
|
|
|
ktorNetwork-core = { group = "io.ktor", name = "ktor-network" }
|
|
ktorNetwork-tls = { group = "io.ktor", name = "ktor-network-tls" }
|
|
|
|
|
|
### jackson ##
|
|
#jackson-bom = { group = " com.fasterxml.jackson.module", name = ":jackson-module-kotlin", version = "2.13.+" }
|
|
#jackson-kotlin = { group = " com.fasterxml.jackson.module", name = ":jackson-module-kotlin", version = "2.13.+" }
|
|
|
|
## logging ##
|
|
slf4j-api = { group = "org.slf4j", name = "slf4j-api", version.ref = "slf4j" }
|
|
kotlin-logging = { group = "io.github.microutils", name = "kotlin-logging-jvm", version = "2.1.21" }
|
|
logback-core = { group = "ch.qos.logback", name = "logback-core", version.ref = "qosLogback" }
|
|
logback-classic = { group = "ch.qos.logback", name = "logback-classic", version.ref = "qosLogback" }
|
|
logback-encoder = { group = "net.logstash.logback", name = "logstash-logback-encoder", version = "6.6" }
|
|
|
|
|
|
klogging = { group = "io.klogging", name = "klogging-jvm", version.ref = "klogging" }
|
|
|
|
## gcp ##
|
|
#gcp-bom = { group = "com.google.cloud", name = "libraries-bom", version = "23.1.0" }
|
|
#gcp-pubsub = { group = "com.google.cloud", name = "google-cloud-pubsub" }
|
|
#gcp-speech = { group = "com.google.cloud", name = "google-cloud-speech" }
|
|
|
|
|
|
## kafka ##
|
|
kafka-streams = { group = "org.apache.kafka", name = "kafka-streams", version.ref = "kafka" }
|
|
kafka-streamsTestUtils = { group = "org.apache.kafka", name = "kafka-streams-test-utils", version.ref = "kafka" }
|
|
# kafka helpers
|
|
#kotka = { group = "com.github.blueanvil", name = "kotka", version = "1.1.1" }
|
|
|
|
kafka-kotkaStreams = { group = "dev.adamko.kotka", name = "kotka-streams", version.ref = "kotkaStreams" }
|
|
|
|
|
|
marykRocksDb = { group = "io.maryk.rocksdb", name = "rocksdb-multiplatform", version.ref = "marykRocksDb" }
|
|
|
|
jsoup = { group = "org.jsoup", name = "jsoup", version = "1.14.3" }
|
|
skrapeit = { group = "it.skrape", name = "skrapeit", version = "1.2.0" }
|
|
|
|
scrimage-core = { group = "com.sksamuel.scrimage", name = "scrimage-core", version.ref = "scrimage" }
|
|
|
|
semver = { group = "net.swiftzer.semver", name = "semver", version.ref = "semver" }
|
|
|
|
## okio ##
|
|
okio-bom = { group = "com.squareup.okio", name = "okio-bom", version.ref = "okio" }
|
|
okio-core = { group = "com.squareup.okio", name = "okio" }
|
|
|
|
|
|
hoplite-core = { group = "com.sksamuel.hoplite", name = "hoplite-core", version.ref = "hoplite" }
|
|
hoplite-datetime = { group = "com.sksamuel.hoplite", name = "hoplite-datetime", version.ref = "hoplite" }
|
|
hoplite-yaml = { group = "com.sksamuel.hoplite", name = "hoplite-yaml", version.ref = "hoplite" }
|
|
|
|
|
|
simpleSyslogParser = { group = "com.github.palindromicity", name = "simple-syslog", version.ref = "simpleSyslogParser" }
|
|
|
|
|
|
nimbusJoseJwt = { group = "com.nimbusds", name = "nimbus-jose-jwt", version.ref = "nimbusJoseJwt" }
|
|
|
|
#############
|
|
### test ###
|
|
#############
|
|
|
|
mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk" }
|
|
|
|
## junit ##
|
|
junit-bom = { group = "org.junit", name = "junit-bom", version.ref = "junit" }
|
|
junit-api = { group = "org.junit.jupiter", name = "junit-jupiter-api" } # version.ref = "junit" }
|
|
junit-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine" } # version.ref = "junit" }
|
|
junit-launcher = { group = "org.junit.platform", name = "junit-platform-launcher" } # version = "1.7.2" }
|
|
|
|
## kotest ##
|
|
kotest-bom = { module = "io.kotest:kotest-bom", version.ref = "kotest" }
|
|
kotest-core = { module = "io.kotest:kotest-assertions-core" }
|
|
kotest-datatest = { module = "io.kotest:kotest-framework-datatest" }
|
|
kotest-json = { module = "io.kotest:kotest-assertions-json" }
|
|
kotest-prop = { module = "io.kotest:kotest-property" }
|
|
kotest-frameworkEngine = { module = "io.kotest:kotest-framework-engine" }
|
|
kotest-runnerJunit5 = { module = "io.kotest:kotest-runner-junit5" }
|
|
|
|
kotestPlugin-embeddedCompiler = { group = "io.kotest", name = "kotest-framework-multiplatform-plugin-embeddable-compiler" }
|
|
kotestPlugin-multiplatform = { group = "io.kotest", name = "kotest-framework-multiplatform-plugin-gradle" }
|
|
|
|
## http4k ##
|
|
http4k-test-chaos = { group = "org.http4k", name = "http4k-testing-chaos", version.ref = "http4k" }
|
|
http4k-test-approval = { group = "org.http4k", name = "http4k-testing-approval", version.ref = "http4k" }
|
|
http4k-test-kotest = { group = "org.http4k", name = "http4k-testing-kotest", version.ref = "http4k" }
|
|
|
|
################
|
|
### plugins ###
|
|
################
|
|
|
|
gradlePlugin-kvision = { module = "io.kvision:io.kvision.gradle.plugin", version.ref = "kvision" }
|
|
|
|
#########
|
|
[bundles]
|
|
#########
|
|
|
|
logging = [
|
|
"slf4j-api",
|
|
"kotlin-logging",
|
|
"logback-core",
|
|
"logback-classic",
|
|
"logback-encoder",
|
|
]
|
|
|
|
#kt-testing = [
|
|
# "kotest-core",
|
|
# "kotest-datatest",
|
|
# "kotest-runner",
|
|
# "kotest-prop",
|
|
# "kotest-json",
|
|
# "mockk",
|
|
#]
|
|
|
|
junit-runtime = [
|
|
"junit-engine",
|
|
"junit-launcher",
|
|
]
|
|
|
|
kotlinScripting-def = [
|
|
"kotlinScripting-common",
|
|
"kotlinScripting-jvm",
|
|
"kotlinScripting-dependencies",
|
|
"kotlinScripting-dependenciesMaven",
|
|
]
|
|
|
|
kotlinScripting-host = [
|
|
"kotlinScripting-common",
|
|
"kotlinScripting-jvm",
|
|
"kotlinScripting-jvmHost",
|
|
]
|
|
|
|
hoplite = [
|
|
"hoplite-core",
|
|
"hoplite-yaml",
|
|
"hoplite-datetime",
|
|
]
|