working on backend
continuous-integration/drone/push Build is failing Details

drone-setup
Override-6 2 years ago
parent 8c6eac8d94
commit b294037d6b

4
.gitignore vendored

@ -4,7 +4,7 @@ build
*/.gradle/
log
.bsp
*.sqlite
.$*
*.$*

@ -0,0 +1,27 @@
version = "3.6.1"
runner.dialect = "scala3"
assumeStandardLibraryStripMargin = true
newlines.source = keep
rewrite.scala3 {
convertToNewSyntax = yes
removeOptionalBraces = yes
}
align {
preset = some
openParenCallSite = false
stripMargin = true
}
continuationIndent {
callSite = 2
defnSite = 4
}
docstrings {
style = Asterisk
oneline = keep
wrap = no
}

@ -1,13 +0,0 @@
package org.tbasket.api.compute
import zio.ZIO
import zio.http.model.Status
import zio.http.{Request, Response}
trait APIRequestHandler {
def get: ZIO[Request, Throwable, Response] = ZIO.succeed(Response(Status.MethodNotAllowed))
def post: ZIO[Request, Throwable, Response] = ZIO.succeed(Response(Status.MethodNotAllowed))
}

@ -1,30 +1,33 @@
package org.tbasket
import io.getquill.{Literal, SqliteDialect}
import io.getquill.context.qzio.ZioContext
import org.tbasket.api.Endpoint
import org.tbasket.handler.IncrementHandler
import org.tbasket.handler.{IncrementHandler, LoginHandler}
import org.tbasket.auth.UserSessionHandler
import java.util.Properties
object EndpointSetup {
object EndpointSetup:
private final val EndpointPort = "endpoint.port"
private final val EndpointPortDefault = "48485"
def setupEndpoint(config: Properties): Endpoint = {
def setupEndpoint(config: Properties, db: ZioContext[SqliteDialect, Literal]): Endpoint =
Main.LOG.debug("Initializing API endpoint...")
val endpoint = createEndpoint(config)
endpoint.bind("counter")(IncrementHandler)
endpoint.bind("login")(new LoginHandler(sessions, db))
endpoint
}
private def createEndpoint(config: Properties): Endpoint = {
private def createEndpoint(config: Properties): Endpoint =
val port = config
.getProperty(EndpointPort, EndpointPortDefault) match {
.getProperty(EndpointPort, EndpointPortDefault) match
case s"$port" if port.toIntOption.isDefined => port.toInt
case v =>
throw new InternalBasketServerException(s"$EndpointPort property value is wrong: $v must be integer")
}
throw new InternalBasketServerException(
s"$EndpointPort property value is wrong: $v must be integer"
)
new Endpoint(port)
}
}

@ -2,7 +2,6 @@ package org.tbasket
/**
* exception thrown when an error occurs due to an external fault from the server.
* */
class ExternalBasketServerException(msg: String, cause: Throwable = null) extends Exception(msg, cause) {
}
*/
class ExternalBasketServerException(msg: String, cause: Throwable = null)
extends Exception(msg, cause) {}

@ -2,7 +2,6 @@ package org.tbasket
/**
* exception thrown when an error occurs due to an internal fault of the server or its maintainers.
* */
class InternalBasketServerException(msg: String, cause: Throwable = null) extends Exception(msg, cause) {
}
*/
class InternalBasketServerException(msg: String, cause: Throwable = null)
extends Exception(msg, cause) {}

@ -1,9 +1,8 @@
package org.tbasket
import org.apache.logging.log4j.LogManager
import org.tbasket.db.Database
import zio._
import zio.*
import java.lang
import java.nio.file.{Files, Path}
@ -12,30 +11,25 @@ import scala.io.StdIn
import scala.util.{Failure, Success}
import scala.util.control.NonFatal
object Main extends ZIOAppDefault {
object Main extends ZIOAppDefault:
final val LOG = LogManager.getLogger("Core")
override def run: ZIO[Main.Environment with ZIOAppArgs with Scope, Any, Any] = {
override def run: ZIO[Main.Environment with ZIOAppArgs with Scope, Any, Any] =
val config = retrieveConfig
val db = new Database(config)
EndpointSetup.setupEndpoint(config).run
.provide(db.layer)
}
EndpointSetup.setupEndpoint(config, db.layer).run
private def retrieveConfig: Properties = {
private def retrieveConfig: Properties =
val configFile = Path.of("server.properties")
if (Files.notExists(configFile)) {
if Files.notExists(configFile) then
val in = getClass.getResourceAsStream("/server.properties")
Files.writeString(configFile, new String(in.readAllBytes()))
}
val in = Files.newInputStream(configFile)
val properties = new Properties()
properties.load(in)
properties
}
// add a shutdown hook to log when the server is about to get killed
lang.Runtime.getRuntime.addShutdownHook(new Thread(() => LOG.info("Server shutdowns")))
}
lang.Runtime.getRuntime.addShutdownHook(new Thread(() =>
LOG.info("Server shutdowns")
))

@ -1,9 +1,7 @@
package org.tbasket.session
package org.tbasket.auth
import org.tbasket.db.schemas.User
import java.util.UUID
case class UserSession(user: User, token: UUID, expirationDate: Long) {
}
case class UserSession(user: User, token: UUID, expirationDate: Long)

@ -0,0 +1,11 @@
package org.tbasket.handler
import zio.ZIO
import zio.http.Body
import zio.json.ast.Json
import zio.json.ast.JsonCursor
object HandlerUtils {
def errorBody(errorType: String, msg: String) = Body.fromString(s"""{"error": $errorType,"msg": "$msg"}""")
}

@ -6,19 +6,16 @@ import zio.http.{Request, Response}
import java.util.concurrent.atomic.AtomicInteger
object IncrementHandler extends APIRequestHandler {
object IncrementHandler extends APIRequestHandler:
private val counter = new AtomicInteger(0)
def getCounter: Int = counter.get()
override def get(request: Request): Response = {
override def get(request: Request): Response =
Response.json(s"{\"value\": ${counter.get()}}")
}
override def post(request: Request): Response = {
override def post(request: Request): Response =
val i = counter.incrementAndGet()
Main.LOG.trace(s"Counter incremented : $i")
Response.ok
}
}

@ -1,45 +1,100 @@
package org.tbasket.handler
import io.getquill.*
import org.tbasket.api.compute.APIRequestHandler
import org.tbasket.db.Database.ctx._
import org.tbasket.db.Database.ctx.*
import org.tbasket.db.schemas.User
import org.tbasket.session.UserSessionHandler
import zio.{ZEnvironment, ZIO}
import zio.http.model.{Cookie, Headers, Status}
import zio.http.{Request, Response}
import zio.json._
import org.tbasket.auth.{UserSession, UserSessionHandler}
import zio.http.model.{Cookie, Header, Headers, Status}
import zio.http.{Body, Request, Response}
import zio.json.*
import zio.json.ast.Json.Str
import zio.json.ast.{Json, JsonCursor}
import zio.{ZEnvironment, ZIO}
import zio.*
import io.getquill.context.qzio.ZioContext
import org.tbasket.handler.HandlerUtils.errorBody
import org.tbasket.handler.LoginError.InvalidRequest
class LoginHandler(sessions: UserSessionHandler) extends APIRequestHandler {
import javax.sql.DataSource
import java.sql.SQLException
import java.util.UUID
private def getUser(json: Json): Either[String, User] = {
(for {
mail <- json.get[Str](JsonCursor.field("mail").isString).map(_.value)
password <- json.get[Str](JsonCursor.field("password").isString).map(_.value)
} yield quote { // TODO use argon2id
User.schema.filter(usr => usr.mailAddress == mail && usr.passwordHash == password.hashCode)
}).flatMap(_.nested.value.toRight("password or email incorrect"))
}
override def post: ZIO[Request, Throwable, Response] = ZIO.serviceWithZIO[Request] { r =>
r.body.asString
.map(_.fromJson[Json].flatMap(getUser) match {
case Left(err) => //if account not found or password mismatches
Response.json(Json.Obj("error" -> Json.Str(err)).toJson)
case Right(user) =>
val session = sessions.bind(user)
enum LoginError:
case TokenNotFound(token: UUID)
case UserNotFound(user: User)
case InvalidPassword
case InvalidRequest(msg: String, cause: String)
case InternalError(t: Throwable)
import LoginError.*
class LoginHandler(sessions: UserSessionHandler, ctx: ZioContext[SqliteDialect, Literal]) extends APIRequestHandler:
import ctx.*
private def getUser(json: Json): IO[LoginError, User] =
val r: ZIO[DataSource, LoginError, Option[User]] = for
mail <-
ZIO.fromEither(json.get[Str](JsonCursor.field("mail").isString).map(_.value))
.mapError(InvalidRequest("Missing or invalid field mail", _))
password <-
ZIO.fromEither(json.get[Str](JsonCursor.field("password").isString).map(_.value))
.mapError(InvalidRequest("Missing or invalid field password", _))
result <- run(quote { // TODO use argon2id
User.schema.filter(usr =>
usr.mailAddress == mail && usr.passwordHash == lift(password.hashCode)
)
}).mapError(InternalError.apply)
yield result.headOption
r.someOrFail(InvalidPassword).provideSome(ZLayer.succeed(ctx))
override def post(request: Request): URIO[Console, Response] =
val bindSession: ZIO[Console, LoginError, UserSession] =
for
body <- request
.body
.asString
.tapError(Console.printError(_))
.mapError(s => InvalidRequest("Wrong request body", s.getMessage)): IO[LoginError, String]
json <- ZIO.fromEither(body.fromJson[Json])
.mapError(InvalidRequest("Invalid JSON body", _)): IO[LoginError, Json]
user <- getUser(json): IO[LoginError, User]
session <- sessions.bind(user): IO[LoginError, UserSession]
yield session
bindSession.map { sess =>
Response(
status = Status.Found,
headers = Headers.location("/") ++ Headers.setCookie(
Cookie(
name = "token",
content = session.token.toString,
maxAge = Some(session.expirationDate)
))
status = Status.Ok,
body = Body.fromString(s"""{"token": "${sess.token}"}"""),
)
}
}.mapError {
case TokenNotFound(_) => Response(
status = Status.Unauthorized,
body = errorBody("unauthorized", "unknown token"),
headers = Headers(Headers.location("/login")) //send back caller to login panel
)
case UserNotFound(_) => Response(
status = Status.Unauthorized,
body = errorBody("unauthorized", "unknown user email"),
headers = Headers(Headers.location("/register")) //send back caller to register panel
)
case InvalidPassword => Response(
status = Status.Unauthorized,
body = errorBody("unauthorized", "invalid password")
)
case InvalidRequest(msg, cause) => Response(
status = Status.Unauthorized,
body = errorBody("wrong request", s"$cause: $msg")
)
case InternalError(_) => Response(
status = Status.InternalServerError,
body = errorBody("internal", "internal error, please contact support")
)
}
}

@ -1,52 +0,0 @@
package org.tbasket.session
import org.tbasket.db.schemas.User
import org.tbasket.session.UserSessionHandler.SessionLifespan
import java.time.{Duration, Instant}
import java.util.UUID
import scala.collection.mutable
object UserSessionHandler {
final val SessionLifespan = Duration.ofDays(31)
}
class UserSessionHandler {
private val sessionsUser = mutable.HashMap.empty[User, UserSession]
private val sessionsToken = mutable.HashMap.empty[UUID, UserSession]
def findSession(token: UUID): Option[UserSession] = {
sessionsToken.get(token) match {
case Some(session) if System.currentTimeMillis() > session.expirationDate =>
unbind(token) //session has expired, unbind session
None
case s => s
}
}
private def unbind(token: UUID): Unit = {
sessionsToken.remove(token)
.foreach(s => sessionsUser.remove(s.user))
}
private def unbind(user: User): Unit = {
sessionsUser.remove(user)
.foreach(s => sessionsToken.remove(s.token))
}
def bind(user: User): UserSession = {
if (sessionsUser.contains(user)) {
//if there was a session already bound, then remove it
unbind(user)
}
val uuid = UUID.randomUUID()
val limit = System.currentTimeMillis() + Instant.now().plus(SessionLifespan).toEpochMilli
val session = UserSession(user, uuid, limit)
sessionsUser.put(user, session)
sessionsToken.put(uuid, session)
session
}
}

@ -1,41 +0,0 @@
package org.tbasket.test
import io.circe.parser._
import org.junit.jupiter.api.{Assertions, Test}
import org.tbasket.handler.IncrementHandler
import zio.http.model.Status
import zio.http.{Body, Path, Request, URL}
class IncrementRequestHandler {
private val url = URL(Path.decode("counter"))
@Test
def testMakeIncrement(): Unit = {
val last = IncrementHandler.getCounter
val response = IncrementHandler.post(Request.post(Body.empty, url))
Assertions.assertEquals(response.status, Status.Ok)
Assertions.assertEquals(last + 1, IncrementHandler.getCounter)
}
@Test
def testGetIncrement(): Unit = {
val counter = IncrementHandler.getCounter
val response = IncrementHandler.get(Request.post(Body.empty, url))
for {
json <- response.body.asString
} yield parse(json) match {
case Left(failure) => Assertions.fail(s"returned json is invalid ($failure)")
case Right(json) =>
val valueJsons = json.findAllByKey("value")
Assertions.assertEquals(1, valueJsons.size)
val valueCounter = valueJsons.head.asNumber.get.toInt.get
Assertions.assertEquals(counter, valueCounter)
}
Assertions.assertEquals(response.status, Status.Ok)
Assertions.assertEquals(counter, IncrementHandler.getCounter)
}
}

@ -3,44 +3,33 @@ package org.tbasket.db
import io.getquill.context.ZioJdbc.{DataSourceLayer, QuillZioExt}
import io.getquill.{Literal, SqliteZioJdbcContext}
import org.sqlite.SQLiteDataSource
import org.tbasket.db.schemas.User
import zio._
import zio.console._
import zio.*
import java.io.Closeable
import java.util.Properties
import javax.sql
class Database(config: Properties) {
class Database(config: Properties):
private val source = new SQLiteDataSource() with Closeable {
private val source = new SQLiteDataSource() with Closeable:
override def close(): Unit = ()
}
source.setUrl(config.getProperty("database.url"))
val layer = DataSourceLayer.fromDataSource(source)
}
object Database {
object Database:
val ctx = new SqliteZioJdbcContext(Literal)
import ctx._
val app: ZIO[Console with Has[sql.DataSource with Closeable], Exception, Unit] =
for {
_ <- ctx.run(
quote {
liftQuery(List(User(4, "batista", "maxime", 788872465, "myemail@gmail.com")))
.foreach(r => User.schema.insert(r))
}
).onDS
result <- ctx.run(
quote(User.schema.filter(_.name == "batista"))
).onDS
_ <- putStrLn(s"result : $result")
} yield ()
import ctx.*
/* override def run = {
DataService.getPeople
.provide(
DataService.live,
Quill.Postgres.fromNamingStrategy(SnakeCase),
Quill.DataSource.fromPrefix("myDatabaseConfig")
)
.debug("Results")
.exitCode
}
*/

@ -1,18 +1,19 @@
package org.tbasket.db.schemas
import io.getquill.*
import org.tbasket.db.Database
case class Member(team: Team, user: User, admin: Boolean)
object Member {
object Member:
import Database.ctx._
import Database.ctx.*
val schema = quote {
querySchema[Member]("member",
querySchema[Member](
"member",
_.team.id -> "team_id",
_.user.id -> "user_id",
_.admin -> "is_admin"
)
}
}

@ -1,16 +1,19 @@
package org.tbasket.db.schemas
import io.getquill.*
import org.tbasket.db.Database
case class Tactic(id: Int, name: String, owner: User, filePath: String)
object Tactic {
import Database.ctx._
object Tactic:
import Database.ctx.*
val schema = quote {
querySchema[Tactic]("tactic",
querySchema[Tactic](
"tactic",
_.id -> "id",
_.name -> "name",
_.owner.id -> "owner_id",
_.filePath -> "file_path"
)
}
}

@ -1,17 +1,17 @@
package org.tbasket.db.schemas
import org.tbasket.db.Database
import io.getquill.*
case class Team(id: Int, name: String, clubName: String)
object Team {
import Database.ctx._
object Team:
import org.tbasket.db.Database.ctx.*
val schema = quote {
querySchema[Team]("team",
querySchema[Team](
"team",
_.id -> "id",
_.name -> "name",
_.clubName -> "club_name"
)
}
}

@ -1,23 +1,26 @@
package org.tbasket.db.schemas
import io.getquill.*
import org.tbasket.db.Database
case class User(id : Int,
case class User(
id: Int,
name: String,
forename: String,
passwordHash: Int,
mailAddress : String)
object User {
mailAddress: String
)
object User:
import Database.ctx._
import Database.ctx.*
val schema = quote {
querySchema[User]("user",
querySchema[User](
"user",
_.id -> "id",
_.name -> "name",
_.forename -> "forename",
_.passwordHash -> "password_hash",
_.mailAddress -> "mail_address",
_.mailAddress -> "mail_address"
)
}
}

@ -3,42 +3,43 @@ package org.tbasket.api
import org.apache.logging.log4j.LogManager
import org.tbasket.api.Endpoint.LOG
import org.tbasket.api.compute.APIRequestHandler
import zio._
import zio.*
import zio.http.ServerConfig.LeakDetectionLevel
import zio.http._
import zio.http.*
import zio.http.model.Method.{GET, POST}
import zio.http.model.Status
import scala.collection.mutable
class Endpoint(port: Int) {
class Endpoint(port: Int):
private val handlers = mutable.HashMap.empty[String, APIRequestHandler]
def bind(path: String)(handler: APIRequestHandler): Unit = {
def bind(path: String)(handler: APIRequestHandler): Unit =
handlers.put(path, handler)
}
// set generic required headers
private def transform(response: Response): Response = {
private def transform(response: Response): Response =
response.withAccessControlAllowOrigin("*")
}
private val app = Http.collectZIO[Request] {
case GET -> _ / path if handlers.contains(path) =>
handlers(path).get.map(transform)
case POST -> _ / path if handlers.contains(path) =>
handlers(path).post.map(transform)
case r@method -> path =>
val ipInsights = r.remoteAddress
.map(ip => s": request received from $ip.")
.getOrElse("")
LOG.error(s"Was unable to find a handler for request '$path' with method $method ${ipInsights}")
LOG.error(
s"Was unable to find a handler for request '$path' with method $method ${ipInsights}"
)
ZIO.succeed(Response(Status.NotFound))
}
val run = {
val run =
val config = ServerConfig.default
.port(port)
.leakDetection(LeakDetectionLevel.PARANOID)
@ -48,9 +49,6 @@ class Endpoint(port: Int) {
LOG.info(s"Listening API entries on $port")
ZIO.never
}.provideSome(configLayer, Server.live)
}
}
object Endpoint {
object Endpoint:
final val LOG = LogManager.getLogger("API")
}

@ -0,0 +1,13 @@
package org.tbasket.api.compute
import zio.*
import zio.http.model.Status
import zio.http.{Request, Response}
trait APIRequestHandler:
def get: Task[Response] =
ZIO.succeed(Response(Status.MethodNotAllowed))
def post: Task[Response] =
ZIO.succeed(Response(Status.MethodNotAllowed))

@ -1,31 +1,49 @@
import mill._, scalalib._
import mill._, scalalib._, scalafmt._
trait ServerModule extends ScalaModule {
override final def scalaVersion = "3.2.0"
}
trait ServerModule extends ScalaModule with ScalafmtModule {
object Core extends ServerModule {
//override def scalacOptions = Seq("-explain")
override final def scalaVersion = "3.2.0"
override def ivyDeps = Agg(
ivy"dev.zio::zio:2.0.6",
ivy"dev.zio::zio-test:2.0.6",
ivy"dev.zio::zio-json:0.4.2",
ivy"org.apache.logging.log4j:log4j-slf4j-impl:2.19.0"
)
}
object API extends ServerModule {
override def ivyDeps = Agg(
trait HttpModule extends ServerModule {
override def ivyDeps = super.ivyDeps() ++ Agg(
ivy"dev.zio::zio-http:0.0.3",
)
}
ivy"org.apache.logging.log4j:log4j-slf4j-impl:2.19.0"
/**
* Simple module whose only job is to generate JWT Tokens
* */
object JWTEmitter extends HttpModule
/**
* module that handles the REST API endpoint
* */
object Endpoint extends HttpModule
/**
* Business layer of a server
* */
object Core extends ServerModule {
override def ivyDeps = super.ivyDeps() ++ Agg(
ivy"dev.zio::zio-json:0.4.2",
)
override def moduleDeps = Seq(Endpoint, DB)
}
/**
* Database module
* */
object DB extends ServerModule {
override def ivyDeps = Agg(
override def ivyDeps = super.ivyDeps() ++ Agg(
ivy"io.getquill::quill-jdbc-zio:4.6.0",
ivy"org.apache.logging.log4j:log4j-slf4j-impl:2.19.0"
ivy"org.xerial:sqlite-jdbc:3.40.0.0",
)
}

@ -3,5 +3,5 @@
],
"valueHash": 473519988,
"inputsHash": -2087946531
"inputsHash": 2096529591
}

@ -1,9 +1,9 @@
{
"value": [
"ref:43882227:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/src/org/tbasket/api/Endpoint.scala",
"ref:d2f14845:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/src/org/tbasket/api/APIException.scala",
"ref:48e37309:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/src/org/tbasket/api/compute/APIRequestHandler.scala"
"ref:4fa6423d:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/src/org/tbasket/api/Endpoint.scala",
"ref:3564929d:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/src/org/tbasket/api/APIException.scala",
"ref:340cbac3:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/src/org/tbasket/api/compute/APIRequestHandler.scala"
],
"valueHash": 1005516331,
"inputsHash": -2048058361
"valueHash": -1333334074,
"inputsHash": -355541881
}

@ -1,7 +1,7 @@
{
"value": [
"ref:f4ab4dc0:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/src"
"ref:95490f6f:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/src"
],
"valueHash": -909178762,
"inputsHash": 1509044708
"valueHash": 1181484811,
"inputsHash": -2038904234
}

Binary file not shown.

@ -0,0 +1,8 @@
{
"value": {
"analysisFile": "/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/out/API/compile.dest/zinc",
"classes": "ref:c565ef4b:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/out/API/compile.dest/classes"
},
"valueHash": -557435500,
"inputsHash": -204597287
}

@ -1,20 +1,2 @@
[info] compiling 3 Scala sources to /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/out/API/compile.dest/classes ...
zio.http.Request
[error] -- Error: /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/src/org/tbasket/api/Endpoint.scala:50:21 
[error] 47 | Server.install(app).flatMap { port =>
[error] 48 | LOG.info(s"Listening API entries on $port")
[error] 49 | ZIO.never
[error] 50 | }.provideSome(configLayer, Server.live)
[error]  | ^
[error]  |
[error]  |
[error]  | ──── ZLAYER ERROR ────────────────────────────────────────────────────
[error]  |
[error]  | Please provide a layer for the following type:
[error]  |
[error]  | 1. zio.http.Request
[error]  | 
[error]  | ──────────────────────────────────────────────────────────────────────
[error]  |
[error] one error found
[info] compiling 1 Scala source to /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/out/API/compile.dest/classes ...
[info] done compiling

@ -1,9 +1,13 @@
{
"value": [
"ref:c984eca8:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/resources",
"qref:39a886be:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio_3/2.0.6/zio_3-2.0.6.jar",
"qref:786864fe:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-http_3/0.0.3/zio-http_3-0.0.3.jar",
"qref:ad6c0293:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-slf4j-impl/2.19.0/log4j-slf4j-impl-2.19.0.jar",
"qref:b5501cbb:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.2.0/scala3-library_3-3.2.0.jar",
"qref:c1a82478:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-internal-macros_3/2.0.6/zio-internal-macros_3-2.0.6.jar",
"qref:468513bd:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-stacktracer_3/2.0.6/zio-stacktracer_3-2.0.6.jar",
"qref:9cd8b0c5:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect_3/2.2.2/izumi-reflect_3-2.2.2.jar",
"qref:95c82ffd:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-http-logging_3/0.0.3/zio-http-logging_3-0.0.3.jar",
"qref:f4359597:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.82.Final/netty-codec-http-4.1.82.Final.jar",
"qref:be47dde4:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.82.Final/netty-handler-proxy-4.1.82.Final.jar",
@ -13,7 +17,6 @@
"qref:b29de332:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.82.Final/netty-transport-native-kqueue-4.1.82.Final.jar",
"qref:a078c663:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.82.Final/netty-transport-native-kqueue-4.1.82.Final-osx-x86_64.jar",
"qref:6c6216f9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.82.Final/netty-transport-native-kqueue-4.1.82.Final-osx-aarch_64.jar",
"qref:3a76b25e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio_3/2.0.3/zio_3-2.0.3.jar",
"qref:3146d8bf:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-streams_3/2.0.3/zio-streams_3-2.0.3.jar",
"qref:fd02770d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema_3/0.2.1/zio-schema_3-0.2.1.jar",
"qref:2fec96f9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema-json_3/0.2.1/zio-schema-json_3-0.2.1.jar",
@ -22,6 +25,7 @@
"qref:b7314c89:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar",
"qref:d4fc68fd:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.19.0/log4j-core-2.19.0.jar",
"qref:5c87fdc5:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar",
"qref:5eab0071:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect-thirdparty-boopickle-shaded_3/2.2.2/izumi-reflect-thirdparty-boopickle-shaded_3-2.2.2.jar",
"qref:141b2b3d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.82.Final/netty-common-4.1.82.Final.jar",
"qref:22aaaca7:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.82.Final/netty-buffer-4.1.82.Final.jar",
"qref:87d38de6:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.82.Final/netty-transport-4.1.82.Final.jar",
@ -31,20 +35,16 @@
"qref:32cee56e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.82.Final/netty-transport-native-unix-common-4.1.82.Final.jar",
"qref:89ac2f5e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.82.Final/netty-transport-classes-epoll-4.1.82.Final.jar",
"qref:1ec3ace8:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.82.Final/netty-transport-classes-kqueue-4.1.82.Final.jar",
"qref:2e57b31b:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-internal-macros_3/2.0.3/zio-internal-macros_3-2.0.3.jar",
"qref:de5b15b3:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-stacktracer_3/2.0.3/zio-stacktracer_3-2.0.3.jar",
"qref:b680016c:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect_3/2.2.0/izumi-reflect_3-2.2.0.jar",
"qref:68a6ff28:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema-macros_3/0.2.1/zio-schema-macros_3-0.2.1.jar",
"qref:823114a4:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-prelude_3/1.0.0-RC15/zio-prelude_3-1.0.0-RC15.jar",
"qref:45929e91:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema-derivation_3/0.2.1/zio-schema-derivation_3-0.2.1.jar",
"qref:74e08b1b:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-json_3/0.3.0-RC9/zio-json_3-0.3.0-RC9.jar",
"qref:d882e809:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/incubator/netty-incubator-transport-classes-io_uring/0.0.15.Final/netty-incubator-transport-classes-io_uring-0.0.15.Final.jar",
"qref:2f06acb1:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.82.Final/netty-resolver-4.1.82.Final.jar",
"qref:fca49b5e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect-thirdparty-boopickle-shaded_3/2.2.0/izumi-reflect-thirdparty-boopickle-shaded_3-2.2.0.jar",
"qref:1be77ffe:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-prelude-macros_3/1.0.0-RC15/zio-prelude-macros_3-1.0.0-RC15.jar",
"qref:50fa8563:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_3/2.5.0/scala-collection-compat_3-2.5.0.jar",
"qref:07d971d9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/softwaremill/magnolia1_3/magnolia_3/1.0.0/magnolia_3-1.0.0.jar"
],
"valueHash": -324318276,
"inputsHash": 1427231108
"valueHash": 800498671,
"inputsHash": -1160978203
}

@ -3,5 +3,5 @@
],
"valueHash": 0,
"inputsHash": -400702942
"inputsHash": -511194116
}

@ -3,5 +3,5 @@
],
"valueHash": 473519988,
"inputsHash": 683034953
"inputsHash": 572543779
}

@ -3,5 +3,5 @@
],
"valueHash": 473519988,
"inputsHash": -400702942
"inputsHash": -511194116
}

@ -0,0 +1,5 @@
{
"value": "ref:9395c852:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/out/API/ideaCompileOutput.dest/classes",
"valueHash": -1818900398,
"inputsHash": -682936988
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 473519988,
"inputsHash": -682936988
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 473519988,
"inputsHash": -682936988
}

@ -1,5 +1,46 @@
{
"value": [
{
"dep": {
"module": {
"organization": {
"value": "dev.zio"
},
"name": {
"value": "zio"
},
"attributes": {
}
},
"version": "2.0.6",
"configuration": {
"value": "default(compile)"
},
"minimizedExclusions": {
"data": "coursier.core.MinimizedExclusions.ExcludeNone"
},
"publication": {
"name": "",
"type": {
"value": ""
},
"ext": {
"value": ""
},
"classifier": {
"value": ""
}
},
"optional": false,
"transitive": true
},
"cross": {
"$type": "mill.scalalib.CrossVersion.Binary",
"platformed": false
},
"force": false
},
{
"dep": {
"module": {
@ -84,6 +125,6 @@
"force": false
}
],
"valueHash": 676738241,
"inputsHash": -400702942
"valueHash": 1540555876,
"inputsHash": 1926376404
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 0,
"inputsHash": 883715415
}

@ -3,5 +3,5 @@
],
"valueHash": 473519988,
"inputsHash": -400702942
"inputsHash": -511194116
}

@ -0,0 +1,8 @@
{
"value": [
"ref:c984eca8:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/resources",
"ref:c565ef4b:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/out/API/compile.dest/classes"
],
"valueHash": -901868320,
"inputsHash": 2070217781
}

@ -43,5 +43,5 @@
}
],
"valueHash": 180912663,
"inputsHash": 1462808018
"inputsHash": 1352316844
}

@ -3,5 +3,5 @@
],
"valueHash": 0,
"inputsHash": -400702942
"inputsHash": -511194116
}

@ -3,5 +3,5 @@
],
"valueHash": 473519988,
"inputsHash": -400702942
"inputsHash": -511194116
}

@ -1,5 +1,5 @@
{
"value": "",
"valueHash": 0,
"inputsHash": -400702942
"inputsHash": -511194116
}

@ -0,0 +1,5 @@
{
"value": null,
"valueHash": 0,
"inputsHash": -348475366
}

@ -0,0 +1,54 @@
Formatting 3 Scala sources
Downloading https://repo1.maven.org/maven2/org/scalameta/scalafmt-core_2.13/3.6.1/scalafmt-core_2.13-3.6.1.pom
Downloaded https://repo1.maven.org/maven2/org/scalameta/scalafmt-core_2.13/3.6.1/scalafmt-core_2.13-3.6.1.pom
Downloading https://repo1.maven.org/maven2/org/scalameta/scalafmt-config_2.13/3.6.1/scalafmt-config_2.13-3.6.1.pom
Downloading https://repo1.maven.org/maven2/org/scalameta/scalameta_2.13/4.6.0/scalameta_2.13-4.6.0.pom
Downloading https://repo1.maven.org/maven2/org/scalameta/scalafmt-sysops_2.13/3.6.1/scalafmt-sysops_2.13-3.6.1.pom
Downloaded https://repo1.maven.org/maven2/org/scalameta/scalafmt-config_2.13/3.6.1/scalafmt-config_2.13-3.6.1.pom
Downloaded https://repo1.maven.org/maven2/org/scalameta/scalameta_2.13/4.6.0/scalameta_2.13-4.6.0.pom
Downloaded https://repo1.maven.org/maven2/org/scalameta/scalafmt-sysops_2.13/3.6.1/scalafmt-sysops_2.13-3.6.1.pom
Downloading https://repo1.maven.org/maven2/org/scalameta/parsers_2.13/4.6.0/parsers_2.13-4.6.0.pom
Downloading https://repo1.maven.org/maven2/org/scala-lang/modules/scala-parallel-collections_2.13/1.0.4/scala-parallel-collections_2.13-1.0.4.pom
Downloading https://repo1.maven.org/maven2/com/geirsson/metaconfig-core_2.13/0.11.1/metaconfig-core_2.13-0.11.1.pom
Downloading https://repo1.maven.org/maven2/com/geirsson/metaconfig-typesafe-config_2.13/0.11.1/metaconfig-typesafe-config_2.13-0.11.1.pom
Downloading https://repo1.maven.org/maven2/org/scala-lang/scalap/2.13.9/scalap-2.13.9.pom
Downloaded https://repo1.maven.org/maven2/org/scala-lang/modules/scala-parallel-collections_2.13/1.0.4/scala-parallel-collections_2.13-1.0.4.pom
Downloaded https://repo1.maven.org/maven2/com/geirsson/metaconfig-core_2.13/0.11.1/metaconfig-core_2.13-0.11.1.pom
Downloaded https://repo1.maven.org/maven2/org/scalameta/parsers_2.13/4.6.0/parsers_2.13-4.6.0.pom
Downloaded https://repo1.maven.org/maven2/org/scala-lang/scalap/2.13.9/scalap-2.13.9.pom
Downloaded https://repo1.maven.org/maven2/com/geirsson/metaconfig-typesafe-config_2.13/0.11.1/metaconfig-typesafe-config_2.13-0.11.1.pom
Downloading https://repo1.maven.org/maven2/com/geirsson/metaconfig-pprint_2.13/0.11.1/metaconfig-pprint_2.13-0.11.1.pom
Downloading https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.9/scala-compiler-2.13.9.pom
Downloading https://repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.13/2.5.0/scala-collection-compat_2.13-2.5.0.pom
Downloaded https://repo1.maven.org/maven2/com/geirsson/metaconfig-pprint_2.13/0.11.1/metaconfig-pprint_2.13-0.11.1.pom
Downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.9/scala-compiler-2.13.9.pom
Downloaded https://repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.13/2.5.0/scala-collection-compat_2.13-2.5.0.pom
Downloading https://repo1.maven.org/maven2/com/lihaoyi/fansi_2.13/0.3.0/fansi_2.13-0.3.0.pom
Downloaded https://repo1.maven.org/maven2/com/lihaoyi/fansi_2.13/0.3.0/fansi_2.13-0.3.0.pom
Downloading https://repo1.maven.org/maven2/org/scalameta/scalafmt-config_2.13/3.6.1/scalafmt-config_2.13-3.6.1.jar
Downloading https://repo1.maven.org/maven2/org/scalameta/scalameta_2.13/4.6.0/scalameta_2.13-4.6.0.jar
Downloading https://repo1.maven.org/maven2/com/geirsson/metaconfig-pprint_2.13/0.11.1/metaconfig-pprint_2.13-0.11.1.jar
Downloading https://repo1.maven.org/maven2/org/scala-lang/scalap/2.13.9/scalap-2.13.9.jar
Downloading https://repo1.maven.org/maven2/org/scalameta/scalafmt-core_2.13/3.6.1/scalafmt-core_2.13-3.6.1.jar
Downloading https://repo1.maven.org/maven2/org/scalameta/parsers_2.13/4.6.0/parsers_2.13-4.6.0.jar
Downloaded https://repo1.maven.org/maven2/org/scalameta/scalafmt-config_2.13/3.6.1/scalafmt-config_2.13-3.6.1.jar
Downloading https://repo1.maven.org/maven2/com/geirsson/metaconfig-core_2.13/0.11.1/metaconfig-core_2.13-0.11.1.jar
Downloaded https://repo1.maven.org/maven2/com/geirsson/metaconfig-pprint_2.13/0.11.1/metaconfig-pprint_2.13-0.11.1.jar
Downloading https://repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.13/2.5.0/scala-collection-compat_2.13-2.5.0.jar
Downloaded https://repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_2.13/2.5.0/scala-collection-compat_2.13-2.5.0.jar
Downloading https://repo1.maven.org/maven2/com/geirsson/metaconfig-typesafe-config_2.13/0.11.1/metaconfig-typesafe-config_2.13-0.11.1.jar
Downloaded https://repo1.maven.org/maven2/com/geirsson/metaconfig-typesafe-config_2.13/0.11.1/metaconfig-typesafe-config_2.13-0.11.1.jar
Downloading https://repo1.maven.org/maven2/org/scala-lang/modules/scala-parallel-collections_2.13/1.0.4/scala-parallel-collections_2.13-1.0.4.jar
Downloaded https://repo1.maven.org/maven2/org/scala-lang/scalap/2.13.9/scalap-2.13.9.jar
Downloading https://repo1.maven.org/maven2/com/lihaoyi/fansi_2.13/0.3.0/fansi_2.13-0.3.0.jar
Downloaded https://repo1.maven.org/maven2/com/geirsson/metaconfig-core_2.13/0.11.1/metaconfig-core_2.13-0.11.1.jar
Downloading https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.9/scala-compiler-2.13.9.jar
Downloaded https://repo1.maven.org/maven2/com/lihaoyi/fansi_2.13/0.3.0/fansi_2.13-0.3.0.jar
Downloading https://repo1.maven.org/maven2/org/scalameta/scalafmt-sysops_2.13/3.6.1/scalafmt-sysops_2.13-3.6.1.jar
Downloaded https://repo1.maven.org/maven2/org/scalameta/scalameta_2.13/4.6.0/scalameta_2.13-4.6.0.jar
Downloaded https://repo1.maven.org/maven2/org/scalameta/scalafmt-sysops_2.13/3.6.1/scalafmt-sysops_2.13-3.6.1.jar
Downloaded https://repo1.maven.org/maven2/org/scala-lang/modules/scala-parallel-collections_2.13/1.0.4/scala-parallel-collections_2.13-1.0.4.jar
Downloaded https://repo1.maven.org/maven2/org/scalameta/scalafmt-core_2.13/3.6.1/scalafmt-core_2.13-3.6.1.jar
Downloaded https://repo1.maven.org/maven2/org/scalameta/parsers_2.13/4.6.0/parsers_2.13-4.6.0.jar
Downloaded https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.9/scala-compiler-2.13.9.jar
parsed config (v3.6.1): /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/.scalafmt.conf

@ -1,8 +1,12 @@
{
"value": [
"qref:39a886be:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio_3/2.0.6/zio_3-2.0.6.jar",
"qref:786864fe:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-http_3/0.0.3/zio-http_3-0.0.3.jar",
"qref:ad6c0293:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-slf4j-impl/2.19.0/log4j-slf4j-impl-2.19.0.jar",
"qref:b5501cbb:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.2.0/scala3-library_3-3.2.0.jar",
"qref:c1a82478:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-internal-macros_3/2.0.6/zio-internal-macros_3-2.0.6.jar",
"qref:468513bd:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-stacktracer_3/2.0.6/zio-stacktracer_3-2.0.6.jar",
"qref:9cd8b0c5:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect_3/2.2.2/izumi-reflect_3-2.2.2.jar",
"qref:95c82ffd:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-http-logging_3/0.0.3/zio-http-logging_3-0.0.3.jar",
"qref:f4359597:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.82.Final/netty-codec-http-4.1.82.Final.jar",
"qref:be47dde4:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.82.Final/netty-handler-proxy-4.1.82.Final.jar",
@ -12,7 +16,6 @@
"qref:b29de332:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.82.Final/netty-transport-native-kqueue-4.1.82.Final.jar",
"qref:a078c663:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.82.Final/netty-transport-native-kqueue-4.1.82.Final-osx-x86_64.jar",
"qref:6c6216f9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.82.Final/netty-transport-native-kqueue-4.1.82.Final-osx-aarch_64.jar",
"qref:3a76b25e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio_3/2.0.3/zio_3-2.0.3.jar",
"qref:3146d8bf:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-streams_3/2.0.3/zio-streams_3-2.0.3.jar",
"qref:fd02770d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema_3/0.2.1/zio-schema_3-0.2.1.jar",
"qref:2fec96f9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema-json_3/0.2.1/zio-schema-json_3-0.2.1.jar",
@ -21,6 +24,7 @@
"qref:b7314c89:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar",
"qref:d4fc68fd:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.19.0/log4j-core-2.19.0.jar",
"qref:5c87fdc5:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar",
"qref:5eab0071:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect-thirdparty-boopickle-shaded_3/2.2.2/izumi-reflect-thirdparty-boopickle-shaded_3-2.2.2.jar",
"qref:141b2b3d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.82.Final/netty-common-4.1.82.Final.jar",
"qref:22aaaca7:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.82.Final/netty-buffer-4.1.82.Final.jar",
"qref:87d38de6:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.82.Final/netty-transport-4.1.82.Final.jar",
@ -30,20 +34,16 @@
"qref:32cee56e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.82.Final/netty-transport-native-unix-common-4.1.82.Final.jar",
"qref:89ac2f5e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.82.Final/netty-transport-classes-epoll-4.1.82.Final.jar",
"qref:1ec3ace8:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.82.Final/netty-transport-classes-kqueue-4.1.82.Final.jar",
"qref:2e57b31b:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-internal-macros_3/2.0.3/zio-internal-macros_3-2.0.3.jar",
"qref:de5b15b3:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-stacktracer_3/2.0.3/zio-stacktracer_3-2.0.3.jar",
"qref:b680016c:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect_3/2.2.0/izumi-reflect_3-2.2.0.jar",
"qref:68a6ff28:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema-macros_3/0.2.1/zio-schema-macros_3-0.2.1.jar",
"qref:823114a4:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-prelude_3/1.0.0-RC15/zio-prelude_3-1.0.0-RC15.jar",
"qref:45929e91:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema-derivation_3/0.2.1/zio-schema-derivation_3-0.2.1.jar",
"qref:74e08b1b:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-json_3/0.3.0-RC9/zio-json_3-0.3.0-RC9.jar",
"qref:d882e809:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/incubator/netty-incubator-transport-classes-io_uring/0.0.15.Final/netty-incubator-transport-classes-io_uring-0.0.15.Final.jar",
"qref:2f06acb1:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.82.Final/netty-resolver-4.1.82.Final.jar",
"qref:fca49b5e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect-thirdparty-boopickle-shaded_3/2.2.0/izumi-reflect-thirdparty-boopickle-shaded_3-2.2.0.jar",
"qref:1be77ffe:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-prelude-macros_3/1.0.0-RC15/zio-prelude-macros_3-1.0.0-RC15.jar",
"qref:50fa8563:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_3/2.5.0/scala-collection-compat_3-2.5.0.jar",
"qref:07d971d9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/softwaremill/magnolia1_3/magnolia_3/1.0.0/magnolia_3-1.0.0.jar"
],
"valueHash": 589717268,
"inputsHash": -960795727
"valueHash": 1714534215,
"inputsHash": 576675638
}

@ -0,0 +1,49 @@
{
"value": [
"qref:786864fe:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-http_3/0.0.3/zio-http_3-0.0.3.jar",
"qref:ad6c0293:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-slf4j-impl/2.19.0/log4j-slf4j-impl-2.19.0.jar",
"qref:b5501cbb:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.2.0/scala3-library_3-3.2.0.jar",
"qref:95c82ffd:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-http-logging_3/0.0.3/zio-http-logging_3-0.0.3.jar",
"qref:f4359597:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.82.Final/netty-codec-http-4.1.82.Final.jar",
"qref:be47dde4:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.82.Final/netty-handler-proxy-4.1.82.Final.jar",
"qref:c42a208a:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.82.Final/netty-transport-native-epoll-4.1.82.Final.jar",
"qref:0f82b946:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.82.Final/netty-transport-native-epoll-4.1.82.Final-linux-x86_64.jar",
"qref:40b13f5d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.82.Final/netty-transport-native-epoll-4.1.82.Final-linux-aarch_64.jar",
"qref:b29de332:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.82.Final/netty-transport-native-kqueue-4.1.82.Final.jar",
"qref:a078c663:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.82.Final/netty-transport-native-kqueue-4.1.82.Final-osx-x86_64.jar",
"qref:6c6216f9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.82.Final/netty-transport-native-kqueue-4.1.82.Final-osx-aarch_64.jar",
"qref:3a76b25e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio_3/2.0.3/zio_3-2.0.3.jar",
"qref:3146d8bf:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-streams_3/2.0.3/zio-streams_3-2.0.3.jar",
"qref:fd02770d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema_3/0.2.1/zio-schema_3-0.2.1.jar",
"qref:2fec96f9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema-json_3/0.2.1/zio-schema-json_3-0.2.1.jar",
"qref:c4d72723:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/incubator/netty-incubator-transport-native-io_uring/0.0.15.Final/netty-incubator-transport-native-io_uring-0.0.15.Final-linux-x86_64.jar",
"qref:32e5062e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar",
"qref:b7314c89:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar",
"qref:d4fc68fd:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.19.0/log4j-core-2.19.0.jar",
"qref:5c87fdc5:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar",
"qref:141b2b3d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.82.Final/netty-common-4.1.82.Final.jar",
"qref:22aaaca7:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.82.Final/netty-buffer-4.1.82.Final.jar",
"qref:87d38de6:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.82.Final/netty-transport-4.1.82.Final.jar",
"qref:dfc6650d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-codec/4.1.82.Final/netty-codec-4.1.82.Final.jar",
"qref:71f3a5d9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-handler/4.1.82.Final/netty-handler-4.1.82.Final.jar",
"qref:e5cd026e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.82.Final/netty-codec-socks-4.1.82.Final.jar",
"qref:32cee56e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.82.Final/netty-transport-native-unix-common-4.1.82.Final.jar",
"qref:89ac2f5e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.82.Final/netty-transport-classes-epoll-4.1.82.Final.jar",
"qref:1ec3ace8:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.82.Final/netty-transport-classes-kqueue-4.1.82.Final.jar",
"qref:2e57b31b:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-internal-macros_3/2.0.3/zio-internal-macros_3-2.0.3.jar",
"qref:de5b15b3:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-stacktracer_3/2.0.3/zio-stacktracer_3-2.0.3.jar",
"qref:b680016c:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect_3/2.2.0/izumi-reflect_3-2.2.0.jar",
"qref:68a6ff28:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema-macros_3/0.2.1/zio-schema-macros_3-0.2.1.jar",
"qref:823114a4:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-prelude_3/1.0.0-RC15/zio-prelude_3-1.0.0-RC15.jar",
"qref:45929e91:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema-derivation_3/0.2.1/zio-schema-derivation_3-0.2.1.jar",
"qref:74e08b1b:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-json_3/0.3.0-RC9/zio-json_3-0.3.0-RC9.jar",
"qref:d882e809:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/incubator/netty-incubator-transport-classes-io_uring/0.0.15.Final/netty-incubator-transport-classes-io_uring-0.0.15.Final.jar",
"qref:2f06acb1:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.82.Final/netty-resolver-4.1.82.Final.jar",
"qref:fca49b5e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect-thirdparty-boopickle-shaded_3/2.2.0/izumi-reflect-thirdparty-boopickle-shaded_3-2.2.0.jar",
"qref:1be77ffe:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-prelude-macros_3/1.0.0-RC15/zio-prelude-macros_3-1.0.0-RC15.jar",
"qref:50fa8563:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_3/2.5.0/scala-collection-compat_3-2.5.0.jar",
"qref:07d971d9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/softwaremill/magnolia1_3/magnolia_3/1.0.0/magnolia_3-1.0.0.jar"
],
"valueHash": 589717268,
"inputsHash": -1243029773
}

@ -3,5 +3,5 @@
"ref:c984eca8:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/resources"
],
"valueHash": 2031791312,
"inputsHash": -191497303
"inputsHash": 182930188
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 0,
"inputsHash": -682936988
}

@ -15,5 +15,5 @@
"qref:84bac27c:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar"
],
"valueHash": 761044896,
"inputsHash": 866108943
"inputsHash": 755617769
}

@ -43,5 +43,5 @@
}
],
"valueHash": 180912663,
"inputsHash": -143185017
"inputsHash": -253676191
}

@ -1,5 +1,5 @@
{
"value": "org.scala-lang",
"valueHash": 1747943263,
"inputsHash": 1046496917
"inputsHash": 936005743
}

@ -1,5 +1,5 @@
{
"value": "3.2.0",
"valueHash": 48519481,
"inputsHash": -400702942
"inputsHash": -511194116
}

@ -3,5 +3,5 @@
],
"valueHash": 473519988,
"inputsHash": -400702942
"inputsHash": -511194116
}

@ -3,5 +3,5 @@
],
"valueHash": 0,
"inputsHash": -1537599939
"inputsHash": -1648091113
}

@ -3,5 +3,5 @@
],
"valueHash": 0,
"inputsHash": -400702942
"inputsHash": -511194116
}

@ -0,0 +1,7 @@
{
"value": [
"ref:e6c2d371:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/.scalafmt.conf"
],
"valueHash": -267721387,
"inputsHash": -1584380476
}

@ -1,7 +1,7 @@
{
"value": [
"ref:f4ab4dc0:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/src"
"ref:95490f6f:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/src"
],
"valueHash": -909178762,
"inputsHash": 729607789
"valueHash": 1181484811,
"inputsHash": -179710719
}

@ -3,5 +3,5 @@
],
"valueHash": 0,
"inputsHash": 360878554
"inputsHash": 250387380
}

@ -1,5 +1,46 @@
{
"value": [
{
"dep": {
"module": {
"organization": {
"value": "dev.zio"
},
"name": {
"value": "zio"
},
"attributes": {
}
},
"version": "2.0.6",
"configuration": {
"value": "default(compile)"
},
"minimizedExclusions": {
"data": "coursier.core.MinimizedExclusions.ExcludeNone"
},
"publication": {
"name": "",
"type": {
"value": ""
},
"ext": {
"value": ""
},
"classifier": {
"value": ""
}
},
"optional": false,
"transitive": true
},
"cross": {
"$type": "mill.scalalib.CrossVersion.Binary",
"platformed": false
},
"force": false
},
{
"dep": {
"module": {
@ -125,6 +166,6 @@
"force": true
}
],
"valueHash": 857650904,
"inputsHash": 277656819
"valueHash": 1721468539,
"inputsHash": -515534103
}

@ -3,5 +3,5 @@
],
"valueHash": 0,
"inputsHash": -400702942
"inputsHash": -511194116
}

@ -3,5 +3,5 @@
],
"valueHash": 0,
"inputsHash": -400702942
"inputsHash": -511194116
}

@ -3,5 +3,5 @@
],
"valueHash": 473519988,
"inputsHash": -400702942
"inputsHash": -511194116
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 473519988,
"inputsHash": -1637701402
}

@ -0,0 +1,15 @@
{
"value": [
"ref:29e2a496:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/InternalBasketServerException.scala",
"ref:ce022bc0:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/handler/HandlerUtils.scala",
"ref:4b8a7ce4:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/handler/LoginHandler.scala",
"ref:4d4e838d:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/handler/IncrementHandler.scala",
"ref:60d26ff6:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/ExternalBasketServerException.scala",
"ref:4a2210b7:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/Main.scala",
"ref:58860610:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/auth/UserSession.scala",
"ref:bd076fe3:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/auth/UserSessionHandler.scala",
"ref:c1a223f8:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/EndpointSetup.scala"
],
"valueHash": 1819157258,
"inputsHash": 33935089
}

@ -0,0 +1,7 @@
{
"value": [
"ref:09790f6f:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src"
],
"valueHash": 235242755,
"inputsHash": 1775352012
}

@ -0,0 +1,156 @@
[info] compiling 9 Scala sources to /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/out/Core/compile.dest/classes ...
[error] -- [E007] Type Mismatch Error: /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/auth/UserSessionHandler.scala:14:74 
[error] 14 |case class UserSessionHandler(sessions: Ref[HashMap[UUID, UserSession]] = Ref.make(HashMap.empty)):
[error]  | ^^^^^^^^^^^^^^^^^^^^^^^
[error]  |Found: zio.UIO[zio.Ref[A]]
[error]  |Required: zio.Ref[
[error]  | collection.immutable.HashMap[java.util.UUID, org.tbasket.auth.UserSession]
[error]  |]
[error]  |
[error]  |where: A is a type variable with constraint >: scala.collection.immutable.HashMap[K, V]
[error]  |
[error]  |
[error]  |One of the following imports might make progress towards fixing the problem:
[error]  |
[error]  | import org.tbasket.Main.validateEnv
[error]  | import io.getquill.autoQuote
[error]  |
[error]  |
[error]  | longer explanation available when compiling with `-explain`
[error] -- [E007] Type Mismatch Error: /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/Main.scala:20:43 
[error] 20 | EndpointSetup.setupEndpoint(config, db.layer).run
[error]  | ^^^^^^^^
[error]  |Found: (db.layer : zio.ZLayer[Any, Throwable, javax.sql.DataSource])
[error]  |Required: io.getquill.context.qzio.ZioContext[io.getquill.SqliteDialect, 
[error]  | io.getquill.Literal
[error]  |]
[error]  |
[error]  |One of the following imports might make progress towards fixing the problem:
[error]  |
[error]  | import io.getquill.autoQuote
[error]  | import sourcecode.Text.generate
[error]  |
[error]  |
[error]  | longer explanation available when compiling with `-explain`
[error] -- [E007] Type Mismatch Error: /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/auth/UserSessionHandler.scala:38:40 
[error] 38 | _ <- sessions.update(_ + (session.token, session)).fork
[error]  | ^^^^^^^^^^^^^
[error]  |Found: (session.token : java.util.UUID)
[error]  |Required: (java.util.UUID, org.tbasket.auth.UserSession)
[error]  |
[error]  |One of the following imports might make progress towards fixing the problem:
[error]  |
[error]  | import io.getquill.autoQuote
[error]  | import sourcecode.Text.generate
[error]  |
[error]  |
[error]  | longer explanation available when compiling with `-explain`
[error] -- [E007] Type Mismatch Error: /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/auth/UserSessionHandler.scala:38:47 
[error] 38 | _ <- sessions.update(_ + (session.token, session)).fork
[error]  | ^^^^^^^
[error]  |Found: (session : org.tbasket.auth.UserSession)
[error]  |Required: (java.util.UUID, org.tbasket.auth.UserSession)
[error]  |
[error]  |One of the following imports might make progress towards fixing the problem:
[error]  |
[error]  | import io.getquill.autoQuote
[error]  | import sourcecode.Text.generate
[error]  |
[error]  |
[error]  | longer explanation available when compiling with `-explain`
[error] -- [E007] Type Mismatch Error: /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/handler/LoginHandler.scala:68:32 
[error] 68 | session <- sessions.bind(user): IO[LoginError, UserSession]
[error]  | ^^^^^^^^^^^^^^^^^^^
[error]  |Found: zio.Task[org.tbasket.auth.UserSession]
[error]  |Required: zio.IO[org.tbasket.handler.LoginError, org.tbasket.auth.UserSession]
[error]  |
[error]  |One of the following imports might make progress towards fixing the problem:
[error]  |
[error]  | import io.getquill.autoQuote
[error]  | import sourcecode.Text.generate
[error]  |
[error]  |
[error]  | longer explanation available when compiling with `-explain`
[error] -- [E007] Type Mismatch Error: /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/handler/LoginHandler.scala:77:41 
[error] 77 | case TokenNotFound(_) => Response(
[error]  | ^
[error]  |Found: zio.http.Response
[error]  |Required: Nothing
[error]  |
[error]  |One of the following imports might make progress towards fixing the problem:
[error]  |
[error]  | import io.getquill.autoQuote
[error]  | import sourcecode.Text.generate
[error]  |
[error] 78 | status = Status.Unauthorized,
[error] 79 | body = errorBody("unauthorized", "unknown token"),
[error] 80 | headers = Headers(Headers.location("/login")) //send back caller to login panel
[error] 81 | )
[error]  |
[error]  | longer explanation available when compiling with `-explain`
[error] -- [E007] Type Mismatch Error: /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/handler/LoginHandler.scala:82:41 
[error] 82 | case UserNotFound(_) => Response(
[error]  | ^
[error]  |Found: zio.http.Response
[error]  |Required: Nothing
[error]  |
[error]  |One of the following imports might make progress towards fixing the problem:
[error]  |
[error]  | import io.getquill.autoQuote
[error]  | import sourcecode.Text.generate
[error]  |
[error] 83 | status = Status.Unauthorized,
[error] 84 | body = errorBody("unauthorized", "unknown user email"),
[error] 85 | headers = Headers(Headers.location("/register")) //send back caller to register panel
[error] 86 | )
[error]  |
[error]  | longer explanation available when compiling with `-explain`
[error] -- [E007] Type Mismatch Error: /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/handler/LoginHandler.scala:87:41 
[error] 87 | case InvalidPassword => Response(
[error]  | ^
[error]  |Found: zio.http.Response
[error]  |Required: Nothing
[error]  |
[error]  |One of the following imports might make progress towards fixing the problem:
[error]  |
[error]  | import io.getquill.autoQuote
[error]  | import sourcecode.Text.generate
[error]  |
[error] 88 | status = Status.Unauthorized,
[error] 89 | body = errorBody("unauthorized", "invalid password")
[error] 90 | )
[error]  |
[error]  | longer explanation available when compiling with `-explain`
[error] -- [E007] Type Mismatch Error: /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/handler/LoginHandler.scala:91:41 
[error] 91 | case InvalidRequest(msg, cause) => Response(
[error]  | ^
[error]  |Found: zio.http.Response
[error]  |Required: Nothing
[error]  |
[error]  |One of the following imports might make progress towards fixing the problem:
[error]  |
[error]  | import io.getquill.autoQuote
[error]  | import sourcecode.Text.generate
[error]  |
[error] 92 | status = Status.Unauthorized,
[error] 93 | body = errorBody("wrong request", s"$cause: $msg")
[error] 94 | )
[error]  |
[error]  | longer explanation available when compiling with `-explain`
[error] -- [E007] Type Mismatch Error: /home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/src/org/tbasket/handler/LoginHandler.scala:95:41 
[error] 95 | case InternalError(_) => Response(
[error]  | ^
[error]  |Found: zio.http.Response
[error]  |Required: Nothing
[error]  |
[error]  |One of the following imports might make progress towards fixing the problem:
[error]  |
[error]  | import io.getquill.autoQuote
[error]  | import sourcecode.Text.generate
[error]  |
[error] 96 | status = Status.InternalServerError,
[error] 97 | body = errorBody("internal", "internal error, please contact support")
[error] 98 | )
[error]  |
[error]  | longer explanation available when compiling with `-explain`
[error] 10 errors found

@ -0,0 +1,86 @@
{
"value": [
"ref:c984eca8:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/API/resources",
"ref:c565ef4b:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/out/API/compile.dest/classes",
"ref:e22c2942:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/DB/resources",
"ref:5aacd86a:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/out/DB/compile.dest/classes",
"ref:c984eca8:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/Core/resources",
"qref:39a886be:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio_3/2.0.6/zio_3-2.0.6.jar",
"qref:b57cb3ac:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-json_3/0.4.2/zio-json_3-0.4.2.jar",
"qref:ad6c0293:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-slf4j-impl/2.19.0/log4j-slf4j-impl-2.19.0.jar",
"qref:b5501cbb:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala3-library_3/3.2.0/scala3-library_3-3.2.0.jar",
"qref:786864fe:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-http_3/0.0.3/zio-http_3-0.0.3.jar",
"qref:bd4336c2:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/getquill/quill-jdbc-zio_3/4.6.0/quill-jdbc-zio_3-4.6.0.jar",
"qref:0ef11a08:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/xerial/sqlite-jdbc/3.40.0.0/sqlite-jdbc-3.40.0.0.jar",
"qref:c1a82478:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-internal-macros_3/2.0.6/zio-internal-macros_3-2.0.6.jar",
"qref:468513bd:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-stacktracer_3/2.0.6/zio-stacktracer_3-2.0.6.jar",
"qref:9cd8b0c5:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect_3/2.2.2/izumi-reflect_3-2.2.2.jar",
"qref:3146d8bf:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-streams_3/2.0.3/zio-streams_3-2.0.3.jar",
"qref:0f77930e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-collection-compat_3/2.8.1/scala-collection-compat_3-2.8.1.jar",
"qref:4b8d8225:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/softwaremill/magnolia1_3/magnolia_3/1.1.5/magnolia_3-1.1.5.jar",
"qref:32e5062e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar",
"qref:b7314c89:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.19.0/log4j-api-2.19.0.jar",
"qref:d4fc68fd:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.19.0/log4j-core-2.19.0.jar",
"qref:5c87fdc5:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-library/2.13.8/scala-library-2.13.8.jar",
"qref:95c82ffd:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-http-logging_3/0.0.3/zio-http-logging_3-0.0.3.jar",
"qref:f4359597:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-codec-http/4.1.82.Final/netty-codec-http-4.1.82.Final.jar",
"qref:be47dde4:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-handler-proxy/4.1.82.Final/netty-handler-proxy-4.1.82.Final.jar",
"qref:c42a208a:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.82.Final/netty-transport-native-epoll-4.1.82.Final.jar",
"qref:0f82b946:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.82.Final/netty-transport-native-epoll-4.1.82.Final-linux-x86_64.jar",
"qref:40b13f5d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-epoll/4.1.82.Final/netty-transport-native-epoll-4.1.82.Final-linux-aarch_64.jar",
"qref:b29de332:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.82.Final/netty-transport-native-kqueue-4.1.82.Final.jar",
"qref:a078c663:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.82.Final/netty-transport-native-kqueue-4.1.82.Final-osx-x86_64.jar",
"qref:6c6216f9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-kqueue/4.1.82.Final/netty-transport-native-kqueue-4.1.82.Final-osx-aarch_64.jar",
"qref:fd02770d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema_3/0.2.1/zio-schema_3-0.2.1.jar",
"qref:2fec96f9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema-json_3/0.2.1/zio-schema-json_3-0.2.1.jar",
"qref:c4d72723:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/incubator/netty-incubator-transport-native-io_uring/0.0.15.Final/netty-incubator-transport-native-io_uring-0.0.15.Final-linux-x86_64.jar",
"qref:9c4bbd97:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/getquill/quill-zio_3/4.6.0/quill-zio_3-4.6.0.jar",
"qref:c815cbaf:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/getquill/quill-sql_3/4.6.0/quill-sql_3-4.6.0.jar",
"qref:3ea9ab84:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/getquill/quill-jdbc_3/4.6.0/quill-jdbc_3-4.6.0.jar",
"qref:4f8a588e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/modules/scala-java8-compat_3/1.0.1/scala-java8-compat_3-1.0.1.jar",
"qref:a161e2c9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/zaxxer/HikariCP/3.4.5/HikariCP-3.4.5.jar",
"qref:5eab0071:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/izumi-reflect-thirdparty-boopickle-shaded_3/2.2.2/izumi-reflect-thirdparty-boopickle-shaded_3-2.2.2.jar",
"qref:141b2b3d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-common/4.1.82.Final/netty-common-4.1.82.Final.jar",
"qref:22aaaca7:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-buffer/4.1.82.Final/netty-buffer-4.1.82.Final.jar",
"qref:87d38de6:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport/4.1.82.Final/netty-transport-4.1.82.Final.jar",
"qref:dfc6650d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-codec/4.1.82.Final/netty-codec-4.1.82.Final.jar",
"qref:71f3a5d9:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-handler/4.1.82.Final/netty-handler-4.1.82.Final.jar",
"qref:e5cd026e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-codec-socks/4.1.82.Final/netty-codec-socks-4.1.82.Final.jar",
"qref:32cee56e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-native-unix-common/4.1.82.Final/netty-transport-native-unix-common-4.1.82.Final.jar",
"qref:89ac2f5e:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-epoll/4.1.82.Final/netty-transport-classes-epoll-4.1.82.Final.jar",
"qref:1ec3ace8:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.82.Final/netty-transport-classes-kqueue-4.1.82.Final.jar",
"qref:68a6ff28:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema-macros_3/0.2.1/zio-schema-macros_3-0.2.1.jar",
"qref:823114a4:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-prelude_3/1.0.0-RC15/zio-prelude_3-1.0.0-RC15.jar",
"qref:45929e91:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-schema-derivation_3/0.2.1/zio-schema-derivation_3-0.2.1.jar",
"qref:d882e809:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/incubator/netty-incubator-transport-classes-io_uring/0.0.15.Final/netty-incubator-transport-classes-io_uring-0.0.15.Final.jar",
"qref:495a33af:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/suzaku/boopickle_3/1.4.0/boopickle_3-1.4.0.jar",
"qref:5be1cf90:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/pprint_3/0.6.6/pprint_3-0.6.6.jar",
"qref:35b44e48:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/getquill/quill-engine_3/4.6.0/quill-engine_3-4.6.0.jar",
"qref:8381237d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/getquill/quill-util_3/4.6.0/quill-util_3-4.6.0.jar",
"qref:ce4955c6:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/typesafe/scala-logging/scala-logging_3/3.9.4/scala-logging_3-3.9.4.jar",
"qref:2f06acb1:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/io/netty/netty-resolver/4.1.82.Final/netty-resolver-4.1.82.Final.jar",
"qref:1be77ffe:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/dev/zio/zio-prelude-macros_3/1.0.0-RC15/zio-prelude-macros_3-1.0.0-RC15.jar",
"qref:adbef666:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/fansi_3/0.2.14/fansi_3-0.2.14.jar",
"qref:e1e28d5d:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/sourcecode_3/0.2.7/sourcecode_3-0.2.7.jar",
"qref:5dbac183:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/typesafe/config/1.4.2/config-1.4.2.jar",
"qref:4b535f97:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/github/takayahilton/sql-formatter_2.13/1.2.1/sql-formatter_2.13-1.2.1.jar",
"qref:de546ab1:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalafmt-core_2.13/3.1.0/scalafmt-core_2.13-3.1.0.jar",
"qref:7e996396:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalafmt-sysops_2.13/3.1.0/scalafmt-sysops_2.13-3.1.0.jar",
"qref:80f524de:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-core_2.13/0.9.15/metaconfig-core_2.13-0.9.15.jar",
"qref:64effb84:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/scalameta_2.13/4.4.29/scalameta_2.13-4.4.29.jar",
"qref:fb7ab5e4:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-reflect/2.13.6/scala-reflect-2.13.6.jar",
"qref:aa2d2400:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/geirsson/metaconfig-typesafe-config_2.13/0.9.15/metaconfig-typesafe-config_2.13-0.9.15.jar",
"qref:6f58fe00:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/typelevel/paiges-core_2.13/0.4.2/paiges-core_2.13-0.4.2.jar",
"qref:bb13c6e2:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/parsers_2.13/4.4.29/parsers_2.13-4.4.29.jar",
"qref:02c964b4:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scalap/2.13.6/scalap-2.13.6.jar",
"qref:9a0ede71:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/trees_2.13/4.4.29/trees_2.13-4.4.29.jar",
"qref:683c2f1a:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.6/scala-compiler-2.13.6.jar",
"qref:738d20ee:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/common_2.13/4.4.29/common_2.13-4.4.29.jar",
"qref:58243602:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/scalameta/fastparse-v2_2.13/2.3.1/fastparse-v2_2.13-2.3.1.jar",
"qref:db5c9401:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/org/jline/jline/3.19.0/jline-3.19.0.jar",
"qref:84bac27c:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/net/java/dev/jna/jna/5.3.1/jna-5.3.1.jar",
"qref:2edca6f7:/home/maxime/.cache/coursier/v1/https/repo1.maven.org/maven2/com/lihaoyi/geny_2.13/0.6.5/geny_2.13-0.6.5.jar"
],
"valueHash": 1988054202,
"inputsHash": -916191649
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 0,
"inputsHash": 49542187
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 473519988,
"inputsHash": 1133280082
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 473519988,
"inputsHash": 49542187
}

@ -0,0 +1,5 @@
{
"value": "ref:b8fafc46:/home/maxime/Projects/IdeaProjects/Tactique-Basket-Backend/out/Core/ideaCompileOutput.dest/classes",
"valueHash": -1191510970,
"inputsHash": 49542187
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 473519988,
"inputsHash": 49542187
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 473519988,
"inputsHash": 49542187
}

@ -0,0 +1,130 @@
{
"value": [
{
"dep": {
"module": {
"organization": {
"value": "dev.zio"
},
"name": {
"value": "zio"
},
"attributes": {
}
},
"version": "2.0.6",
"configuration": {
"value": "default(compile)"
},
"minimizedExclusions": {
"data": "coursier.core.MinimizedExclusions.ExcludeNone"
},
"publication": {
"name": "",
"type": {
"value": ""
},
"ext": {
"value": ""
},
"classifier": {
"value": ""
}
},
"optional": false,
"transitive": true
},
"cross": {
"$type": "mill.scalalib.CrossVersion.Binary",
"platformed": false
},
"force": false
},
{
"dep": {
"module": {
"organization": {
"value": "org.apache.logging.log4j"
},
"name": {
"value": "log4j-slf4j-impl"
},
"attributes": {
}
},
"version": "2.19.0",
"configuration": {
"value": "default(compile)"
},
"minimizedExclusions": {
"data": "coursier.core.MinimizedExclusions.ExcludeNone"
},
"publication": {
"name": "",
"type": {
"value": ""
},
"ext": {
"value": ""
},
"classifier": {
"value": ""
}
},
"optional": false,
"transitive": true
},
"cross": {
"$type": "mill.scalalib.CrossVersion.Constant",
"value": "",
"platformed": false
},
"force": false
},
{
"dep": {
"module": {
"organization": {
"value": "dev.zio"
},
"name": {
"value": "zio-json"
},
"attributes": {
}
},
"version": "0.4.2",
"configuration": {
"value": "default(compile)"
},
"minimizedExclusions": {
"data": "coursier.core.MinimizedExclusions.ExcludeNone"
},
"publication": {
"name": "",
"type": {
"value": ""
},
"ext": {
"value": ""
},
"classifier": {
"value": ""
}
},
"optional": false,
"transitive": true
},
"cross": {
"$type": "mill.scalalib.CrossVersion.Binary",
"platformed": false
},
"force": false
}
],
"valueHash": -728437380,
"inputsHash": -1244232985
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 0,
"inputsHash": -682936988
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 473519988,
"inputsHash": -511194116
}

@ -0,0 +1,47 @@
{
"value": [
{
"dep": {
"module": {
"organization": {
"value": "org.scala-lang"
},
"name": {
"value": "scala3-library"
},
"attributes": {
}
},
"version": "3.2.0",
"configuration": {
"value": "default(compile)"
},
"minimizedExclusions": {
"data": "coursier.core.MinimizedExclusions.ExcludeNone"
},
"publication": {
"name": "",
"type": {
"value": ""
},
"ext": {
"value": ""
},
"classifier": {
"value": ""
}
},
"optional": false,
"transitive": true
},
"cross": {
"$type": "mill.scalalib.CrossVersion.Binary",
"platformed": true
},
"force": true
}
],
"valueHash": 180912663,
"inputsHash": 1913053147
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 0,
"inputsHash": 49542187
}

@ -0,0 +1,7 @@
{
"value": [
],
"valueHash": 473519988,
"inputsHash": 49542187
}

@ -0,0 +1,5 @@
{
"value": "",
"valueHash": 0,
"inputsHash": 49542187
}

@ -0,0 +1,5 @@
{
"value": null,
"valueHash": 0,
"inputsHash": -1570750509
}

Some files were not shown because too many files have changed in this diff Show More