diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9302dc8..87d39a0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,7 +11,7 @@ kotlin = "1.7.10" ## libs ## camel-kafkaConnectors = "0.11.0" http4k = "4.25.16.2" -kafka = "3.2.0" # https://kafka.apache.org/downloads +kafka = "3.2.1" # https://kafka.apache.org/downloads kvision = "5.13.1" log4j2 = "2.17.2" okio = "3.2.0" # https://search.maven.org/artifact/com.squareup.okio/okio @@ -35,13 +35,14 @@ kotlinx-nodejs = "0.0.7" kSvgDsl = "v2.2.0" -ktor = "2.0.3" # https://github.com/ktorio/ktor/releases +ktor = "2.1.0" # https://github.com/ktorio/ktor/releases -hoplite = "2.3.1" # https://github.com/sksamuel/hoplite/releases +hoplite = "2.5.2" # https://github.com/sksamuel/hoplite/releases -simpleSyslogParser = "0.0.6" # https://search.maven.org/artifact/com.github.palindromicity/simple-syslog +#simpleSyslogParser = "0.0.6" # https://search.maven.org/artifact/com.github.palindromicity/simple-syslog +simpleSyslogParser = "cbf7d86559" # https://jitpack.io/#palindromicity/simple-syslog/ -kotkaStreams = "dev-SNAPSHOT" +kotkaStreams = "22.08.06" marykRocksDb = "7.3.1" # https://search.maven.org/artifact/io.maryk.rocksdb/rocksdb-multiplatform @@ -61,14 +62,14 @@ mockk = "1.12.4" ## infra ## -factorio = "1.1.61" +factorio = "1.1.64" confluent-kafkaConnect = "7.0.1" grafana = "8.5.0" prometheus = "v2.34.0" ## gradle plugins ## -gradleNodePlugin = "3.3.0" # https://github.com/node-gradle/gradle-node-plugin/releases +gradleNodePlugin = "3.4.0" # https://github.com/node-gradle/gradle-node-plugin/releases ######### @@ -213,7 +214,6 @@ kafka-streamsTestUtils = { group = "org.apache.kafka", name = "kafka-streams-tes # kafka helpers #kotka = { group = "com.github.blueanvil", name = "kotka", version = "1.1.1" } -#kafka-kotkaStreams = { group = "com.github.adamko-dev.kotka-streams", name = "kotka-streams", version.ref = "kotkaStreams" } kafka-kotkaStreams = { group = "dev.adamko.kotka", name = "kotka-streams", version.ref = "kotkaStreams" } @@ -236,6 +236,7 @@ hoplite-datetime = { group = "com.sksamuel.hoplite", name = "hoplite-datetime", hoplite-yaml = { group = "com.sksamuel.hoplite", name = "hoplite-yaml", version.ref = "hoplite" } +#simpleSyslogParser = { group = "com.github.palindromicity", name = "simple-syslog", version.ref = "simpleSyslogParser" } simpleSyslogParser = { group = "com.github.palindromicity", name = "simple-syslog", version.ref = "simpleSyslogParser" } diff --git a/modules/events-library/src/commonMain/kotlin/dev/adamko/kafkatorio/schema/common/factorioPrototypes.kt b/modules/events-library/src/commonMain/kotlin/dev/adamko/kafkatorio/schema/common/factorioPrototypes.kt index fae8cee..40e136e 100644 --- a/modules/events-library/src/commonMain/kotlin/dev/adamko/kafkatorio/schema/common/factorioPrototypes.kt +++ b/modules/events-library/src/commonMain/kotlin/dev/adamko/kafkatorio/schema/common/factorioPrototypes.kt @@ -71,8 +71,8 @@ sealed interface FactorioPrototype { @Serializable @SerialName("kafkatorio.prototype.EntityItemGroup") data class ItemGroup( - val name: String, - val type: String, + val name: String? = null, + val type: String? = null, val parentName: String? = null, ) diff --git a/modules/events-mod/src/generated/lua/lualib_bundle.lua b/modules/events-mod/src/generated/lua/lualib_bundle.lua index e118180..1902e79 100644 --- a/modules/events-mod/src/generated/lua/lualib_bundle.lua +++ b/modules/events-mod/src/generated/lua/lualib_bundle.lua @@ -1207,6 +1207,16 @@ local function __TS__InstanceOfObject(value) return valueType == "table" or valueType == "function" end +local function __TS__LuaIteratorSpread(self, state, firstKey) + local results = {} + local key, value = self(state, firstKey) + while key do + results[#results + 1] = {key, value} + key, value = self(state, key) + end + return __TS__Unpack(results) +end + local Map do Map = __TS__Class() @@ -2448,6 +2458,7 @@ return { __TS__InstanceOf = __TS__InstanceOf, __TS__InstanceOfObject = __TS__InstanceOfObject, __TS__Iterator = __TS__Iterator, + __TS__LuaIteratorSpread = __TS__LuaIteratorSpread, Map = Map, __TS__MathAtan2 = __TS__MathAtan2, __TS__MathSign = __TS__MathSign, diff --git a/modules/events-mod/src/generated/lua/main/events/prototypeUpdates.lua b/modules/events-mod/src/generated/lua/main/events/prototypeUpdates.lua index 58bdd23..030e7b0 100644 --- a/modules/events-mod/src/generated/lua/main/events/prototypeUpdates.lua +++ b/modules/events-mod/src/generated/lua/main/events/prototypeUpdates.lua @@ -1,5 +1,5 @@ local ____exports = {} -local emit, getMapTilePrototypes, getEntityPrototypes, convertItemGroup, convertItemSubgroup +local emit, getMapTilePrototypes, getEntityPrototypes, convertItemGroup local ____kafkatorio_2Dschema = require("generated.kafkatorio-schema") local FactorioPrototype = ____kafkatorio_2Dschema.FactorioPrototype local KafkatorioPacketData = ____kafkatorio_2Dschema.KafkatorioPacketData @@ -30,7 +30,7 @@ end function getEntityPrototypes() local protos = {} for ____, entity in pairs(game.entity_prototypes) do - local key = (((entity.group.name .. "/") .. entity.subgroup.name) .. "/") .. entity.type + local key = (((tostring(entity.group.name) .. "/") .. tostring(entity.subgroup.name)) .. "/") .. entity.type if protos[key] == nil then protos[key] = {} end @@ -38,7 +38,7 @@ function getEntityPrototypes() type = FactorioPrototype.Type.Entity, protoId = Converters.prototypeId(entity.type, entity.name), group = convertItemGroup(entity.group), - subgroup = convertItemSubgroup(entity.subgroup), + subgroup = convertItemGroup(entity.subgroup), isBuilding = entity.is_building, isEntityWithOwner = entity.is_entity_with_owner, isMilitaryTarget = entity.is_military_target, @@ -62,16 +62,13 @@ function getEntityPrototypes() return protos end function convertItemGroup(itemGroup) - return {name = itemGroup.name, type = itemGroup.type, parentName = nil} -end -function convertItemSubgroup(itemGroup) local ____itemGroup_name_3 = itemGroup.name local ____itemGroup_type_4 = itemGroup.type local ____itemGroup_group_name_1 = itemGroup.group if ____itemGroup_group_name_1 ~= nil then ____itemGroup_group_name_1 = ____itemGroup_group_name_1.name end - return {name = ____itemGroup_name_3, type = ____itemGroup_type_4, parentName = ____itemGroup_group_name_1} + return {name = ____itemGroup_name_3, type = ____itemGroup_type_4, parentName = ____itemGroup_group_name_1 or nil} end function ____exports.emitPrototypes() local mapTileProtos = getMapTilePrototypes() diff --git a/modules/events-mod/src/main/typescript/generated/kafkatorio-schema.ts b/modules/events-mod/src/main/typescript/generated/kafkatorio-schema.ts index d7f02fc..4983c45 100644 --- a/modules/events-mod/src/main/typescript/generated/kafkatorio-schema.ts +++ b/modules/events-mod/src/main/typescript/generated/kafkatorio-schema.ts @@ -269,8 +269,8 @@ export type MapChunkPosition = [ ]; export interface EntityItemGroup { - name: string; - type: string; + name?: string | null; + type?: string | null; parentName?: string | null; } diff --git a/modules/events-mod/src/main/typescript/main/events/converters.ts b/modules/events-mod/src/main/typescript/main/events/converters.ts index 84bda4a..3abccbc 100644 --- a/modules/events-mod/src/main/typescript/main/events/converters.ts +++ b/modules/events-mod/src/main/typescript/main/events/converters.ts @@ -18,13 +18,13 @@ export namespace Converters { import floor = math.floor; - const mapEventIdToName = new LuaTable() + const mapEventIdToName = new LuaTable() for (const [eventName, eventId] of pairs(defines.events)) { mapEventIdToName.set(eventId, eventName) } - export function eventNameString(event: defines.Events): EventName { + export function eventNameString(event: defines.events): EventName { return mapEventIdToName.get(event) as EventName } @@ -165,7 +165,7 @@ export namespace Converters { } - export function collisionBox(collision_box: BoundingBoxRead): MapBoundingBox { + export function collisionBox(collision_box: BoundingBox): MapBoundingBox { return { leftTop: Converters.entityPosition(collision_box.left_top), rightBottom: Converters.entityPosition(collision_box.right_bottom), diff --git a/modules/events-mod/src/main/typescript/main/events/prototypeUpdates.ts b/modules/events-mod/src/main/typescript/main/events/prototypeUpdates.ts index 109e32a..a6d7f57 100644 --- a/modules/events-mod/src/main/typescript/main/events/prototypeUpdates.ts +++ b/modules/events-mod/src/main/typescript/main/events/prototypeUpdates.ts @@ -65,7 +65,7 @@ function getEntityPrototypes(): PrototypesByType { protoId: Converters.prototypeId(entity.type, entity.name), group: convertItemGroup(entity.group), - subgroup: convertItemSubgroup(entity.subgroup), + subgroup: convertItemGroup(entity.subgroup), isBuilding: entity.is_building, isEntityWithOwner: entity.is_entity_with_owner, @@ -96,15 +96,6 @@ function convertItemGroup(itemGroup: LuaGroup): EntityItemGroup { return { name: itemGroup.name, type: itemGroup.type, - parentName: null, - } -} - - -function convertItemSubgroup(itemGroup: LuaGroup): EntityItemGroup { - return { - name: itemGroup.name, - type: itemGroup.type, - parentName: itemGroup.group?.name, + parentName: itemGroup.group?.name ?? null, } } diff --git a/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/socket/SyslogSocketServer.kt b/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/socket/SyslogSocketServer.kt index 15ad792..5f8e686 100644 --- a/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/socket/SyslogSocketServer.kt +++ b/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/server/socket/SyslogSocketServer.kt @@ -1,6 +1,9 @@ package dev.adamko.kafkatorio.server.socket import com.github.palindromicity.syslog.AllowableDeviations +import com.github.palindromicity.syslog.DefaultKeyProvider +import com.github.palindromicity.syslog.Flat5424MessageHandler +import com.github.palindromicity.syslog.NilPolicy import com.github.palindromicity.syslog.SyslogParser import com.github.palindromicity.syslog.SyslogParserBuilder import com.github.palindromicity.syslog.SyslogSpecification @@ -38,10 +41,17 @@ class SyslogSocketServer( ) - private val syslogParser: SyslogParser = SyslogParserBuilder() - .withDeviations(EnumSet.of(AllowableDeviations.PRIORITY, AllowableDeviations.VERSION)) - .forSpecification(SyslogSpecification.RFC_5424) - .build() + private val syslogParser: SyslogParser> = + SyslogParserBuilder>() + .forSpecification(SyslogSpecification.RFC_5424) + .withSyslogBuilder( + Flat5424MessageHandler( + DefaultKeyProvider(), + NilPolicy.OMIT, + EnumSet.of(AllowableDeviations.PRIORITY, AllowableDeviations.VERSION), + ) + ) + .build() private val _messages: MutableSharedFlow = MutableSharedFlow() diff --git a/modules/infra-factorio-server/src/.env b/modules/infra-factorio-server/src/.env index 4b5add1..b9e9fb3 100644 --- a/modules/infra-factorio-server/src/.env +++ b/modules/infra-factorio-server/src/.env @@ -1,4 +1,4 @@ # Do not edit manually. This file was created with task 'dockerEnvUpdate' COMPOSE_PROJECT_NAME=kafkatorio -FACTORIO_VERSION=1.1.61 +FACTORIO_VERSION=1.1.64 KAFKATORIO_VERSION=0.8.0 diff --git a/modules/infra-kafka-cluster/src/.env b/modules/infra-kafka-cluster/src/.env index c211275..7b8769d 100644 --- a/modules/infra-kafka-cluster/src/.env +++ b/modules/infra-kafka-cluster/src/.env @@ -2,6 +2,6 @@ COMPOSE_PROJECT_NAME=kafkatorio GRAFANA_VERSION=8.5.0 KAFKATORIO_VERSION=0.8.0 -KAFKA_DL_URL=https\://dlcdn.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz -KAFKA_VERSION=3.2.0 +KAFKA_DL_URL=https\://dlcdn.apache.org/kafka/3.2.1/kafka_2.13-3.2.1.tgz +KAFKA_VERSION=3.2.1 PROMETHEUS_VERSION=v2.34.0