diff --git a/backend/.cpcache/82615333.basis b/backend/.cpcache/82615333.basis new file mode 100644 index 0000000..4985b70 --- /dev/null +++ b/backend/.cpcache/82615333.basis @@ -0,0 +1 @@ +{:paths ["src"], :deps {org.clojure/clojure {:mvn/version "1.12.1"}, com.datomic/local {:mvn/version "1.0.291"}, com.taoensso/telemere {:mvn/version "1.0.0"}, environ/environ {:mvn/version "1.2.0"}, metosin/malli {:mvn/version "0.18.0"}, metosin/muuntaja {:mvn/version "0.6.11"}, aleph/aleph {:mvn/version "0.9.7"}, org.clj-commons/byte-streams {:mvn/version "0.3.4"}}, :aliases {:deps {:replace-paths [], :replace-deps {org.clojure/tools.deps.cli {:mvn/version "0.12.105"}}, :ns-default clojure.tools.deps.cli.api, :ns-aliases {help clojure.tools.deps.cli.help}}, :test {:extra-paths ["test"]}, :build {:deps {io.github.clojure/tools.build {:git/tag "v0.10.9", :git/sha "e405aac"}}, :ns-default build}}, :mvn/repos {"central" {:url "https://repo1.maven.org/maven2/"}, "clojars" {:url "https://repo.clojars.org/"}}, :libs {com.cognitect/transit-java {:mvn/version "1.0.371", :deps/manifest :mvn, :dependents [com.cognitect/transit-clj], :parents #{[metosin/muuntaja com.cognitect/transit-clj]}, :paths ["/Users/she0001t/.m2/repository/com/cognitect/transit-java/1.0.371/transit-java-1.0.371.jar"]}, org.clojure/clojure {:mvn/version "1.12.1", :deps/manifest :mvn, :parents #{[]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/clojure/1.12.1/clojure-1.12.1.jar"]}, javax.activation/javax.activation-api {:mvn/version "1.2.0", :deps/manifest :mvn, :dependents [javax.xml.bind/jaxb-api], :parents #{[metosin/muuntaja com.cognitect/transit-clj com.cognitect/transit-java javax.xml.bind/jaxb-api]}, :paths ["/Users/she0001t/.m2/repository/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar"]}, commons-codec/commons-codec {:mvn/version "1.16.0", :deps/manifest :mvn, :dependents [com.cognitect/hmac-authn], :parents #{[com.datomic/local com.datomic/client com.datomic/client-impl-shared com.cognitect/hmac-authn]}, :paths ["/Users/she0001t/.m2/repository/commons-codec/commons-codec/1.16.0/commons-codec-1.16.0.jar"]}, org.clojure/tools.analyzer {:mvn/version "1.1.1", :deps/manifest :mvn, :dependents [com.datomic/local org.clojure/tools.analyzer.jvm], :parents #{[com.datomic/local] [com.datomic/local org.clojure/tools.analyzer.jvm]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/tools.analyzer/1.1.1/tools.analyzer-1.1.1.jar"]}, com.google.errorprone/error_prone_annotations {:mvn/version "2.3.4", :deps/manifest :mvn, :dependents [com.datomic/local com.github.ben-manes.caffeine/caffeine], :parents #{[com.datomic/local] [com.datomic/local com.github.ben-manes.caffeine/caffeine]}, :paths ["/Users/she0001t/.m2/repository/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar"]}, org.clojure/tools.logging {:mvn/version "1.3.1", :exclusions #{org.clojure/clojure}, :deps/manifest :mvn, :dependents [aleph/aleph], :parents #{[aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/tools.logging/1.3.1/tools.logging-1.3.1.jar"]}, org.clojure/core.specs.alpha {:mvn/version "0.4.74", :deps/manifest :mvn, :dependents [org.clojure/clojure], :parents #{[org.clojure/clojure]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/core.specs.alpha/0.4.74/core.specs.alpha-0.4.74.jar"]}, metosin/muuntaja {:mvn/version "0.6.11", :deps/manifest :mvn, :parents #{[]}, :paths ["/Users/she0001t/.m2/repository/metosin/muuntaja/0.6.11/muuntaja-0.6.11.jar"]}, io.netty/netty-common {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [io.netty/netty-handler-proxy io.netty/netty-transport-classes-epoll io.netty/netty-handler io.netty/netty-buffer io.netty/netty-transport io.netty/netty-transport-native-epoll$linux-aarch_64 io.netty/netty-transport-native-kqueue$osx-x86_64 io.netty/netty-codec io.netty/netty-transport-classes-kqueue io.netty/netty-codec-http io.netty/netty-codec-socks io.netty/netty-resolver-dns io.netty/netty-codec-http2 io.netty/netty-transport-native-unix-common io.netty/netty-codec-dns io.netty/netty-transport-native-epoll$linux-x86_64 io.netty/netty-resolver], :parents #{[aleph/aleph io.netty/netty-handler-proxy] [aleph/aleph io.netty/netty-transport-native-epoll$linux-x86_64 io.netty/netty-transport-classes-epoll] [aleph/aleph io.netty/netty-handler] [aleph/aleph io.netty/netty-transport io.netty/netty-buffer] [aleph/aleph io.netty/netty-transport] [aleph/aleph io.netty/netty-transport-native-epoll$linux-aarch_64] [aleph/aleph io.netty/netty-transport-native-kqueue$osx-x86_64] [aleph/aleph io.netty/netty-codec] [aleph/aleph io.netty/netty-transport-native-kqueue$osx-x86_64 io.netty/netty-transport-classes-kqueue] [aleph/aleph io.netty/netty-codec-http] [aleph/aleph io.netty/netty-handler-proxy io.netty/netty-codec-socks] [aleph/aleph io.netty/netty-resolver-dns] [aleph/aleph io.netty/netty-codec-http2] [aleph/aleph io.netty/netty-transport-native-epoll$linux-x86_64 io.netty/netty-transport-native-unix-common] [aleph/aleph io.netty/netty-resolver-dns io.netty/netty-codec-dns] [aleph/aleph io.netty/netty-transport-native-epoll$linux-x86_64] [aleph/aleph io.netty/netty-resolver]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-common/4.1.132.Final/netty-common-4.1.132.Final.jar"]}, com.datomic/client-api {:mvn/version "1.0.69", :deps/manifest :mvn, :dependents [com.datomic/client com.datomic/local], :parents #{[com.datomic/local com.datomic/client] [com.datomic/local]}, :paths ["/Users/she0001t/.m2/repository/com/datomic/client-api/1.0.69/client-api-1.0.69.jar"]}, com.fasterxml.jackson.core/jackson-databind {:mvn/version "2.18.2", :deps/manifest :mvn, :dependents [metosin/jsonista com.fasterxml.jackson.datatype/jackson-datatype-jsr310], :parents #{[metosin/muuntaja metosin/jsonista] [metosin/muuntaja metosin/jsonista com.fasterxml.jackson.datatype/jackson-datatype-jsr310]}, :paths ["/Users/she0001t/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.18.2/jackson-databind-2.18.2.jar"]}, org.clojure/spec.alpha {:mvn/version "0.5.238", :deps/manifest :mvn, :dependents [org.clojure/clojure], :parents #{[org.clojure/clojure]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/spec.alpha/0.5.238/spec.alpha-0.5.238.jar"]}, io.netty.incubator/netty-incubator-transport-classes-io_uring {:mvn/version "0.0.26.Final", :deps/manifest :mvn, :dependents [io.netty.incubator/netty-incubator-transport-native-io_uring$linux-aarch_64 io.netty.incubator/netty-incubator-transport-native-io_uring$linux-x86_64], :parents #{[aleph/aleph io.netty.incubator/netty-incubator-transport-native-io_uring$linux-aarch_64] [aleph/aleph io.netty.incubator/netty-incubator-transport-native-io_uring$linux-x86_64]}, :paths ["/Users/she0001t/.m2/repository/io/netty/incubator/netty-incubator-transport-classes-io_uring/0.0.26.Final/netty-incubator-transport-classes-io_uring-0.0.26.Final.jar"]}, io.netty/netty-transport-native-kqueue$osx-x86_64 {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [aleph/aleph], :parents #{[aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-transport-native-kqueue/4.1.132.Final/netty-transport-native-kqueue-4.1.132.Final-osx-x86_64.jar"]}, io.netty.incubator/netty-incubator-transport-native-io_uring$linux-aarch_64 {:mvn/version "0.0.26.Final", :deps/manifest :mvn, :dependents [aleph/aleph], :parents #{[aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/io/netty/incubator/netty-incubator-transport-native-io_uring/0.0.26.Final/netty-incubator-transport-native-io_uring-0.0.26.Final-linux-aarch_64.jar"]}, com.taoensso/encore {:mvn/version "3.145.0", :deps/manifest :mvn, :dependents [com.taoensso/telemere], :parents #{[com.taoensso/telemere]}, :paths ["/Users/she0001t/.m2/repository/com/taoensso/encore/3.145.0/encore-3.145.0.jar"]}, com.datomic/local {:mvn/version "1.0.291", :deps/manifest :mvn, :parents #{[]}, :paths ["/Users/she0001t/.m2/repository/com/datomic/local/1.0.291/local-1.0.291.jar"]}, org.clojure/tools.analyzer.jvm {:mvn/version "1.2.3", :deps/manifest :mvn, :dependents [com.datomic/local org.clojure/core.async], :parents #{[com.datomic/local] [com.datomic/local org.clojure/core.async]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/tools.analyzer.jvm/1.2.3/tools.analyzer.jvm-1.2.3.jar"]}, io.netty/netty-handler-proxy {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [aleph/aleph], :parents #{[aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-handler-proxy/4.1.132.Final/netty-handler-proxy-4.1.132.Final.jar"]}, manifold/manifold {:mvn/version "0.5.0", :exclusions #{org.clojure/tools.logging}, :deps/manifest :mvn, :dependents [aleph/aleph], :parents #{[aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/manifold/manifold/0.5.0/manifold-0.5.0.jar"]}, io.netty/netty-codec-http2 {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [aleph/aleph], :parents #{[aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-codec-http2/4.1.132.Final/netty-codec-http2-4.1.132.Final.jar"]}, com.cognitect/hmac-authn {:mvn/version "0.1.211", :deps/manifest :mvn, :dependents [com.datomic/client-impl-shared], :parents #{[com.datomic/local com.datomic/client com.datomic/client-impl-shared]}, :paths ["/Users/she0001t/.m2/repository/com/cognitect/hmac-authn/0.1.211/hmac-authn-0.1.211.jar"]}, io.netty/netty-codec {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [io.netty/netty-handler-proxy io.netty/netty-handler io.netty/netty-codec-http io.netty/netty-codec-socks io.netty/netty-resolver-dns io.netty/netty-codec-http2 aleph/aleph io.netty/netty-codec-dns], :parents #{[aleph/aleph io.netty/netty-handler-proxy] [aleph/aleph io.netty/netty-handler] [aleph/aleph io.netty/netty-codec-http] [aleph/aleph io.netty/netty-handler-proxy io.netty/netty-codec-socks] [aleph/aleph io.netty/netty-resolver-dns] [aleph/aleph io.netty/netty-codec-http2] [aleph/aleph] [aleph/aleph io.netty/netty-resolver-dns io.netty/netty-codec-dns]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-codec/4.1.132.Final/netty-codec-4.1.132.Final.jar"]}, io.netty/netty-transport-classes-epoll {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [io.netty/netty-transport-native-epoll$linux-aarch_64 io.netty/netty-transport-native-epoll$linux-x86_64], :parents #{[aleph/aleph io.netty/netty-transport-native-epoll$linux-aarch_64] [aleph/aleph io.netty/netty-transport-native-epoll$linux-x86_64]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-transport-classes-epoll/4.1.132.Final/netty-transport-classes-epoll-4.1.132.Final.jar"]}, com.cognitect/anomalies {:mvn/version "0.1.12", :deps/manifest :mvn, :dependents [com.datomic/client com.datomic/local com.cognitect/hmac-authn com.datomic/client-impl-shared], :parents #{[com.datomic/local com.datomic/client] [com.datomic/local] [com.datomic/local com.datomic/client com.datomic/client-impl-shared com.cognitect/hmac-authn] [com.datomic/local com.datomic/client-impl-shared]}, :paths ["/Users/she0001t/.m2/repository/com/cognitect/anomalies/0.1.12/anomalies-0.1.12.jar"]}, com.googlecode.json-simple/json-simple {:mvn/version "1.1.1", :exclusions #{junit/junit}, :deps/manifest :mvn, :dependents [org.msgpack/msgpack], :parents #{[metosin/muuntaja com.cognitect/transit-clj com.cognitect/transit-java org.msgpack/msgpack]}, :paths ["/Users/she0001t/.m2/repository/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar"]}, io.netty/netty-transport-native-epoll$linux-aarch_64 {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [aleph/aleph], :parents #{[aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-transport-native-epoll/4.1.132.Final/netty-transport-native-epoll-4.1.132.Final-linux-aarch_64.jar"]}, org.clj-commons/dirigiste {:mvn/version "1.0.4", :deps/manifest :mvn, :dependents [aleph/aleph manifold/manifold], :parents #{[aleph/aleph] [aleph/aleph manifold/manifold]}, :paths ["/Users/she0001t/.m2/repository/org/clj-commons/dirigiste/1.0.4/dirigiste-1.0.4.jar"]}, io.netty/netty-codec-socks {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [io.netty/netty-handler-proxy], :parents #{[aleph/aleph io.netty/netty-handler-proxy]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-codec-socks/4.1.132.Final/netty-codec-socks-4.1.132.Final.jar"]}, io.netty/netty-buffer {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [io.netty/netty-handler-proxy io.netty/netty-transport-classes-epoll io.netty/netty-handler io.netty/netty-transport io.netty/netty-transport-native-epoll$linux-aarch_64 io.netty/netty-transport-native-kqueue$osx-x86_64 io.netty/netty-codec io.netty/netty-transport-classes-kqueue io.netty/netty-codec-http io.netty/netty-codec-socks io.netty/netty-resolver-dns io.netty/netty-codec-http2 io.netty/netty-transport-native-unix-common io.netty/netty-codec-dns io.netty/netty-transport-native-epoll$linux-x86_64], :parents #{[aleph/aleph io.netty/netty-handler-proxy] [aleph/aleph io.netty/netty-transport-native-epoll$linux-x86_64 io.netty/netty-transport-classes-epoll] [aleph/aleph io.netty/netty-handler] [aleph/aleph io.netty/netty-transport] [aleph/aleph io.netty/netty-transport-native-epoll$linux-aarch_64] [aleph/aleph io.netty/netty-transport-native-kqueue$osx-x86_64] [aleph/aleph io.netty/netty-codec] [aleph/aleph io.netty/netty-transport-native-kqueue$osx-x86_64 io.netty/netty-transport-classes-kqueue] [aleph/aleph io.netty/netty-codec-http] [aleph/aleph io.netty/netty-handler-proxy io.netty/netty-codec-socks] [aleph/aleph io.netty/netty-resolver-dns] [aleph/aleph io.netty/netty-codec-http2] [aleph/aleph io.netty/netty-transport-native-epoll$linux-x86_64 io.netty/netty-transport-native-unix-common] [aleph/aleph io.netty/netty-resolver-dns io.netty/netty-codec-dns] [aleph/aleph io.netty/netty-transport-native-epoll$linux-x86_64]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-buffer/4.1.132.Final/netty-buffer-4.1.132.Final.jar"]}, io.netty/netty-handler {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [io.netty/netty-codec-http io.netty/netty-resolver-dns io.netty/netty-codec-http2 aleph/aleph], :parents #{[aleph/aleph io.netty/netty-codec-http] [aleph/aleph io.netty/netty-resolver-dns] [aleph/aleph io.netty/netty-codec-http2] [aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-handler/4.1.132.Final/netty-handler-4.1.132.Final.jar"]}, commons-io/commons-io {:mvn/version "2.15.1", :deps/manifest :mvn, :dependents [com.datomic/local], :parents #{[com.datomic/local]}, :paths ["/Users/she0001t/.m2/repository/commons-io/commons-io/2.15.1/commons-io-2.15.1.jar"]}, fipp/fipp {:mvn/version "0.6.27", :deps/manifest :mvn, :dependents [metosin/malli], :parents #{[metosin/malli]}, :paths ["/Users/she0001t/.m2/repository/fipp/fipp/0.6.27/fipp-0.6.27.jar"]}, com.fasterxml.jackson.core/jackson-core {:mvn/version "2.18.2", :deps/manifest :mvn, :dependents [metosin/jsonista com.fasterxml.jackson.datatype/jackson-datatype-jsr310 com.fasterxml.jackson.core/jackson-databind], :parents #{[metosin/muuntaja metosin/jsonista] [metosin/muuntaja metosin/jsonista com.fasterxml.jackson.datatype/jackson-datatype-jsr310] [metosin/muuntaja metosin/jsonista com.fasterxml.jackson.core/jackson-databind]}, :paths ["/Users/she0001t/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.18.2/jackson-core-2.18.2.jar"]}, org.ow2.asm/asm {:mvn/version "9.2", :deps/manifest :mvn, :dependents [com.datomic/local org.clojure/tools.analyzer.jvm], :parents #{[com.datomic/local] [com.datomic/local org.clojure/tools.analyzer.jvm]}, :paths ["/Users/she0001t/.m2/repository/org/ow2/asm/asm/9.2/asm-9.2.jar"]}, aleph/aleph {:mvn/version "0.9.7", :deps/manifest :mvn, :parents #{[]}, :paths ["/Users/she0001t/.m2/repository/aleph/aleph/0.9.7/aleph-0.9.7.jar"]}, com.datomic/query-stats {:mvn/version "1.0.12", :deps/manifest :mvn, :dependents [com.datomic/local], :parents #{[com.datomic/local]}, :paths ["/Users/she0001t/.m2/repository/com/datomic/query-stats/1.0.12/query-stats-1.0.12.jar"]}, mvxcvi/arrangement {:mvn/version "2.1.0", :deps/manifest :mvn, :dependents [metosin/malli], :parents #{[metosin/malli]}, :paths ["/Users/she0001t/.m2/repository/mvxcvi/arrangement/2.1.0/arrangement-2.1.0.jar"]}, com.taoensso/truss {:mvn/version "2.1.0", :deps/manifest :mvn, :dependents [com.taoensso/encore], :parents #{[com.taoensso/telemere com.taoensso/encore]}, :paths ["/Users/she0001t/.m2/repository/com/taoensso/truss/2.1.0/truss-2.1.0.jar"]}, com.datomic/client {:mvn/version "1.0.138", :exclusions #{com.cognitect/http-client}, :deps/manifest :mvn, :dependents [com.datomic/local], :parents #{[com.datomic/local]}, :paths ["/Users/she0001t/.m2/repository/com/datomic/client/1.0.138/client-1.0.138.jar"]}, com.fasterxml.jackson.core/jackson-annotations {:mvn/version "2.18.2", :deps/manifest :mvn, :dependents [com.fasterxml.jackson.datatype/jackson-datatype-jsr310 com.fasterxml.jackson.core/jackson-databind], :parents #{[metosin/muuntaja metosin/jsonista com.fasterxml.jackson.datatype/jackson-datatype-jsr310] [metosin/muuntaja metosin/jsonista com.fasterxml.jackson.core/jackson-databind]}, :paths ["/Users/she0001t/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.18.2/jackson-annotations-2.18.2.jar"]}, riddley/riddley {:mvn/version "0.2.0", :deps/manifest :mvn, :dependents [manifold/manifold], :parents #{[aleph/aleph manifold/manifold]}, :paths ["/Users/she0001t/.m2/repository/riddley/riddley/0.2.0/riddley-0.2.0.jar"]}, org.javassist/javassist {:mvn/version "3.18.1-GA", :deps/manifest :mvn, :dependents [org.msgpack/msgpack], :parents #{[metosin/muuntaja com.cognitect/transit-clj com.cognitect/transit-java org.msgpack/msgpack]}, :paths ["/Users/she0001t/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar"]}, org.clj-commons/primitive-math {:mvn/version "1.0.1", :deps/manifest :mvn, :dependents [aleph/aleph], :parents #{[aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/org/clj-commons/primitive-math/1.0.1/primitive-math-1.0.1.jar"]}, environ/environ {:mvn/version "1.2.0", :deps/manifest :mvn, :parents #{[]}, :paths ["/Users/she0001t/.m2/repository/environ/environ/1.2.0/environ-1.2.0.jar"]}, io.netty/netty-transport-native-epoll$linux-x86_64 {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [aleph/aleph], :parents #{[aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-transport-native-epoll/4.1.132.Final/netty-transport-native-epoll-4.1.132.Final-linux-x86_64.jar"]}, borkdude/dynaload {:mvn/version "0.3.5", :deps/manifest :mvn, :dependents [metosin/malli], :parents #{[metosin/malli]}, :paths ["/Users/she0001t/.m2/repository/borkdude/dynaload/0.3.5/dynaload-0.3.5.jar"]}, org.msgpack/msgpack {:mvn/version "0.6.12", :deps/manifest :mvn, :dependents [com.cognitect/transit-java], :parents #{[metosin/muuntaja com.cognitect/transit-clj com.cognitect/transit-java]}, :paths ["/Users/she0001t/.m2/repository/org/msgpack/msgpack/0.6.12/msgpack-0.6.12.jar"]}, com.datomic/client-impl-shared {:mvn/version "1.0.106", :deps/manifest :mvn, :dependents [com.datomic/client com.datomic/local], :parents #{[com.datomic/local com.datomic/client] [com.datomic/local]}, :paths ["/Users/she0001t/.m2/repository/com/datomic/client-impl-shared/1.0.106/client-impl-shared-1.0.106.jar"]}, borkdude/edamame {:mvn/version "1.4.30", :deps/manifest :mvn, :dependents [metosin/malli], :parents #{[metosin/malli]}, :paths ["/Users/she0001t/.m2/repository/borkdude/edamame/1.4.30/edamame-1.4.30.jar"]}, metosin/malli {:mvn/version "0.18.0", :deps/manifest :mvn, :parents #{[]}, :paths ["/Users/she0001t/.m2/repository/metosin/malli/0.18.0/malli-0.18.0.jar"]}, com.cognitect/transit-clj {:mvn/version "1.0.333", :exclusions #{com.fasterxml.jackson.core/jackson-core}, :deps/manifest :mvn, :dependents [metosin/muuntaja com.datomic/client-impl-shared], :parents #{[metosin/muuntaja] [com.datomic/local com.datomic/client com.datomic/client-impl-shared]}, :paths ["/Users/she0001t/.m2/repository/com/cognitect/transit-clj/1.0.333/transit-clj-1.0.333.jar"]}, io.netty.incubator/netty-incubator-transport-native-io_uring$linux-x86_64 {:mvn/version "0.0.26.Final", :deps/manifest :mvn, :dependents [aleph/aleph], :parents #{[aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/io/netty/incubator/netty-incubator-transport-native-io_uring/0.0.26.Final/netty-incubator-transport-native-io_uring-0.0.26.Final-linux-x86_64.jar"]}, io.netty/netty-transport {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [io.netty/netty-handler-proxy io.netty/netty-transport-classes-epoll io.netty/netty-handler io.netty/netty-transport-native-epoll$linux-aarch_64 io.netty/netty-transport-native-kqueue$osx-x86_64 io.netty/netty-codec io.netty/netty-transport-classes-kqueue io.netty/netty-codec-http io.netty/netty-codec-socks io.netty/netty-resolver-dns io.netty/netty-codec-http2 aleph/aleph io.netty/netty-transport-native-unix-common io.netty/netty-codec-dns io.netty/netty-transport-native-epoll$linux-x86_64], :parents #{[aleph/aleph io.netty/netty-handler-proxy] [aleph/aleph io.netty/netty-transport-native-epoll$linux-x86_64 io.netty/netty-transport-classes-epoll] [aleph/aleph io.netty/netty-handler] [aleph/aleph io.netty/netty-transport-native-epoll$linux-aarch_64] [aleph/aleph io.netty/netty-transport-native-kqueue$osx-x86_64] [aleph/aleph io.netty/netty-codec] [aleph/aleph io.netty/netty-transport-native-kqueue$osx-x86_64 io.netty/netty-transport-classes-kqueue] [aleph/aleph io.netty/netty-codec-http] [aleph/aleph io.netty/netty-handler-proxy io.netty/netty-codec-socks] [aleph/aleph io.netty/netty-resolver-dns] [aleph/aleph io.netty/netty-codec-http2] [aleph/aleph] [aleph/aleph io.netty/netty-transport-native-epoll$linux-x86_64 io.netty/netty-transport-native-unix-common] [aleph/aleph io.netty/netty-resolver-dns io.netty/netty-codec-dns] [aleph/aleph io.netty/netty-transport-native-epoll$linux-x86_64]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-transport/4.1.132.Final/netty-transport-4.1.132.Final.jar"]}, com.datomic/query-support {:mvn/version "0.8.28", :deps/manifest :mvn, :dependents [com.datomic/client com.datomic/local], :parents #{[com.datomic/local com.datomic/client] [com.datomic/local]}, :paths ["/Users/she0001t/.m2/repository/com/datomic/query-support/0.8.28/query-support-0.8.28.jar"]}, org.clj-commons/byte-streams {:mvn/version "0.3.4", :deps/manifest :mvn, :parents #{[]}, :paths ["/Users/she0001t/.m2/repository/org/clj-commons/byte-streams/0.3.4/byte-streams-0.3.4.jar"]}, org.fressian/fressian {:mvn/version "0.6.8", :deps/manifest :mvn, :dependents [com.datomic/local], :parents #{[com.datomic/local]}, :paths ["/Users/she0001t/.m2/repository/org/fressian/fressian/0.6.8/fressian-0.6.8.jar"]}, io.netty/netty-transport-native-unix-common {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [io.netty/netty-transport-classes-epoll io.netty/netty-handler io.netty/netty-transport-native-epoll$linux-aarch_64 io.netty/netty-transport-native-kqueue$osx-x86_64 io.netty/netty-transport-classes-kqueue io.netty/netty-transport-native-epoll$linux-x86_64], :parents #{[aleph/aleph io.netty/netty-transport-native-epoll$linux-x86_64 io.netty/netty-transport-classes-epoll] [aleph/aleph io.netty/netty-handler] [aleph/aleph io.netty/netty-transport-native-epoll$linux-aarch_64] [aleph/aleph io.netty/netty-transport-native-kqueue$osx-x86_64] [aleph/aleph io.netty/netty-transport-native-kqueue$osx-x86_64 io.netty/netty-transport-classes-kqueue] [aleph/aleph io.netty/netty-transport-native-epoll$linux-x86_64]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.132.Final/netty-transport-native-unix-common-4.1.132.Final.jar"]}, io.netty/netty-codec-dns {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [io.netty/netty-resolver-dns], :parents #{[aleph/aleph io.netty/netty-resolver-dns]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-codec-dns/4.1.132.Final/netty-codec-dns-4.1.132.Final.jar"]}, io.netty/netty-codec-http {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [io.netty/netty-handler-proxy io.netty/netty-codec-http2 aleph/aleph], :parents #{[aleph/aleph io.netty/netty-handler-proxy] [aleph/aleph io.netty/netty-codec-http2] [aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-codec-http/4.1.132.Final/netty-codec-http-4.1.132.Final.jar"]}, org.clojure/core.rrb-vector {:mvn/version "0.1.2", :deps/manifest :mvn, :dependents [fipp/fipp], :parents #{[metosin/malli fipp/fipp]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/core.rrb-vector/0.1.2/core.rrb-vector-0.1.2.jar"]}, org.checkerframework/checker-qual {:mvn/version "3.1.0", :deps/manifest :mvn, :dependents [com.datomic/local com.github.ben-manes.caffeine/caffeine], :parents #{[com.datomic/local] [com.datomic/local com.github.ben-manes.caffeine/caffeine]}, :paths ["/Users/she0001t/.m2/repository/org/checkerframework/checker-qual/3.1.0/checker-qual-3.1.0.jar"]}, org.clojure/tools.reader {:mvn/version "1.5.2", :deps/manifest :mvn, :dependents [borkdude/edamame com.taoensso/encore], :parents #{[metosin/malli borkdude/edamame] [com.taoensso/telemere com.taoensso/encore]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/tools.reader/1.5.2/tools.reader-1.5.2.jar"]}, potemkin/potemkin {:mvn/version "0.4.8", :deps/manifest :mvn, :dependents [aleph/aleph], :parents #{[aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/potemkin/potemkin/0.4.8/potemkin-0.4.8.jar"]}, io.netty/netty-resolver {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [io.netty/netty-handler io.netty/netty-transport io.netty/netty-resolver-dns aleph/aleph], :parents #{[aleph/aleph io.netty/netty-handler] [aleph/aleph io.netty/netty-transport] [aleph/aleph io.netty/netty-resolver-dns] [aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-resolver/4.1.132.Final/netty-resolver-4.1.132.Final.jar"]}, org.clojure/test.check {:mvn/version "1.1.1", :deps/manifest :mvn, :dependents [metosin/malli], :parents #{[metosin/malli]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/test.check/1.1.1/test.check-1.1.1.jar"]}, io.netty/netty-resolver-dns {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [aleph/aleph], :parents #{[aleph/aleph]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-resolver-dns/4.1.132.Final/netty-resolver-dns-4.1.132.Final.jar"]}, metosin/jsonista {:mvn/version "0.3.13", :deps/manifest :mvn, :dependents [metosin/muuntaja], :parents #{[metosin/muuntaja]}, :paths ["/Users/she0001t/.m2/repository/metosin/jsonista/0.3.13/jsonista-0.3.13.jar"]}, io.netty/netty-transport-classes-kqueue {:mvn/version "4.1.132.Final", :deps/manifest :mvn, :dependents [io.netty/netty-transport-native-kqueue$osx-x86_64], :parents #{[aleph/aleph io.netty/netty-transport-native-kqueue$osx-x86_64]}, :paths ["/Users/she0001t/.m2/repository/io/netty/netty-transport-classes-kqueue/4.1.132.Final/netty-transport-classes-kqueue-4.1.132.Final.jar"]}, org.clojure/core.memoize {:mvn/version "1.0.253", :deps/manifest :mvn, :dependents [com.datomic/local org.clojure/tools.analyzer.jvm], :parents #{[com.datomic/local] [com.datomic/local org.clojure/tools.analyzer.jvm]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/core.memoize/1.0.253/core.memoize-1.0.253.jar"]}, org.clojure/data.priority-map {:mvn/version "1.1.0", :deps/manifest :mvn, :dependents [com.datomic/local org.clojure/core.cache], :parents #{[com.datomic/local] [com.datomic/local org.clojure/core.cache]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/data.priority-map/1.1.0/data.priority-map-1.1.0.jar"]}, com.github.ben-manes.caffeine/caffeine {:mvn/version "2.8.1", :deps/manifest :mvn, :dependents [com.datomic/local], :parents #{[com.datomic/local]}, :paths ["/Users/she0001t/.m2/repository/com/github/ben-manes/caffeine/caffeine/2.8.1/caffeine-2.8.1.jar"]}, org.clojure/core.cache {:mvn/version "1.0.225", :deps/manifest :mvn, :dependents [com.datomic/local org.clojure/core.memoize], :parents #{[com.datomic/local] [com.datomic/local org.clojure/core.memoize]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/core.cache/1.0.225/core.cache-1.0.225.jar"]}, com.datomic/io-stats {:mvn/version "1.0.12", :deps/manifest :mvn, :dependents [com.datomic/local], :parents #{[com.datomic/local]}, :paths ["/Users/she0001t/.m2/repository/com/datomic/io-stats/1.0.12/io-stats-1.0.12.jar"]}, org.clojure/core.async {:mvn/version "1.6.681", :deps/manifest :mvn, :dependents [com.datomic/client com.datomic/local com.datomic/client-api com.cognitect/hmac-authn com.datomic/client-impl-shared], :parents #{[com.datomic/local com.datomic/client] [com.datomic/local] [com.datomic/local com.datomic/client-api] [com.datomic/local com.datomic/client com.datomic/client-impl-shared com.cognitect/hmac-authn] [com.datomic/local com.datomic/client-impl-shared]}, :paths ["/Users/she0001t/.m2/repository/org/clojure/core.async/1.6.681/core.async-1.6.681.jar"]}, com.fasterxml.jackson.datatype/jackson-datatype-jsr310 {:mvn/version "2.18.2", :deps/manifest :mvn, :dependents [metosin/jsonista], :parents #{[metosin/muuntaja metosin/jsonista]}, :paths ["/Users/she0001t/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.18.2/jackson-datatype-jsr310-2.18.2.jar"]}, javax.xml.bind/jaxb-api {:mvn/version "2.4.0-b180830.0359", :deps/manifest :mvn, :dependents [com.cognitect/transit-java], :parents #{[metosin/muuntaja com.cognitect/transit-clj com.cognitect/transit-java]}, :paths ["/Users/she0001t/.m2/repository/javax/xml/bind/jaxb-api/2.4.0-b180830.0359/jaxb-api-2.4.0-b180830.0359.jar"]}, com.taoensso/telemere {:mvn/version "1.0.0", :deps/manifest :mvn, :parents #{[]}, :paths ["/Users/she0001t/.m2/repository/com/taoensso/telemere/1.0.0/telemere-1.0.0.jar"]}}, :classpath-roots ["src" "/Users/she0001t/.m2/repository/aleph/aleph/0.9.7/aleph-0.9.7.jar" "/Users/she0001t/.m2/repository/com/datomic/local/1.0.291/local-1.0.291.jar" "/Users/she0001t/.m2/repository/com/taoensso/telemere/1.0.0/telemere-1.0.0.jar" "/Users/she0001t/.m2/repository/environ/environ/1.2.0/environ-1.2.0.jar" "/Users/she0001t/.m2/repository/metosin/malli/0.18.0/malli-0.18.0.jar" "/Users/she0001t/.m2/repository/metosin/muuntaja/0.6.11/muuntaja-0.6.11.jar" "/Users/she0001t/.m2/repository/org/clj-commons/byte-streams/0.3.4/byte-streams-0.3.4.jar" "/Users/she0001t/.m2/repository/org/clojure/clojure/1.12.1/clojure-1.12.1.jar" "/Users/she0001t/.m2/repository/io/netty/netty-codec/4.1.132.Final/netty-codec-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-codec-http/4.1.132.Final/netty-codec-http-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-codec-http2/4.1.132.Final/netty-codec-http2-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-handler/4.1.132.Final/netty-handler-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-handler-proxy/4.1.132.Final/netty-handler-proxy-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-resolver/4.1.132.Final/netty-resolver-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-resolver-dns/4.1.132.Final/netty-resolver-dns-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-transport/4.1.132.Final/netty-transport-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-transport-native-epoll/4.1.132.Final/netty-transport-native-epoll-4.1.132.Final-linux-aarch_64.jar" "/Users/she0001t/.m2/repository/io/netty/netty-transport-native-epoll/4.1.132.Final/netty-transport-native-epoll-4.1.132.Final-linux-x86_64.jar" "/Users/she0001t/.m2/repository/io/netty/netty-transport-native-kqueue/4.1.132.Final/netty-transport-native-kqueue-4.1.132.Final-osx-x86_64.jar" "/Users/she0001t/.m2/repository/io/netty/incubator/netty-incubator-transport-native-io_uring/0.0.26.Final/netty-incubator-transport-native-io_uring-0.0.26.Final-linux-aarch_64.jar" "/Users/she0001t/.m2/repository/io/netty/incubator/netty-incubator-transport-native-io_uring/0.0.26.Final/netty-incubator-transport-native-io_uring-0.0.26.Final-linux-x86_64.jar" "/Users/she0001t/.m2/repository/manifold/manifold/0.5.0/manifold-0.5.0.jar" "/Users/she0001t/.m2/repository/org/clj-commons/dirigiste/1.0.4/dirigiste-1.0.4.jar" "/Users/she0001t/.m2/repository/org/clj-commons/primitive-math/1.0.1/primitive-math-1.0.1.jar" "/Users/she0001t/.m2/repository/org/clojure/tools.logging/1.3.1/tools.logging-1.3.1.jar" "/Users/she0001t/.m2/repository/potemkin/potemkin/0.4.8/potemkin-0.4.8.jar" "/Users/she0001t/.m2/repository/com/cognitect/anomalies/0.1.12/anomalies-0.1.12.jar" "/Users/she0001t/.m2/repository/com/datomic/client/1.0.138/client-1.0.138.jar" "/Users/she0001t/.m2/repository/com/datomic/client-api/1.0.69/client-api-1.0.69.jar" "/Users/she0001t/.m2/repository/com/datomic/client-impl-shared/1.0.106/client-impl-shared-1.0.106.jar" "/Users/she0001t/.m2/repository/com/datomic/io-stats/1.0.12/io-stats-1.0.12.jar" "/Users/she0001t/.m2/repository/com/datomic/query-stats/1.0.12/query-stats-1.0.12.jar" "/Users/she0001t/.m2/repository/com/datomic/query-support/0.8.28/query-support-0.8.28.jar" "/Users/she0001t/.m2/repository/com/github/ben-manes/caffeine/caffeine/2.8.1/caffeine-2.8.1.jar" "/Users/she0001t/.m2/repository/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" "/Users/she0001t/.m2/repository/commons-io/commons-io/2.15.1/commons-io-2.15.1.jar" "/Users/she0001t/.m2/repository/org/checkerframework/checker-qual/3.1.0/checker-qual-3.1.0.jar" "/Users/she0001t/.m2/repository/org/clojure/core.async/1.6.681/core.async-1.6.681.jar" "/Users/she0001t/.m2/repository/org/clojure/core.cache/1.0.225/core.cache-1.0.225.jar" "/Users/she0001t/.m2/repository/org/clojure/core.memoize/1.0.253/core.memoize-1.0.253.jar" "/Users/she0001t/.m2/repository/org/clojure/data.priority-map/1.1.0/data.priority-map-1.1.0.jar" "/Users/she0001t/.m2/repository/org/clojure/tools.analyzer/1.1.1/tools.analyzer-1.1.1.jar" "/Users/she0001t/.m2/repository/org/clojure/tools.analyzer.jvm/1.2.3/tools.analyzer.jvm-1.2.3.jar" "/Users/she0001t/.m2/repository/org/fressian/fressian/0.6.8/fressian-0.6.8.jar" "/Users/she0001t/.m2/repository/org/ow2/asm/asm/9.2/asm-9.2.jar" "/Users/she0001t/.m2/repository/com/taoensso/encore/3.145.0/encore-3.145.0.jar" "/Users/she0001t/.m2/repository/borkdude/dynaload/0.3.5/dynaload-0.3.5.jar" "/Users/she0001t/.m2/repository/borkdude/edamame/1.4.30/edamame-1.4.30.jar" "/Users/she0001t/.m2/repository/fipp/fipp/0.6.27/fipp-0.6.27.jar" "/Users/she0001t/.m2/repository/mvxcvi/arrangement/2.1.0/arrangement-2.1.0.jar" "/Users/she0001t/.m2/repository/org/clojure/test.check/1.1.1/test.check-1.1.1.jar" "/Users/she0001t/.m2/repository/com/cognitect/transit-clj/1.0.333/transit-clj-1.0.333.jar" "/Users/she0001t/.m2/repository/metosin/jsonista/0.3.13/jsonista-0.3.13.jar" "/Users/she0001t/.m2/repository/org/clojure/core.specs.alpha/0.4.74/core.specs.alpha-0.4.74.jar" "/Users/she0001t/.m2/repository/org/clojure/spec.alpha/0.5.238/spec.alpha-0.5.238.jar" "/Users/she0001t/.m2/repository/io/netty/netty-buffer/4.1.132.Final/netty-buffer-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-common/4.1.132.Final/netty-common-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.132.Final/netty-transport-native-unix-common-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-codec-socks/4.1.132.Final/netty-codec-socks-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-codec-dns/4.1.132.Final/netty-codec-dns-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-transport-classes-epoll/4.1.132.Final/netty-transport-classes-epoll-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/netty-transport-classes-kqueue/4.1.132.Final/netty-transport-classes-kqueue-4.1.132.Final.jar" "/Users/she0001t/.m2/repository/io/netty/incubator/netty-incubator-transport-classes-io_uring/0.0.26.Final/netty-incubator-transport-classes-io_uring-0.0.26.Final.jar" "/Users/she0001t/.m2/repository/riddley/riddley/0.2.0/riddley-0.2.0.jar" "/Users/she0001t/.m2/repository/com/taoensso/truss/2.1.0/truss-2.1.0.jar" "/Users/she0001t/.m2/repository/org/clojure/tools.reader/1.5.2/tools.reader-1.5.2.jar" "/Users/she0001t/.m2/repository/org/clojure/core.rrb-vector/0.1.2/core.rrb-vector-0.1.2.jar" "/Users/she0001t/.m2/repository/com/cognitect/transit-java/1.0.371/transit-java-1.0.371.jar" "/Users/she0001t/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.18.2/jackson-core-2.18.2.jar" "/Users/she0001t/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.18.2/jackson-databind-2.18.2.jar" "/Users/she0001t/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.18.2/jackson-datatype-jsr310-2.18.2.jar" "/Users/she0001t/.m2/repository/com/cognitect/hmac-authn/0.1.211/hmac-authn-0.1.211.jar" "/Users/she0001t/.m2/repository/javax/xml/bind/jaxb-api/2.4.0-b180830.0359/jaxb-api-2.4.0-b180830.0359.jar" "/Users/she0001t/.m2/repository/org/msgpack/msgpack/0.6.12/msgpack-0.6.12.jar" "/Users/she0001t/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.18.2/jackson-annotations-2.18.2.jar" "/Users/she0001t/.m2/repository/commons-codec/commons-codec/1.16.0/commons-codec-1.16.0.jar" "/Users/she0001t/.m2/repository/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar" "/Users/she0001t/.m2/repository/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar" "/Users/she0001t/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar"], :classpath {"/Users/she0001t/.m2/repository/com/datomic/client/1.0.138/client-1.0.138.jar" {:lib-name com.datomic/client}, "/Users/she0001t/.m2/repository/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar" {:lib-name javax.activation/javax.activation-api}, "/Users/she0001t/.m2/repository/io/netty/netty-common/4.1.132.Final/netty-common-4.1.132.Final.jar" {:lib-name io.netty/netty-common}, "/Users/she0001t/.m2/repository/com/github/ben-manes/caffeine/caffeine/2.8.1/caffeine-2.8.1.jar" {:lib-name com.github.ben-manes.caffeine/caffeine}, "/Users/she0001t/.m2/repository/org/msgpack/msgpack/0.6.12/msgpack-0.6.12.jar" {:lib-name org.msgpack/msgpack}, "/Users/she0001t/.m2/repository/com/cognitect/transit-clj/1.0.333/transit-clj-1.0.333.jar" {:lib-name com.cognitect/transit-clj}, "/Users/she0001t/.m2/repository/io/netty/netty-buffer/4.1.132.Final/netty-buffer-4.1.132.Final.jar" {:lib-name io.netty/netty-buffer}, "/Users/she0001t/.m2/repository/manifold/manifold/0.5.0/manifold-0.5.0.jar" {:lib-name manifold/manifold}, "/Users/she0001t/.m2/repository/io/netty/incubator/netty-incubator-transport-classes-io_uring/0.0.26.Final/netty-incubator-transport-classes-io_uring-0.0.26.Final.jar" {:lib-name io.netty.incubator/netty-incubator-transport-classes-io_uring}, "/Users/she0001t/.m2/repository/org/clojure/clojure/1.12.1/clojure-1.12.1.jar" {:lib-name org.clojure/clojure}, "/Users/she0001t/.m2/repository/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar" {:lib-name com.googlecode.json-simple/json-simple}, "/Users/she0001t/.m2/repository/org/clojure/core.memoize/1.0.253/core.memoize-1.0.253.jar" {:lib-name org.clojure/core.memoize}, "/Users/she0001t/.m2/repository/io/netty/netty-codec-http/4.1.132.Final/netty-codec-http-4.1.132.Final.jar" {:lib-name io.netty/netty-codec-http}, "/Users/she0001t/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar" {:lib-name org.javassist/javassist}, "/Users/she0001t/.m2/repository/org/clj-commons/primitive-math/1.0.1/primitive-math-1.0.1.jar" {:lib-name org.clj-commons/primitive-math}, "/Users/she0001t/.m2/repository/potemkin/potemkin/0.4.8/potemkin-0.4.8.jar" {:lib-name potemkin/potemkin}, "/Users/she0001t/.m2/repository/org/clojure/core.specs.alpha/0.4.74/core.specs.alpha-0.4.74.jar" {:lib-name org.clojure/core.specs.alpha}, "/Users/she0001t/.m2/repository/org/clojure/spec.alpha/0.5.238/spec.alpha-0.5.238.jar" {:lib-name org.clojure/spec.alpha}, "/Users/she0001t/.m2/repository/metosin/jsonista/0.3.13/jsonista-0.3.13.jar" {:lib-name metosin/jsonista}, "/Users/she0001t/.m2/repository/io/netty/netty-transport-native-epoll/4.1.132.Final/netty-transport-native-epoll-4.1.132.Final-linux-aarch_64.jar" {:lib-name io.netty/netty-transport-native-epoll$linux-aarch_64}, "/Users/she0001t/.m2/repository/com/datomic/query-support/0.8.28/query-support-0.8.28.jar" {:lib-name com.datomic/query-support}, "/Users/she0001t/.m2/repository/org/clojure/tools.analyzer/1.1.1/tools.analyzer-1.1.1.jar" {:lib-name org.clojure/tools.analyzer}, "/Users/she0001t/.m2/repository/environ/environ/1.2.0/environ-1.2.0.jar" {:lib-name environ/environ}, "/Users/she0001t/.m2/repository/org/clj-commons/dirigiste/1.0.4/dirigiste-1.0.4.jar" {:lib-name org.clj-commons/dirigiste}, "/Users/she0001t/.m2/repository/org/fressian/fressian/0.6.8/fressian-0.6.8.jar" {:lib-name org.fressian/fressian}, "/Users/she0001t/.m2/repository/io/netty/incubator/netty-incubator-transport-native-io_uring/0.0.26.Final/netty-incubator-transport-native-io_uring-0.0.26.Final-linux-aarch_64.jar" {:lib-name io.netty.incubator/netty-incubator-transport-native-io_uring$linux-aarch_64}, "/Users/she0001t/.m2/repository/fipp/fipp/0.6.27/fipp-0.6.27.jar" {:lib-name fipp/fipp}, "/Users/she0001t/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.132.Final/netty-transport-native-unix-common-4.1.132.Final.jar" {:lib-name io.netty/netty-transport-native-unix-common}, "/Users/she0001t/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.18.2/jackson-annotations-2.18.2.jar" {:lib-name com.fasterxml.jackson.core/jackson-annotations}, "/Users/she0001t/.m2/repository/mvxcvi/arrangement/2.1.0/arrangement-2.1.0.jar" {:lib-name mvxcvi/arrangement}, "/Users/she0001t/.m2/repository/metosin/malli/0.18.0/malli-0.18.0.jar" {:lib-name metosin/malli}, "/Users/she0001t/.m2/repository/org/clojure/tools.analyzer.jvm/1.2.3/tools.analyzer.jvm-1.2.3.jar" {:lib-name org.clojure/tools.analyzer.jvm}, "/Users/she0001t/.m2/repository/com/datomic/query-stats/1.0.12/query-stats-1.0.12.jar" {:lib-name com.datomic/query-stats}, "/Users/she0001t/.m2/repository/io/netty/netty-codec-dns/4.1.132.Final/netty-codec-dns-4.1.132.Final.jar" {:lib-name io.netty/netty-codec-dns}, "/Users/she0001t/.m2/repository/org/clojure/core.async/1.6.681/core.async-1.6.681.jar" {:lib-name org.clojure/core.async}, "src" {:path-key :paths}, "/Users/she0001t/.m2/repository/com/datomic/local/1.0.291/local-1.0.291.jar" {:lib-name com.datomic/local}, "/Users/she0001t/.m2/repository/io/netty/netty-transport-native-epoll/4.1.132.Final/netty-transport-native-epoll-4.1.132.Final-linux-x86_64.jar" {:lib-name io.netty/netty-transport-native-epoll$linux-x86_64}, "/Users/she0001t/.m2/repository/io/netty/netty-handler/4.1.132.Final/netty-handler-4.1.132.Final.jar" {:lib-name io.netty/netty-handler}, "/Users/she0001t/.m2/repository/com/taoensso/telemere/1.0.0/telemere-1.0.0.jar" {:lib-name com.taoensso/telemere}, "/Users/she0001t/.m2/repository/io/netty/netty-handler-proxy/4.1.132.Final/netty-handler-proxy-4.1.132.Final.jar" {:lib-name io.netty/netty-handler-proxy}, "/Users/she0001t/.m2/repository/io/netty/netty-codec/4.1.132.Final/netty-codec-4.1.132.Final.jar" {:lib-name io.netty/netty-codec}, "/Users/she0001t/.m2/repository/borkdude/edamame/1.4.30/edamame-1.4.30.jar" {:lib-name borkdude/edamame}, "/Users/she0001t/.m2/repository/org/clojure/core.cache/1.0.225/core.cache-1.0.225.jar" {:lib-name org.clojure/core.cache}, "/Users/she0001t/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.18.2/jackson-core-2.18.2.jar" {:lib-name com.fasterxml.jackson.core/jackson-core}, "/Users/she0001t/.m2/repository/org/clojure/tools.logging/1.3.1/tools.logging-1.3.1.jar" {:lib-name org.clojure/tools.logging}, "/Users/she0001t/.m2/repository/io/netty/netty-codec-http2/4.1.132.Final/netty-codec-http2-4.1.132.Final.jar" {:lib-name io.netty/netty-codec-http2}, "/Users/she0001t/.m2/repository/org/clj-commons/byte-streams/0.3.4/byte-streams-0.3.4.jar" {:lib-name org.clj-commons/byte-streams}, "/Users/she0001t/.m2/repository/commons-codec/commons-codec/1.16.0/commons-codec-1.16.0.jar" {:lib-name commons-codec/commons-codec}, "/Users/she0001t/.m2/repository/org/ow2/asm/asm/9.2/asm-9.2.jar" {:lib-name org.ow2.asm/asm}, "/Users/she0001t/.m2/repository/io/netty/incubator/netty-incubator-transport-native-io_uring/0.0.26.Final/netty-incubator-transport-native-io_uring-0.0.26.Final-linux-x86_64.jar" {:lib-name io.netty.incubator/netty-incubator-transport-native-io_uring$linux-x86_64}, "/Users/she0001t/.m2/repository/org/clojure/tools.reader/1.5.2/tools.reader-1.5.2.jar" {:lib-name org.clojure/tools.reader}, "/Users/she0001t/.m2/repository/commons-io/commons-io/2.15.1/commons-io-2.15.1.jar" {:lib-name commons-io/commons-io}, "/Users/she0001t/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.18.2/jackson-datatype-jsr310-2.18.2.jar" {:lib-name com.fasterxml.jackson.datatype/jackson-datatype-jsr310}, "/Users/she0001t/.m2/repository/borkdude/dynaload/0.3.5/dynaload-0.3.5.jar" {:lib-name borkdude/dynaload}, "/Users/she0001t/.m2/repository/org/checkerframework/checker-qual/3.1.0/checker-qual-3.1.0.jar" {:lib-name org.checkerframework/checker-qual}, "/Users/she0001t/.m2/repository/com/datomic/client-impl-shared/1.0.106/client-impl-shared-1.0.106.jar" {:lib-name com.datomic/client-impl-shared}, "/Users/she0001t/.m2/repository/org/clojure/data.priority-map/1.1.0/data.priority-map-1.1.0.jar" {:lib-name org.clojure/data.priority-map}, "/Users/she0001t/.m2/repository/io/netty/netty-codec-socks/4.1.132.Final/netty-codec-socks-4.1.132.Final.jar" {:lib-name io.netty/netty-codec-socks}, "/Users/she0001t/.m2/repository/com/cognitect/anomalies/0.1.12/anomalies-0.1.12.jar" {:lib-name com.cognitect/anomalies}, "/Users/she0001t/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.18.2/jackson-databind-2.18.2.jar" {:lib-name com.fasterxml.jackson.core/jackson-databind}, "/Users/she0001t/.m2/repository/io/netty/netty-transport-classes-kqueue/4.1.132.Final/netty-transport-classes-kqueue-4.1.132.Final.jar" {:lib-name io.netty/netty-transport-classes-kqueue}, "/Users/she0001t/.m2/repository/aleph/aleph/0.9.7/aleph-0.9.7.jar" {:lib-name aleph/aleph}, "/Users/she0001t/.m2/repository/javax/xml/bind/jaxb-api/2.4.0-b180830.0359/jaxb-api-2.4.0-b180830.0359.jar" {:lib-name javax.xml.bind/jaxb-api}, "/Users/she0001t/.m2/repository/io/netty/netty-resolver/4.1.132.Final/netty-resolver-4.1.132.Final.jar" {:lib-name io.netty/netty-resolver}, "/Users/she0001t/.m2/repository/io/netty/netty-transport/4.1.132.Final/netty-transport-4.1.132.Final.jar" {:lib-name io.netty/netty-transport}, "/Users/she0001t/.m2/repository/com/cognitect/transit-java/1.0.371/transit-java-1.0.371.jar" {:lib-name com.cognitect/transit-java}, "/Users/she0001t/.m2/repository/io/netty/netty-resolver-dns/4.1.132.Final/netty-resolver-dns-4.1.132.Final.jar" {:lib-name io.netty/netty-resolver-dns}, "/Users/she0001t/.m2/repository/metosin/muuntaja/0.6.11/muuntaja-0.6.11.jar" {:lib-name metosin/muuntaja}, "/Users/she0001t/.m2/repository/com/taoensso/truss/2.1.0/truss-2.1.0.jar" {:lib-name com.taoensso/truss}, "/Users/she0001t/.m2/repository/io/netty/netty-transport-native-kqueue/4.1.132.Final/netty-transport-native-kqueue-4.1.132.Final-osx-x86_64.jar" {:lib-name io.netty/netty-transport-native-kqueue$osx-x86_64}, "/Users/she0001t/.m2/repository/riddley/riddley/0.2.0/riddley-0.2.0.jar" {:lib-name riddley/riddley}, "/Users/she0001t/.m2/repository/org/clojure/core.rrb-vector/0.1.2/core.rrb-vector-0.1.2.jar" {:lib-name org.clojure/core.rrb-vector}, "/Users/she0001t/.m2/repository/com/taoensso/encore/3.145.0/encore-3.145.0.jar" {:lib-name com.taoensso/encore}, "/Users/she0001t/.m2/repository/com/datomic/io-stats/1.0.12/io-stats-1.0.12.jar" {:lib-name com.datomic/io-stats}, "/Users/she0001t/.m2/repository/com/cognitect/hmac-authn/0.1.211/hmac-authn-0.1.211.jar" {:lib-name com.cognitect/hmac-authn}, "/Users/she0001t/.m2/repository/io/netty/netty-transport-classes-epoll/4.1.132.Final/netty-transport-classes-epoll-4.1.132.Final.jar" {:lib-name io.netty/netty-transport-classes-epoll}, "/Users/she0001t/.m2/repository/org/clojure/test.check/1.1.1/test.check-1.1.1.jar" {:lib-name org.clojure/test.check}, "/Users/she0001t/.m2/repository/com/datomic/client-api/1.0.69/client-api-1.0.69.jar" {:lib-name com.datomic/client-api}, "/Users/she0001t/.m2/repository/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar" {:lib-name com.google.errorprone/error_prone_annotations}}, :basis-config {:project "deps.edn", :user "/Users/she0001t/.clojure/deps.edn", :extra nil, :args nil}} \ No newline at end of file diff --git a/backend/.cpcache/82615333.cp b/backend/.cpcache/82615333.cp new file mode 100644 index 0000000..4238e00 --- /dev/null +++ b/backend/.cpcache/82615333.cp @@ -0,0 +1 @@ +src:/Users/she0001t/.m2/repository/aleph/aleph/0.9.7/aleph-0.9.7.jar:/Users/she0001t/.m2/repository/com/datomic/local/1.0.291/local-1.0.291.jar:/Users/she0001t/.m2/repository/com/taoensso/telemere/1.0.0/telemere-1.0.0.jar:/Users/she0001t/.m2/repository/environ/environ/1.2.0/environ-1.2.0.jar:/Users/she0001t/.m2/repository/metosin/malli/0.18.0/malli-0.18.0.jar:/Users/she0001t/.m2/repository/metosin/muuntaja/0.6.11/muuntaja-0.6.11.jar:/Users/she0001t/.m2/repository/org/clj-commons/byte-streams/0.3.4/byte-streams-0.3.4.jar:/Users/she0001t/.m2/repository/org/clojure/clojure/1.12.1/clojure-1.12.1.jar:/Users/she0001t/.m2/repository/io/netty/netty-codec/4.1.132.Final/netty-codec-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-codec-http/4.1.132.Final/netty-codec-http-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-codec-http2/4.1.132.Final/netty-codec-http2-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-handler/4.1.132.Final/netty-handler-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-handler-proxy/4.1.132.Final/netty-handler-proxy-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-resolver/4.1.132.Final/netty-resolver-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-resolver-dns/4.1.132.Final/netty-resolver-dns-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-transport/4.1.132.Final/netty-transport-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-transport-native-epoll/4.1.132.Final/netty-transport-native-epoll-4.1.132.Final-linux-aarch_64.jar:/Users/she0001t/.m2/repository/io/netty/netty-transport-native-epoll/4.1.132.Final/netty-transport-native-epoll-4.1.132.Final-linux-x86_64.jar:/Users/she0001t/.m2/repository/io/netty/netty-transport-native-kqueue/4.1.132.Final/netty-transport-native-kqueue-4.1.132.Final-osx-x86_64.jar:/Users/she0001t/.m2/repository/io/netty/incubator/netty-incubator-transport-native-io_uring/0.0.26.Final/netty-incubator-transport-native-io_uring-0.0.26.Final-linux-aarch_64.jar:/Users/she0001t/.m2/repository/io/netty/incubator/netty-incubator-transport-native-io_uring/0.0.26.Final/netty-incubator-transport-native-io_uring-0.0.26.Final-linux-x86_64.jar:/Users/she0001t/.m2/repository/manifold/manifold/0.5.0/manifold-0.5.0.jar:/Users/she0001t/.m2/repository/org/clj-commons/dirigiste/1.0.4/dirigiste-1.0.4.jar:/Users/she0001t/.m2/repository/org/clj-commons/primitive-math/1.0.1/primitive-math-1.0.1.jar:/Users/she0001t/.m2/repository/org/clojure/tools.logging/1.3.1/tools.logging-1.3.1.jar:/Users/she0001t/.m2/repository/potemkin/potemkin/0.4.8/potemkin-0.4.8.jar:/Users/she0001t/.m2/repository/com/cognitect/anomalies/0.1.12/anomalies-0.1.12.jar:/Users/she0001t/.m2/repository/com/datomic/client/1.0.138/client-1.0.138.jar:/Users/she0001t/.m2/repository/com/datomic/client-api/1.0.69/client-api-1.0.69.jar:/Users/she0001t/.m2/repository/com/datomic/client-impl-shared/1.0.106/client-impl-shared-1.0.106.jar:/Users/she0001t/.m2/repository/com/datomic/io-stats/1.0.12/io-stats-1.0.12.jar:/Users/she0001t/.m2/repository/com/datomic/query-stats/1.0.12/query-stats-1.0.12.jar:/Users/she0001t/.m2/repository/com/datomic/query-support/0.8.28/query-support-0.8.28.jar:/Users/she0001t/.m2/repository/com/github/ben-manes/caffeine/caffeine/2.8.1/caffeine-2.8.1.jar:/Users/she0001t/.m2/repository/com/google/errorprone/error_prone_annotations/2.3.4/error_prone_annotations-2.3.4.jar:/Users/she0001t/.m2/repository/commons-io/commons-io/2.15.1/commons-io-2.15.1.jar:/Users/she0001t/.m2/repository/org/checkerframework/checker-qual/3.1.0/checker-qual-3.1.0.jar:/Users/she0001t/.m2/repository/org/clojure/core.async/1.6.681/core.async-1.6.681.jar:/Users/she0001t/.m2/repository/org/clojure/core.cache/1.0.225/core.cache-1.0.225.jar:/Users/she0001t/.m2/repository/org/clojure/core.memoize/1.0.253/core.memoize-1.0.253.jar:/Users/she0001t/.m2/repository/org/clojure/data.priority-map/1.1.0/data.priority-map-1.1.0.jar:/Users/she0001t/.m2/repository/org/clojure/tools.analyzer/1.1.1/tools.analyzer-1.1.1.jar:/Users/she0001t/.m2/repository/org/clojure/tools.analyzer.jvm/1.2.3/tools.analyzer.jvm-1.2.3.jar:/Users/she0001t/.m2/repository/org/fressian/fressian/0.6.8/fressian-0.6.8.jar:/Users/she0001t/.m2/repository/org/ow2/asm/asm/9.2/asm-9.2.jar:/Users/she0001t/.m2/repository/com/taoensso/encore/3.145.0/encore-3.145.0.jar:/Users/she0001t/.m2/repository/borkdude/dynaload/0.3.5/dynaload-0.3.5.jar:/Users/she0001t/.m2/repository/borkdude/edamame/1.4.30/edamame-1.4.30.jar:/Users/she0001t/.m2/repository/fipp/fipp/0.6.27/fipp-0.6.27.jar:/Users/she0001t/.m2/repository/mvxcvi/arrangement/2.1.0/arrangement-2.1.0.jar:/Users/she0001t/.m2/repository/org/clojure/test.check/1.1.1/test.check-1.1.1.jar:/Users/she0001t/.m2/repository/com/cognitect/transit-clj/1.0.333/transit-clj-1.0.333.jar:/Users/she0001t/.m2/repository/metosin/jsonista/0.3.13/jsonista-0.3.13.jar:/Users/she0001t/.m2/repository/org/clojure/core.specs.alpha/0.4.74/core.specs.alpha-0.4.74.jar:/Users/she0001t/.m2/repository/org/clojure/spec.alpha/0.5.238/spec.alpha-0.5.238.jar:/Users/she0001t/.m2/repository/io/netty/netty-buffer/4.1.132.Final/netty-buffer-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-common/4.1.132.Final/netty-common-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.132.Final/netty-transport-native-unix-common-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-codec-socks/4.1.132.Final/netty-codec-socks-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-codec-dns/4.1.132.Final/netty-codec-dns-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-transport-classes-epoll/4.1.132.Final/netty-transport-classes-epoll-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/netty-transport-classes-kqueue/4.1.132.Final/netty-transport-classes-kqueue-4.1.132.Final.jar:/Users/she0001t/.m2/repository/io/netty/incubator/netty-incubator-transport-classes-io_uring/0.0.26.Final/netty-incubator-transport-classes-io_uring-0.0.26.Final.jar:/Users/she0001t/.m2/repository/riddley/riddley/0.2.0/riddley-0.2.0.jar:/Users/she0001t/.m2/repository/com/taoensso/truss/2.1.0/truss-2.1.0.jar:/Users/she0001t/.m2/repository/org/clojure/tools.reader/1.5.2/tools.reader-1.5.2.jar:/Users/she0001t/.m2/repository/org/clojure/core.rrb-vector/0.1.2/core.rrb-vector-0.1.2.jar:/Users/she0001t/.m2/repository/com/cognitect/transit-java/1.0.371/transit-java-1.0.371.jar:/Users/she0001t/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.18.2/jackson-core-2.18.2.jar:/Users/she0001t/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.18.2/jackson-databind-2.18.2.jar:/Users/she0001t/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-jsr310/2.18.2/jackson-datatype-jsr310-2.18.2.jar:/Users/she0001t/.m2/repository/com/cognitect/hmac-authn/0.1.211/hmac-authn-0.1.211.jar:/Users/she0001t/.m2/repository/javax/xml/bind/jaxb-api/2.4.0-b180830.0359/jaxb-api-2.4.0-b180830.0359.jar:/Users/she0001t/.m2/repository/org/msgpack/msgpack/0.6.12/msgpack-0.6.12.jar:/Users/she0001t/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.18.2/jackson-annotations-2.18.2.jar:/Users/she0001t/.m2/repository/commons-codec/commons-codec/1.16.0/commons-codec-1.16.0.jar:/Users/she0001t/.m2/repository/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar:/Users/she0001t/.m2/repository/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar:/Users/she0001t/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar \ No newline at end of file diff --git a/backend/Dockerfile b/backend/Dockerfile deleted file mode 100644 index fcf2049..0000000 --- a/backend/Dockerfile +++ /dev/null @@ -1,44 +0,0 @@ -# Build stage -FROM golang:1.25-bookworm AS builder - -WORKDIR /app - -# Install dependencies including libenet-dev from Debian repos -RUN apt-get update && apt-get install -y --no-install-recommends \ - git \ - gcc \ - pkg-config \ - libenet-dev \ - sqlite3 \ - libsqlite3-dev \ - && rm -rf /var/lib/apt/lists/* - -# Copy go mod and sum files -COPY go.mod go.sum ./ - -# Download dependencies -RUN go mod download - -COPY ./*.go . - -# Enable CGO for go-sqlite3 and go-enet -ENV CGO_ENABLED=1 - -RUN go build -o main . - -# Runtime stage -FROM debian:bookworm-slim - -WORKDIR /app - -# Install runtime dependencies -RUN apt-get update && apt-get install -y --no-install-recommends \ - libenet7 \ - ca-certificates \ - && rm -rf /var/lib/apt/lists/* - -COPY --from=builder /app/main . - -EXPOSE 8095 - -CMD ["./main"] diff --git a/backend/deps.edn b/backend/deps.edn new file mode 100644 index 0000000..c4002fd --- /dev/null +++ b/backend/deps.edn @@ -0,0 +1,23 @@ +{:paths ["src"] + :deps { ;; db + com.datomic/local {:mvn/version "1.0.291"} + + ;; logging + com.taoensso/telemere {:mvn/version "1.0.0"} + + ;; environment variables + environ/environ {:mvn/version "1.2.0"} + + ;; json / schema validation + metosin/malli {:mvn/version "0.18.0"} + metosin/muuntaja {:mvn/version "0.6.11"} + + ;; networking - UDP/TCP/HTTP streaming + aleph/aleph {:mvn/version "0.9.7"} + org.clj-commons/byte-streams {:mvn/version "0.3.4"} + + org.clojure/clojure {:mvn/version "1.12.1"}} + :aliases + {;; Run with clj -T:build function-in-build + :build {:deps {io.github.clojure/tools.build {:git/tag "v0.10.9" :git/sha "e405aac"}} + :ns-default build}}} diff --git a/backend/dev.sh b/backend/dev.sh new file mode 100755 index 0000000..6a3e234 --- /dev/null +++ b/backend/dev.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# Watch for changes to .clj files and auto-restart the server +# fd -e clj: Find all files ending in .clj +# entr -r: Run the command when files change, -r flag restarts the command on re-trigger +# clojure: Clojure CLI +# -M: Use the main alias from deps.edn (if defined) +# -m game-server.main: Run the -main function from game-server.main namespace +fd -e clj | entr -r clojure -M -m game-server.main + diff --git a/backend/docker-compose.yml b/backend/docker-compose.yml deleted file mode 100644 index 205ae29..0000000 --- a/backend/docker-compose.yml +++ /dev/null @@ -1,8 +0,0 @@ -services: - backend: - build: - context: . - dockerfile: Dockerfile - container_name: love2d-backend-dev - ports: - - "8095:8095" diff --git a/backend/go.mod b/backend/go.mod deleted file mode 100644 index c426dd1..0000000 --- a/backend/go.mod +++ /dev/null @@ -1,16 +0,0 @@ -module love2d_backend - -go 1.25.0 - -require ( - github.com/codecat/go-libs v0.0.0-20210906174629-ffa6674c8e05 - github.com/mattn/go-sqlite3 v1.14.32 -) - -require ( - github.com/codecat/go-enet v0.0.0-20250728072647-ae229138f138 - github.com/fatih/color v1.19.0 // indirect - github.com/mattn/go-colorable v0.1.14 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - golang.org/x/sys v0.42.0 // indirect -) diff --git a/backend/go.sum b/backend/go.sum deleted file mode 100644 index 73aced8..0000000 --- a/backend/go.sum +++ /dev/null @@ -1,15 +0,0 @@ -github.com/codecat/go-enet v0.0.0-20250728072647-ae229138f138 h1:qQaqly9oVi84i4nLWmM551z7kcFZIy5koCLoPwCarGY= -github.com/codecat/go-enet v0.0.0-20250728072647-ae229138f138/go.mod h1:sXkhNvv8T1d/aPEwipUzk7rGWwGJ3uJST2P/Z0zE0L4= -github.com/codecat/go-libs v0.0.0-20210906174629-ffa6674c8e05 h1:JSfDXHJvrIpQ8Agy//yoIlGpfIprTCDUytmf68fd/Lc= -github.com/codecat/go-libs v0.0.0-20210906174629-ffa6674c8e05/go.mod h1:xJW98cHEb+Kbuu0qmoKzExh3blthZqojIYOFo27VgvE= -github.com/fatih/color v1.19.0 h1:Zp3PiM21/9Ld6FzSKyL5c/BULoe/ONr9KlbYVOfG8+w= -github.com/fatih/color v1.19.0/go.mod h1:zNk67I0ZUT1bEGsSGyCZYZNrHuTkJJB+r6Q9VuMi0LE= -github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= -github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-sqlite3 v1.14.32 h1:JD12Ag3oLy1zQA+BNn74xRgaBbdhbNIDYvQUEuuErjs= -github.com/mattn/go-sqlite3 v1.14.32/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo= -golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= diff --git a/backend/main.go b/backend/main.go deleted file mode 100644 index cd7a96d..0000000 --- a/backend/main.go +++ /dev/null @@ -1,76 +0,0 @@ -package main - -import ( - _ "embed" - "log/slog" - "os" - - enet "github.com/codecat/go-enet" - _ "github.com/mattn/go-sqlite3" -) - -func main() { - port := uint16(8095) - logger := slog.New(slog.NewJSONHandler(os.Stdout, nil)) - slog.SetDefault(logger) - - // Initialize enet - slog.Info("Initializing E-Net Server", "port", port) - enet.Initialize() - - // Create a host listening on 0.0.0.0:8095 - host, err := enet.NewHost(enet.NewListenAddress(port), 32, 1, 0, 0) - if err != nil { - slog.Error("Couldn't create host", "error", err) - return - } - slog.Info("Server started", "port", port) - - // The event loop - for true { - // Wait until the next event - ev := host.Service(1000) - - // Do nothing if we didn't get any event - if ev.GetType() == enet.EventNone { - continue - } - - switch ev.GetType() { - case enet.EventConnect: // A new peer has connected - slog.Info("New peer connected", "address", ev.GetPeer().GetAddress()) - - case enet.EventDisconnect: // A connected peer has disconnected - slog.Info("Peer disconnected", "address", ev.GetPeer().GetAddress()) - - case enet.EventReceive: // A peer sent us some data - // Get the packet - packet := ev.GetPacket() - - // We must destroy the packet when we're done with it - defer packet.Destroy() - - // Get the bytes in the packet - packetBytes := packet.GetData() - - // Respond "pong" to "ping" - if string(packetBytes) == "ping" { - ev.GetPeer().SendString("pong", ev.GetChannelID(), enet.PacketFlagReliable) - continue - } - - // Disconnect the peer if they say "bye" - if string(packetBytes) == "bye" { - slog.Info("Peer sent bye, disconnecting") - ev.GetPeer().Disconnect(0) - continue - } - } - } - - // Destroy the host when we're done with it - host.Destroy() - - // Uninitialize enet - enet.Deinitialize() -} diff --git a/backend/src/game_server/main.clj b/backend/src/game_server/main.clj new file mode 100644 index 0000000..e004fdd --- /dev/null +++ b/backend/src/game_server/main.clj @@ -0,0 +1,145 @@ +(ns game-server.main + (:require + [aleph.udp :as udp] + [manifold.stream :as s] + [clj-commons.byte-streams :as bs] + [taoensso.telemere :as t] + [clojure.pprint :refer [pprint]] + [clojure.string :as str]) + (:import (java.security MessageDigest)) + (:gen-class)) + +;; UDP examples +;; - https://gist.github.com/crosstyan/8a87ebdb0c23e549b1c75e9e4013ffa5 + +(def port 9999) +(def players (atom {})) ; client registry: {player-id {:host ... :port ...}} +(def games (atom {:by-id {} :all []})) + +;; Global socket reference for sending +(def server-socket (atom nil)) + +;; (defn parse-position-msg +;; "Parse: 'player-id:x:y' format" +;; [msg-str] +;; (try +;; (let [[player-id x y] (str/split msg-str #":")] +;; {:player-id (Integer/parseInt player-id) +;; :x (Double/parseDouble x) +;; :y (Double/parseDouble y)}) +;; (catch Exception e +;; (t/log! {:level :warn :data {:msg msg-str :error (str e)}} "Failed to parse message") +;; nil))) +;; + +;; (if waiting-game + ;; (swap! games (fn [state] + ;; (let ) + + ;; :by-id (assoc (:by-id state) player-id {:player-1 } + + ;; (-> (:by-id state) + ;; (assoc player-id waiting-game)) + ;; :waiting (disj (:waiting state) waiting-game) + ;; :all (conj (:all state) waiting-game) + ;; }))) + +;; (defn get-game-by-player-id [player-id] +;; (first (filter (fn [game] (or (= (:player-1 game) player-id) (= (:player-2 game) player-id))) @games))) + +;; (defn get-waiting-game [] +;; (first (filter (fn [game] (nil? (:player-2 game))) @games))) + +;; (defn join-waiting-game! [player-id other-player-id] +;; (if-let [waiting-game (get-game-by-player-id other-player-id)] +;; (swap! games update-in [(.indexOf @games waiting-game)] assoc :player-2 player-id) +;; (swap! games conj {:player-1 player-id :player-2 nil}))) + +(defn md5 [s] + (let [md (MessageDigest/getInstance "MD5") + digest (.digest md (.getBytes s))] + (apply str (map #(format "%02x" %) digest)))) + +(defn send-to-player + "Send a UDP packet to a player" + [player-id message] + (if-let [player (get @players player-id)] + (try + (s/put! @server-socket + {:host (:host player) + :port (:port player) + :message message}) + (catch Exception e + (t/log! {:level :warn :data {:player-id player-id :error (str e)}} "Failed to send to player"))) + (t/log! {:level :warn :data {:player-id player-id}} "Player not found"))) + +(defn join-game! [player-id] + (let [waiting-game + (some-> (first (filter (fn [game] (nil? (:player-2 game))) (@games :all))) + (assoc :player-2 player-id)) + other-player-id (:player-1 waiting-game) + new-game {:player-1 player-id :player-2 nil}] + (if waiting-game + (do + (swap! games (fn [state] + {:by-id + (-> (:by-id state) + (assoc player-id waiting-game) + (assoc other-player-id waiting-game)) + :all (map (fn [game] (if (= (:player-1 game) other-player-id) + waiting-game + game)) (:all state))})) + (send-to-player other-player-id "READY_TO_PLAY") + (send-to-player player-id "READY_TO_PLAY")) + (do + (swap! games (fn [state] + {:by-id (assoc (:by-id state) player-id new-game) + :all (conj (:all state) new-game)})) + (send-to-player player-id "WAIT"))))) + +(defn register-player! [host port] + (let [player-id (md5 (str host port))] + (swap! players assoc player-id {:host host :port port}) + (t/log! {:level :info :data {:player-id player-id}} "Player registered") + (join-game! player-id) + (pprint {:games @games :players @players}))) + +;; (defn broadcast-to-others [from-player-id position-data] +;; "Send position to all other players" +;; (let [other-players (dissoc @players from-player-id) +;; msg (str from-player-id ":" (:x position-data) ":" (:y position-data))] +;; (doseq [[pid _] other-players] +;; (send-to-player pid msg)))) + +(defn parse-packet [packet] + (let [host (-> packet (:sender) (bean) (:address) (bean) (:hostAddress)) + port (-> packet (:sender) (bean) (:port)) + vector-msg (-> packet (:message) (vec)) + string-msg (bs/to-string (:message packet)) + msg-parts (str/split string-msg #"#")] + {:host host + :port port + :msg (:message packet) + :msg-vec vector-msg + :msg-string string-msg + :msg-parts msg-parts})) + +(defn packet-consumer [packet] + (t/log! {:level :info :data {:packet packet}} "Consuming packet") + (case (first (:msg-parts packet)) + "REGISTER" (register-player! (:host packet) (:port packet)))) + +(defn start-server [port] + (let [socket @(udp/socket {:port port})] + (reset! server-socket socket) + (t/log! {:level :info :data {:port port}} "UDP server listening") + + (->> socket + (s/map parse-packet) + (s/consume packet-consumer)) + socket)) + +(defn -main [] + (t/log! {:level :info :data {:port port}} "Game server starting") + (start-server port) + @(promise)) ;; keep server running diff --git a/backend/test-server.sh b/backend/test-server.sh new file mode 100755 index 0000000..11d5bc0 --- /dev/null +++ b/backend/test-server.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# Simple UDP test script for the game server +# Sends registration and position updates to simulate two players + +HOST="localhost" +PORT=9999 + +echo "Testing game server at $HOST:$PORT" +echo "" + +# Helper to send UDP packet +send_udp() { + local msg="$1" + echo "Sending: $msg" + echo -n "$msg" | nc -u -w1 "$HOST" "$PORT" +} + +echo "=== Registering Player 1 ===" +send_udp "REGISTER" +nc -u -l 0.0.0.0 12345 +# sleep 0.5 + +# echo "" +# echo "=== Registering Player 2 ===" +# send_udp "register:2" +# sleep 0.5 + +# echo "" +# echo "=== Player 1 moving around ===" +# for i in {1..3}; do +# x=$((100 + i * 10)) +# y=$((200 + i * 5)) +# send_udp "1:$x:$y" +# sleep 0.3 +# done + +# echo "" +# echo "=== Player 2 moving around ===" +# for i in {1..3}; do +# x=$((300 - i * 10)) +# y=$((150 + i * 20)) +# send_udp "2:$x:$y" +# sleep 0.3 +# done + +echo "" +echo "Done!"