commit 8c1bd3a1443c1ed6cf35db7f68b58c46f3ef9df7 Author: William Brawner Date: Thu Sep 3 06:29:10 2020 -0700 Initial commit Signed-off-by: William Brawner diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fae6b74 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/.gradle +/.idea +/out +/build +*.iml +*.ipr +*.iws diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000..db88484 --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,37 @@ +plugins { + id("com.android.library") + kotlin("android") + kotlin("android.extensions") +} + +repositories { + jcenter() + mavenCentral() +} + +android { + compileSdkVersion(29) + defaultConfig { + minSdkVersion(23) + targetSdkVersion(29) + versionCode = 1 + versionName = "0.1.0" + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + buildTypes { + getByName("debug") { + } + getByName("release") { + } + } +} + +val ktorVersion: String by project +val logbackVersion: String by project + +dependencies { + implementation(project(":shared")) + implementation("io.ktor:ktor-client-android:$ktorVersion") +} + +tasks.getByName("check").dependsOn("lint") diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000..0a96d17 --- /dev/null +++ b/android/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..e023f16 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,28 @@ +import java.net.URI + +buildscript { + repositories { + jcenter() + mavenCentral() + google() + } + + val kotlinVersion: String by project + dependencies { + classpath("com.android.tools.build:gradle:4.0.1") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") + } +} + +allprojects { + group = "com.wbrawner.flayre" + version = "0.1.0" + repositories { + mavenLocal() + jcenter() + mavenCentral() + google() + maven { url = URI("https://kotlin.bintray.com/ktor") } + maven { url = URI("https://kotlin.bintray.com/kotlinx") } + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..a4519ea --- /dev/null +++ b/gradle.properties @@ -0,0 +1,5 @@ +ktorVersion=1.3.2 +kotlin.code.style=official +kotlinVersion=1.3.72 +logbackVersion=1.2.1 +exposedVersion=0.24.1 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..28861d2 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..4e1cc9d --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..cccdd3d --- /dev/null +++ b/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/local.properties b/local.properties new file mode 100644 index 0000000..942bb2c --- /dev/null +++ b/local.properties @@ -0,0 +1,8 @@ +## This file must *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. +# +# Location of the SDK. This is only used by Gradle. +# For customization when using a Version Control System, please read the +# header note. +#Sat Aug 22 22:27:03 MST 2020 +sdk.dir=/home/wbrawner/Android/Sdk diff --git a/server/build.gradle.kts b/server/build.gradle.kts new file mode 100644 index 0000000..24a6c8a --- /dev/null +++ b/server/build.gradle.kts @@ -0,0 +1,41 @@ +plugins { + kotlin("jvm") + application +} + +application { + mainClassName = "io.ktor.server.netty.EngineMain" +} + +sourceSets { + main { + java.srcDir("src") + resources.srcDir("resources") + } + test { + java.srcDir("test") + resources.srcDir("testresources") + } +} + +val ktorVersion: String by project +val logbackVersion: String by project +val exposedVersion: String by project + +dependencies { + implementation(kotlin("stdlib")) + implementation(project(":shared")) + implementation("io.ktor:ktor-server-netty:$ktorVersion") + implementation("ch.qos.logback:logback-classic:$logbackVersion") + implementation("io.ktor:ktor-server-core:$ktorVersion") + implementation("io.ktor:ktor-auth:$ktorVersion") + implementation("io.ktor:ktor-auth-jwt:$ktorVersion") + implementation("io.ktor:ktor-gson:$ktorVersion") + testImplementation("io.ktor:ktor-server-tests:$ktorVersion") + implementation("org.jetbrains.exposed:exposed-core:$exposedVersion") + implementation("org.jetbrains.exposed:exposed-dao:$exposedVersion") + implementation("org.jetbrains.exposed:exposed-jdbc:$exposedVersion") + implementation("org.jetbrains.exposed:exposed-java-time:$exposedVersion") + implementation("mysql:mysql-connector-java:8.0.19") + implementation("com.zaxxer:HikariCP:3.4.2") +} diff --git a/server/build/classes/kotlin/main/META-INF/server.kotlin_module b/server/build/classes/kotlin/main/META-INF/server.kotlin_module new file mode 100644 index 0000000..61fee5a Binary files /dev/null and b/server/build/classes/kotlin/main/META-INF/server.kotlin_module differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppRequest.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppRequest.class new file mode 100644 index 0000000..e86da2a Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppRequest.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$1$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$1$1.class new file mode 100644 index 0000000..688284c Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$1$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$1$2.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$1$2.class new file mode 100644 index 0000000..358ed21 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$1$2.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$1.class new file mode 100644 index 0000000..c97a7d2 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$2.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$2.class new file mode 100644 index 0000000..b2cbf84 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$2.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$3.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$3.class new file mode 100644 index 0000000..55d012b Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$3.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$4$1$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$4$1$1.class new file mode 100644 index 0000000..2bf8174 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$4$1$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$4$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$4$1.class new file mode 100644 index 0000000..061530e Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$4$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$4.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$4.class new file mode 100644 index 0000000..8659e1e Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$4.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$5$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$5$1.class new file mode 100644 index 0000000..8f92e79 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$5$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$5.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$5.class new file mode 100644 index 0000000..7c6b0b7 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$5.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$6$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$6$1.class new file mode 100644 index 0000000..1a10ef0 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$6$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$6.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$6.class new file mode 100644 index 0000000..3b2addf Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt$module$6.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt.class new file mode 100644 index 0000000..3e47dda Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/ApplicationKt.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/Apps.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/Apps.class new file mode 100644 index 0000000..1340d80 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/Apps.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$1$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$1$1.class new file mode 100644 index 0000000..aa2607f Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$1$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$1.class new file mode 100644 index 0000000..658825a Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$2$1$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$2$1$1.class new file mode 100644 index 0000000..fcccce8 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$2$1$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$2$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$2$1.class new file mode 100644 index 0000000..7d714c4 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$2$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$2.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$2.class new file mode 100644 index 0000000..640da00 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$2.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$3.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$3.class new file mode 100644 index 0000000..c44fcbe Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$3.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$4$updated$1$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$4$updated$1$1.class new file mode 100644 index 0000000..1b5a96f Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$4$updated$1$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$4$updated$1$2.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$4$updated$1$2.class new file mode 100644 index 0000000..f7f9721 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$4$updated$1$2.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$4$updated$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$4$updated$1.class new file mode 100644 index 0000000..3c66400 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$4$updated$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$4.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$4.class new file mode 100644 index 0000000..d68e042 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$4.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$5$deleted$1$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$5$deleted$1$1.class new file mode 100644 index 0000000..ac37393 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$5$deleted$1$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$5$deleted$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$5$deleted$1.class new file mode 100644 index 0000000..4f873c6 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$5$deleted$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$5.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$5.class new file mode 100644 index 0000000..20dd13e Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1$5.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1.class new file mode 100644 index 0000000..9031e3d Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt$appsRoutes$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt.class new file mode 100644 index 0000000..6b168bb Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/AppsKt.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/Events.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/Events.class new file mode 100644 index 0000000..d52e269 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/Events.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/EventsKt$authenticatedEventsRoutes$1$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/EventsKt$authenticatedEventsRoutes$1$1.class new file mode 100644 index 0000000..82bb48f Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/EventsKt$authenticatedEventsRoutes$1$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/EventsKt$authenticatedEventsRoutes$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/EventsKt$authenticatedEventsRoutes$1.class new file mode 100644 index 0000000..e140abc Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/EventsKt$authenticatedEventsRoutes$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/EventsKt$unauthenticatedEventsRoutes$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/EventsKt$unauthenticatedEventsRoutes$1.class new file mode 100644 index 0000000..5a0a514 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/EventsKt$unauthenticatedEventsRoutes$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/EventsKt.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/EventsKt.class new file mode 100644 index 0000000..7244dc5 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/EventsKt.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/FlayreDatabase$init$1.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/FlayreDatabase$init$1.class new file mode 100644 index 0000000..b9e55fa Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/FlayreDatabase$init$1.class differ diff --git a/server/build/classes/kotlin/main/com/wbrawner/flayre/server/FlayreDatabase.class b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/FlayreDatabase.class new file mode 100644 index 0000000..c2f1194 Binary files /dev/null and b/server/build/classes/kotlin/main/com/wbrawner/flayre/server/FlayreDatabase.class differ diff --git a/server/build/kotlin/compileKotlin/build-history.bin b/server/build/kotlin/compileKotlin/build-history.bin new file mode 100644 index 0000000..129d863 Binary files /dev/null and b/server/build/kotlin/compileKotlin/build-history.bin differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab new file mode 100644 index 0000000..6600c50 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream new file mode 100644 index 0000000..c93d758 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len new file mode 100644 index 0000000..bc32683 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.len b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.len new file mode 100644 index 0000000..93a595b Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.values.at b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.values.at new file mode 100644 index 0000000..9a1f244 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.values.at differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i new file mode 100644 index 0000000..8ac1c66 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i.len b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab new file mode 100644 index 0000000..599d098 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream new file mode 100644 index 0000000..93b7c5c Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len new file mode 100644 index 0000000..31d8b36 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len new file mode 100644 index 0000000..ec8f944 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at new file mode 100644 index 0000000..323d956 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i new file mode 100644 index 0000000..0b05704 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab new file mode 100644 index 0000000..160a0f6 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream new file mode 100644 index 0000000..4f1718d Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len new file mode 100644 index 0000000..12f4ea4 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len new file mode 100644 index 0000000..b4da131 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at new file mode 100644 index 0000000..c1d3b21 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i new file mode 100644 index 0000000..ecff483 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab new file mode 100644 index 0000000..a6830d8 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream new file mode 100644 index 0000000..0474c22 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len new file mode 100644 index 0000000..5024611 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.len new file mode 100644 index 0000000..93a595b Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.values.at b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.values.at new file mode 100644 index 0000000..5290931 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.values.at differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i new file mode 100644 index 0000000..61d929e Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab new file mode 100644 index 0000000..ac1b14c Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream new file mode 100644 index 0000000..e703a72 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len new file mode 100644 index 0000000..213dab4 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.len new file mode 100644 index 0000000..fd5292d Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at new file mode 100644 index 0000000..c325776 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i new file mode 100644 index 0000000..55667da Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab new file mode 100644 index 0000000..0f50aef Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream new file mode 100644 index 0000000..4da9e9f Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len new file mode 100644 index 0000000..bc32683 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len new file mode 100644 index 0000000..93a595b Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at new file mode 100644 index 0000000..1568a69 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i new file mode 100644 index 0000000..51b418f Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab new file mode 100644 index 0000000..8c3d91f Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream new file mode 100644 index 0000000..6f15d1e Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len new file mode 100644 index 0000000..d263632 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.len new file mode 100644 index 0000000..2a17e6e Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.values.at b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.values.at new file mode 100644 index 0000000..3413c64 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.values.at differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i new file mode 100644 index 0000000..8934d26 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab new file mode 100644 index 0000000..fdeef94 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream new file mode 100644 index 0000000..ed4dfe7 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len new file mode 100644 index 0000000..5f1f7d5 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.len new file mode 100644 index 0000000..01bdaa1 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.values.at b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.values.at new file mode 100644 index 0000000..49f089b Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.values.at differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i new file mode 100644 index 0000000..3fd34bf Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i.len b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/counters.tab b/server/build/kotlin/compileKotlin/caches-jvm/lookups/counters.tab new file mode 100644 index 0000000..cc4b6ab --- /dev/null +++ b/server/build/kotlin/compileKotlin/caches-jvm/lookups/counters.tab @@ -0,0 +1,2 @@ +19 +15 \ No newline at end of file diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab new file mode 100644 index 0000000..4b77e21 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream new file mode 100644 index 0000000..4da9e9f Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len new file mode 100644 index 0000000..bc32683 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.len b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.len new file mode 100644 index 0000000..93a595b Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.values.at b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.values.at new file mode 100644 index 0000000..dbc6bf9 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.values.at differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i new file mode 100644 index 0000000..51b418f Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i.len b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab new file mode 100644 index 0000000..eee755f Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream new file mode 100644 index 0000000..54555db Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len new file mode 100644 index 0000000..2b895e7 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.len b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.len new file mode 100644 index 0000000..14f7c06 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.values.at b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.values.at new file mode 100644 index 0000000..28ebd18 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.values.at differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i new file mode 100644 index 0000000..41018a9 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i.len b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab new file mode 100644 index 0000000..b445e09 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream new file mode 100644 index 0000000..e6b62b7 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream.len b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream.len new file mode 100644 index 0000000..2b649a7 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.len b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.len new file mode 100644 index 0000000..d3be744 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.len differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values new file mode 100644 index 0000000..256e857 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.at b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.at new file mode 100644 index 0000000..fe4a6c6 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.at differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.s b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.s new file mode 100644 index 0000000..0961010 --- /dev/null +++ b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.s @@ -0,0 +1 @@ +ÙÌþ;Í1ë+ \ No newline at end of file diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i new file mode 100644 index 0000000..6006a38 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i differ diff --git a/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i.len b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/server/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i.len differ diff --git a/server/build/kotlin/compileKotlin/last-build.bin b/server/build/kotlin/compileKotlin/last-build.bin new file mode 100644 index 0000000..8562d04 Binary files /dev/null and b/server/build/kotlin/compileKotlin/last-build.bin differ diff --git a/server/build/resources/main/application.conf b/server/build/resources/main/application.conf new file mode 100644 index 0000000..3a7215c --- /dev/null +++ b/server/build/resources/main/application.conf @@ -0,0 +1,30 @@ +ktor { + deployment { + port = 8080 + port = ${?PORT} + } + application { + modules = [ com.wbrawner.flayre.server.ApplicationKt.module ] + } +} + +flayre { + admin { + user = admin + user = ${?ADMIN_USER} + password = flayre + password = ${?ADMIN_PASSWORD} + } + database { + host = localhost + host = ${?DB_HOST} + port = 3306 + port = ${?DB_PORT} + name = flayre + name = ${?DB_NAME} + user = flayre + user = ${?DB_USER} + password = flayre + password = ${?DB_PASSWORD} + } +} \ No newline at end of file diff --git a/server/build/resources/main/logback.xml b/server/build/resources/main/logback.xml new file mode 100644 index 0000000..bdbb64e --- /dev/null +++ b/server/build/resources/main/logback.xml @@ -0,0 +1,12 @@ + + + + %d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + diff --git a/server/resources/application.conf b/server/resources/application.conf new file mode 100644 index 0000000..3a7215c --- /dev/null +++ b/server/resources/application.conf @@ -0,0 +1,30 @@ +ktor { + deployment { + port = 8080 + port = ${?PORT} + } + application { + modules = [ com.wbrawner.flayre.server.ApplicationKt.module ] + } +} + +flayre { + admin { + user = admin + user = ${?ADMIN_USER} + password = flayre + password = ${?ADMIN_PASSWORD} + } + database { + host = localhost + host = ${?DB_HOST} + port = 3306 + port = ${?DB_PORT} + name = flayre + name = ${?DB_NAME} + user = flayre + user = ${?DB_USER} + password = flayre + password = ${?DB_PASSWORD} + } +} \ No newline at end of file diff --git a/server/resources/logback.xml b/server/resources/logback.xml new file mode 100644 index 0000000..bdbb64e --- /dev/null +++ b/server/resources/logback.xml @@ -0,0 +1,12 @@ + + + + %d{YYYY-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + diff --git a/server/src/com/wbrawner/flayre/server/Application.kt b/server/src/com/wbrawner/flayre/server/Application.kt new file mode 100644 index 0000000..a7289f4 --- /dev/null +++ b/server/src/com/wbrawner/flayre/server/Application.kt @@ -0,0 +1,77 @@ +package com.wbrawner.flayre.server + +import io.ktor.application.* +import io.ktor.response.* +import io.ktor.routing.* +import io.ktor.http.* +import io.ktor.features.* +import io.ktor.auth.* +import io.ktor.gson.* +import org.jetbrains.exposed.sql.and +import org.jetbrains.exposed.sql.select +import org.jetbrains.exposed.sql.selectAll +import org.jetbrains.exposed.sql.stringParam +import org.jetbrains.exposed.sql.transactions.transaction +import java.util.* + +fun main(args: Array): Unit = io.ktor.server.netty.EngineMain.main(args) + +@Suppress("unused") // Referenced in application.conf +@kotlin.jvm.JvmOverloads +fun Application.module(testing: Boolean = false) { + + install(Compression) { + gzip { + priority = 1.0 + } + deflate { + priority = 10.0 + minimumSize(1024) // condition + } + } + + install(AutoHeadResponse) + + install(CORS) { + method(HttpMethod.Options) + method(HttpMethod.Post) + header(HttpHeaders.Authorization) + allowCredentials = true + anyHost() + } + + install(DataConversion) + + install(DefaultHeaders) { + header("X-Engine", "Ktor") // will send this header with each response + } + + install(Authentication) { + basic("flayreBasicAuth") { + realm = "Flayre Server" + validate { + if (it.name == application.environment.config.property("flayre.admin.user").getString() + && it.password == application.environment.config.property("flayre.admin.password").getString()) { + UserIdPrincipal(it.name) + } else { + null + } + } + } + } + + install(ContentNegotiation) { + gson { + } + } + + FlayreDatabase.init() + + routing { + authenticate("flayreBasicAuth") { + appsRoutes() + authenticatedEventsRoutes() + } + unauthenticatedEventsRoutes() + } +} diff --git a/server/src/com/wbrawner/flayre/server/Apps.kt b/server/src/com/wbrawner/flayre/server/Apps.kt new file mode 100644 index 0000000..de24723 --- /dev/null +++ b/server/src/com/wbrawner/flayre/server/Apps.kt @@ -0,0 +1,88 @@ +package com.wbrawner.flayre.server + +import com.wbrawner.flayre.App +import com.wbrawner.flayre.randomId +import io.ktor.application.* +import io.ktor.http.* +import io.ktor.request.* +import io.ktor.response.* +import io.ktor.routing.* +import org.jetbrains.exposed.sql.* +import org.jetbrains.exposed.sql.transactions.transaction + +object Apps : Table() { + override val primaryKey: PrimaryKey? + get() = PrimaryKey(id) + val id = varchar("id", 32) + val name = varchar("name", 256) +} + +fun ResultRow.toApp() = App( + get(Apps.id), + get(Apps.name) +) + +data class AppRequest(val name: String) + +fun Route.appsRoutes() { + route("/apps") { + get { + call.respond(transaction { + Apps.selectAll().map { it.toApp() } + }) + } + + post { + val app = call.receive() + call.respond( + transaction { + Apps.insert { + it[id] = randomId(32) + it[name] = app.name + } + .resultedValues + ?.firstOrNull() + ?.toApp() + ?: HttpStatusCode.InternalServerError + } + ) + } + + get("{appId}") { + Apps.select { Apps.id.eq(call.parameters["appId"]!!) } + .singleOrNull() + ?.let { + call.respond(it) + } + ?: call.respond(HttpStatusCode.NotFound) + } + + patch("{appId}") { + val appUpdate = call.receive() + val appId = call.parameters["appId"]!! + val updated = transaction { + Apps.update({ Apps.id.eq(appId) }) { + it[name] = appUpdate.name + } + } + val status = if (updated > 0) { + HttpStatusCode.NoContent + } else { + HttpStatusCode.NotFound + } + call.respond(status) + } + + delete("{appId}") { + val deleted = transaction { + Apps.deleteWhere { Apps.id.eq(call.parameters["appId"]!!) } + } + val status = if (deleted > 0) { + HttpStatusCode.NoContent + } else { + HttpStatusCode.NotFound + } + call.respond(status) + } + } +} diff --git a/server/src/com/wbrawner/flayre/server/Database.kt b/server/src/com/wbrawner/flayre/server/Database.kt new file mode 100644 index 0000000..877b761 --- /dev/null +++ b/server/src/com/wbrawner/flayre/server/Database.kt @@ -0,0 +1,31 @@ +package com.wbrawner.flayre.server + +import com.typesafe.config.ConfigFactory +import com.zaxxer.hikari.HikariConfig +import com.zaxxer.hikari.HikariDataSource +import io.ktor.config.* +import io.ktor.server.engine.* +import org.jetbrains.exposed.sql.Database +import org.jetbrains.exposed.sql.SchemaUtils +import org.jetbrains.exposed.sql.Table +import org.jetbrains.exposed.sql.`java-time`.datetime +import org.jetbrains.exposed.sql.transactions.transaction + + +object FlayreDatabase { + private val appConfig = HoconApplicationConfig(ConfigFactory.load()) + + private val config = HikariConfig().apply { + jdbcUrl = "jdbc:mysql://${appConfig.property("flayre.database.host").getString()}/${appConfig.property("flayre.database.name").getString()}" + driverClassName = "com.mysql.cj.jdbc.Driver" + username = "${appConfig.property("flayre.database.user").getString()}" + password = "${appConfig.property("flayre.database.password").getString()}" + maximumPoolSize = 10 + } + fun init() { + Database.connect(HikariDataSource(config)) + transaction { + SchemaUtils.create (Apps, Events) + } + } +} diff --git a/server/src/com/wbrawner/flayre/server/Events.kt b/server/src/com/wbrawner/flayre/server/Events.kt new file mode 100644 index 0000000..b3e359d --- /dev/null +++ b/server/src/com/wbrawner/flayre/server/Events.kt @@ -0,0 +1,78 @@ +package com.wbrawner.flayre.server + +import com.wbrawner.flayre.Event +import io.ktor.application.* +import io.ktor.http.* +import io.ktor.response.* +import io.ktor.routing.* +import org.jetbrains.exposed.sql.ResultRow +import org.jetbrains.exposed.sql.Table +import org.jetbrains.exposed.sql.`java-time`.datetime +import org.jetbrains.exposed.sql.select +import org.jetbrains.exposed.sql.transactions.transaction +import java.time.Instant +import java.time.ZoneOffset +import java.util.* + +object Events : Table() { + override val primaryKey: PrimaryKey? + get() = PrimaryKey(id) + val id = varchar("id", 32) + val appId = varchar("app_id", 32) references Apps.id + val date = datetime("date") + val userAgent = varchar("user_agent", 256).nullable() + val platform = varchar("platform", 256).nullable() + val manufacturer = varchar("manufacturer", 256).nullable() + val model = varchar("model", 256).nullable() + val version = varchar("version", 256).nullable() + val locale = varchar("locale", 256) + val sessionId = varchar("session_id", 32) + val data = text("data") + val type = varchar("type", 256) +} + +fun ResultRow.toEvent() = Event( + get(Events.id), + get(Events.appId), + Date(get(Events.date).toInstant(ZoneOffset.UTC).toEpochMilli()), + Event.InteractionType.valueOf(get(Events.type)), + get(Events.userAgent), + get(Events.platform), + get(Events.manufacturer), + get(Events.model), + get(Events.version), + get(Events.locale), + get(Events.sessionId), + get(Events.data) +) + +fun Route.authenticatedEventsRoutes() { + get("/events") { + val appId = call.parameters["appId"] + if (appId.isNullOrBlank()) { + call.respond(HttpStatusCode.BadRequest, "Invalid app id") + return@get + } +// val from = call.parameters["from"]?.let { +// Instant.parse(it) +// }?: Calendar.getInstance().apply { +// add(Calendar.DATE, -90) +// }.toInstant() +// val to = call.parameters["to"]?.let { +// Instant.parse(it) +// }?: Calendar.getInstance().apply { +// add(Calendar.DATE, -90) +// }.toInstant() + + call.respond(transaction { + Events.select { Events.appId.eq(appId) } + .map { it.toEvent() } + }) + } +} + +fun Route.unauthenticatedEventsRoutes() { + post("/events") { + + } +} diff --git a/server/test/ApplicationTest.kt b/server/test/ApplicationTest.kt new file mode 100644 index 0000000..52f7de1 --- /dev/null +++ b/server/test/ApplicationTest.kt @@ -0,0 +1,18 @@ +package com.wbrawner.flayre + +import com.wbrawner.flayre.com.wbrawner.flayre.server.module +import io.ktor.http.* +import kotlin.test.* +import io.ktor.server.testing.* + +class ApplicationTest { + @Test + fun testRoot() { + withTestApplication({ module(testing = true) }) { + handleRequest(HttpMethod.Get, "/").apply { + assertEquals(HttpStatusCode.OK, response.status()) + assertEquals("HELLO WORLD!", response.content) + } + } + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..be87ef9 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,2 @@ +rootProject.name = "flayre" +include("shared", "server", "android") diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts new file mode 100644 index 0000000..521811e --- /dev/null +++ b/shared/build.gradle.kts @@ -0,0 +1,22 @@ +plugins { + kotlin("jvm") +} + +repositories { + mavenCentral() +} + +sourceSets { + main { + java.srcDir("src") + resources.srcDir("resources") + } + test { + java.srcDir("test") + resources.srcDir("testresources") + } +} + +dependencies { + implementation(kotlin("stdlib")) +} diff --git a/shared/build/classes/kotlin/main/META-INF/shared.kotlin_module b/shared/build/classes/kotlin/main/META-INF/shared.kotlin_module new file mode 100644 index 0000000..3c9df98 Binary files /dev/null and b/shared/build/classes/kotlin/main/META-INF/shared.kotlin_module differ diff --git a/shared/build/classes/kotlin/main/com/wbrawner/flayre/App.class b/shared/build/classes/kotlin/main/com/wbrawner/flayre/App.class new file mode 100644 index 0000000..b5ac38c Binary files /dev/null and b/shared/build/classes/kotlin/main/com/wbrawner/flayre/App.class differ diff --git a/shared/build/classes/kotlin/main/com/wbrawner/flayre/Event$InteractionType.class b/shared/build/classes/kotlin/main/com/wbrawner/flayre/Event$InteractionType.class new file mode 100644 index 0000000..bf9e1a6 Binary files /dev/null and b/shared/build/classes/kotlin/main/com/wbrawner/flayre/Event$InteractionType.class differ diff --git a/shared/build/classes/kotlin/main/com/wbrawner/flayre/Event.class b/shared/build/classes/kotlin/main/com/wbrawner/flayre/Event.class new file mode 100644 index 0000000..0ab10fc Binary files /dev/null and b/shared/build/classes/kotlin/main/com/wbrawner/flayre/Event.class differ diff --git a/shared/build/classes/kotlin/main/com/wbrawner/flayre/UtilsKt.class b/shared/build/classes/kotlin/main/com/wbrawner/flayre/UtilsKt.class new file mode 100644 index 0000000..5ca7b71 Binary files /dev/null and b/shared/build/classes/kotlin/main/com/wbrawner/flayre/UtilsKt.class differ diff --git a/shared/build/kotlin/compileKotlin/build-history.bin b/shared/build/kotlin/compileKotlin/build-history.bin new file mode 100644 index 0000000..d9b127a Binary files /dev/null and b/shared/build/kotlin/compileKotlin/build-history.bin differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab new file mode 100644 index 0000000..5ec8075 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream new file mode 100644 index 0000000..3d42114 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len new file mode 100644 index 0000000..9718de0 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.keystream.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.len b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.len new file mode 100644 index 0000000..a9f80ae Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.values.at b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.values.at new file mode 100644 index 0000000..dba211e Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab.values.at differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i new file mode 100644 index 0000000..145d272 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i.len b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/inputs/source-to-output.tab_i.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab new file mode 100644 index 0000000..16c6b6f Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream new file mode 100644 index 0000000..e68f645 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len new file mode 100644 index 0000000..51d3a59 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len new file mode 100644 index 0000000..a9f80ae Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at new file mode 100644 index 0000000..10855b1 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i new file mode 100644 index 0000000..6d1a53d Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab new file mode 100644 index 0000000..709797a Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream new file mode 100644 index 0000000..b323151 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len new file mode 100644 index 0000000..e5009a4 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len new file mode 100644 index 0000000..93a595b Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at new file mode 100644 index 0000000..4995bd6 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i new file mode 100644 index 0000000..fbbf3ac Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab new file mode 100644 index 0000000..3c3c7b5 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream new file mode 100644 index 0000000..5d44586 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len new file mode 100644 index 0000000..19ced97 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.len new file mode 100644 index 0000000..2a17e6e Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.values.at b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.values.at new file mode 100644 index 0000000..6fcb00a Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab.values.at differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i new file mode 100644 index 0000000..c539ed2 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/package-parts.tab_i.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab new file mode 100644 index 0000000..8301b8b Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream new file mode 100644 index 0000000..d5b7722 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len new file mode 100644 index 0000000..b701bcc Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.keystream.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.len new file mode 100644 index 0000000..ec8f944 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at new file mode 100644 index 0000000..e441767 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab.values.at differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i new file mode 100644 index 0000000..68eebb1 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/proto.tab_i.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab new file mode 100644 index 0000000..5ea04f8 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream new file mode 100644 index 0000000..3d42114 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len new file mode 100644 index 0000000..9718de0 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len new file mode 100644 index 0000000..a9f80ae Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at new file mode 100644 index 0000000..b9d5218 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i new file mode 100644 index 0000000..145d272 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab new file mode 100644 index 0000000..433a155 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream new file mode 100644 index 0000000..28ce24c Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len new file mode 100644 index 0000000..1ff194f Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.len new file mode 100644 index 0000000..2a17e6e Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.values.at b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.values.at new file mode 100644 index 0000000..c5fb63d Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab.values.at differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i new file mode 100644 index 0000000..1feb083 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/subtypes.tab_i.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab new file mode 100644 index 0000000..5ac40d8 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream new file mode 100644 index 0000000..31e472c Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len new file mode 100644 index 0000000..541378f Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.len new file mode 100644 index 0000000..2a17e6e Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.values.at b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.values.at new file mode 100644 index 0000000..97b8db1 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab.values.at differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i new file mode 100644 index 0000000..03f9a09 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i.len b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/jvm/kotlin/supertypes.tab_i.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/counters.tab b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/counters.tab new file mode 100644 index 0000000..7b707e9 --- /dev/null +++ b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/counters.tab @@ -0,0 +1,2 @@ +5 +2 \ No newline at end of file diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab new file mode 100644 index 0000000..30219ef Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream new file mode 100644 index 0000000..3d42114 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len new file mode 100644 index 0000000..9718de0 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.keystream.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.len b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.len new file mode 100644 index 0000000..a9f80ae Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.values.at b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.values.at new file mode 100644 index 0000000..f6a4f17 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab.values.at differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i new file mode 100644 index 0000000..145d272 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i.len b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/file-to-id.tab_i.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab new file mode 100644 index 0000000..c74fca7 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream new file mode 100644 index 0000000..1dd772c Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len new file mode 100644 index 0000000..62f3e6f Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.keystream.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.len b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.len new file mode 100644 index 0000000..ec8f944 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.values.at b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.values.at new file mode 100644 index 0000000..f237254 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab.values.at differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i new file mode 100644 index 0000000..e6ff6ac Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i.len b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/id-to-file.tab_i.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab new file mode 100644 index 0000000..3ded534 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream new file mode 100644 index 0000000..c7f299f Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream.len b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream.len new file mode 100644 index 0000000..7bc863f Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.keystream.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.len b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.len new file mode 100644 index 0000000..7ce6409 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.len differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.at b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.at new file mode 100644 index 0000000..697dbec Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab.values.at differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i new file mode 100644 index 0000000..06f7f18 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i differ diff --git a/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i.len b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i.len new file mode 100644 index 0000000..131e265 Binary files /dev/null and b/shared/build/kotlin/compileKotlin/caches-jvm/lookups/lookups.tab_i.len differ diff --git a/shared/build/kotlin/compileKotlin/last-build.bin b/shared/build/kotlin/compileKotlin/last-build.bin new file mode 100644 index 0000000..133e17c Binary files /dev/null and b/shared/build/kotlin/compileKotlin/last-build.bin differ diff --git a/shared/build/kotlin/shared010jar-classes.txt b/shared/build/kotlin/shared010jar-classes.txt new file mode 100644 index 0000000..1741d07 --- /dev/null +++ b/shared/build/kotlin/shared010jar-classes.txt @@ -0,0 +1 @@ +/home/wbrawner/Projects/flayre-android/shared/build/classes/kotlin/main/com/wbrawner/flayre/App.class:/home/wbrawner/Projects/flayre-android/shared/build/classes/kotlin/main/com/wbrawner/flayre/Event$InteractionType.class:/home/wbrawner/Projects/flayre-android/shared/build/classes/kotlin/main/com/wbrawner/flayre/Event.class:/home/wbrawner/Projects/flayre-android/shared/build/classes/kotlin/main/com/wbrawner/flayre/UtilsKt.class \ No newline at end of file diff --git a/shared/build/libs/shared-0.1.0.jar b/shared/build/libs/shared-0.1.0.jar new file mode 100644 index 0000000..8bbe37a Binary files /dev/null and b/shared/build/libs/shared-0.1.0.jar differ diff --git a/shared/build/tmp/jar/MANIFEST.MF b/shared/build/tmp/jar/MANIFEST.MF new file mode 100644 index 0000000..59499bc --- /dev/null +++ b/shared/build/tmp/jar/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/shared/src/com/wbrawner/flayre/App.kt b/shared/src/com/wbrawner/flayre/App.kt new file mode 100644 index 0000000..fb3f93a --- /dev/null +++ b/shared/src/com/wbrawner/flayre/App.kt @@ -0,0 +1,6 @@ +package com.wbrawner.flayre + +class App( + val id: String = randomId(32), + val name: String +) \ No newline at end of file diff --git a/shared/src/com/wbrawner/flayre/Event.kt b/shared/src/com/wbrawner/flayre/Event.kt new file mode 100644 index 0000000..abe9540 --- /dev/null +++ b/shared/src/com/wbrawner/flayre/Event.kt @@ -0,0 +1,26 @@ +package com.wbrawner.flayre + +import java.util.* + +class Event( + val id: String = randomId(32), + val appId: String, + val date: Date, + val type: InteractionType, + val userAgent: String? = null, // For web use only + val platform: String? = null, + val manufacturer: String? = null, + val model: String? = null, + val version: String? = null, + val locale: String? = null, + val sessionId: String? = null, + val data: String? = null +) { + enum class InteractionType { + VIEW, + CLICK, + ERROR, + CRASH + } +} + diff --git a/shared/src/com/wbrawner/flayre/Utils.kt b/shared/src/com/wbrawner/flayre/Utils.kt new file mode 100644 index 0000000..8d74ba4 --- /dev/null +++ b/shared/src/com/wbrawner/flayre/Utils.kt @@ -0,0 +1,12 @@ +package com.wbrawner.flayre + +import kotlin.random.Random + +private val characters = ('a'..'z') + ('A'..'Z') + (0..9) +fun randomId(length: Int): String { + val id = StringBuilder("") + while (id.length < length) { + id.append(characters[Random.nextInt(0, characters.size)]) + } + return id.toString() +} \ No newline at end of file