--- a/core/build.gradle.kts	Tue Apr 22 14:19:23 2025 -0400
+++ b/core/build.gradle.kts	Tue Apr 22 14:35:57 2025 -0400
@@ -54,8 +54,8 @@
 
     sourceSets {
         commonMain.dependencies {
-            implementation(libs.okio)
-            implementation(libs.kotlinx.coroutines)
+            api(libs.okio)
+            api(libs.kotlinx.coroutines)
             implementation(libs.kotlinx.serialization.json)
         }
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/src/androidMain/kotlin/com/geekorum/aboutoss/core/gms/GmsLicenseInfoRepository.kt	Tue Apr 22 14:35:57 2025 -0400
@@ -0,0 +1,69 @@
+/*
+ * AboutOss is an utility library to retrieve and display
+ * opensource licenses in Android applications.
+ *
+ * Copyright (C) 2023-2025 by Frederic-Charles Barthelery.
+ *
+ * This file is part of AboutOss.
+ *
+ * AboutOss is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AboutOss is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AboutOss.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.geekorum.aboutoss.core.gms
+
+import android.content.Context
+import com.geekorum.aboutoss.core.LicenseInfoRepository
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.withContext
+import okio.source
+
+/**
+ * Retrieve License information stored in application resources
+ */
+class GmsLicenseInfoRepository(
+    private val appContext: Context,
+    private val mainCoroutineDispatcher: CoroutineDispatcher,
+    private val ioCoroutineDispatcher: CoroutineDispatcher,
+    private val thirdPartyLicensesResourceName: String = "third_party_licenses",
+    private val thirdPartyLicenseMetadataResourceName: String = "third_party_license_metadata"
+) : LicenseInfoRepository {
+
+    private var licensesInfo: Map<String, String>? = null
+
+    override suspend fun getLicensesInfo(): Map<String, String> = withContext(mainCoroutineDispatcher) {
+        parseLicenses()
+        checkNotNull(licensesInfo)
+    }
+
+    override suspend fun getLicenseFor(dependency: String): String = withContext(mainCoroutineDispatcher) {
+        parseLicenses()
+        checkNotNull(licensesInfo).let {
+            return@withContext it[dependency] ?: error("Dependency not found")
+        }
+    }
+
+    private suspend fun parseLicenses() = withContext(mainCoroutineDispatcher) {
+        if (licensesInfo == null) {
+            val licenses = withContext(ioCoroutineDispatcher) {
+                val parser = OssLicenseParser(
+                    thirdPartyLicensesSource = OssLicenseParser.openRawResourcesByName(appContext, thirdPartyLicensesResourceName).source(),
+                    thirdPartyLicensesMetadataSource = OssLicenseParser.openRawResourcesByName(appContext, thirdPartyLicenseMetadataResourceName).source()
+                )
+                parser.use {
+                    it.parseLicenses()
+                }
+            }
+            licensesInfo = licenses
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/src/androidMain/kotlin/com/geekorum/aboutoss/core/gms/OssLicenseParserExt.kt	Tue Apr 22 14:35:57 2025 -0400
@@ -0,0 +1,43 @@
+/*
+ * AboutOss is an utility library to retrieve and display
+ * opensource licenses in Android applications.
+ *
+ * Copyright (C) 2023-2025 by Frederic-Charles Barthelery.
+ *
+ * This file is part of AboutOss.
+ *
+ * AboutOss is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AboutOss is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AboutOss.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.geekorum.aboutoss.core.gms
+
+import android.annotation.SuppressLint
+import android.content.Context
+import java.io.InputStream
+
+@SuppressLint("DiscouragedApi")
+fun OssLicenseParser.Companion.openDefaultThirdPartyLicenses(context: Context): InputStream {
+    return openRawResourcesByName(context, "third_party_licenses")
+}
+
+@SuppressLint("DiscouragedApi")
+fun OssLicenseParser.Companion.openDefaultThirdPartyLicensesMetadata(context: Context): InputStream {
+    return openRawResourcesByName(context, "third_party_license_metadata")
+}
+
+@SuppressLint("DiscouragedApi")
+fun OssLicenseParser.Companion.openRawResourcesByName(context: Context, name: String): InputStream {
+    val resourceId = context.resources.getIdentifier(name, "raw", context.packageName)
+    check(resourceId != 0) { "$name was not found in resources raw of ${context.packageName}"}
+    return context.resources.openRawResource(resourceId)
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/src/androidMain/kotlin/com/geekorum/aboutoss/core/licensee/LicenseeLicenseInfoRepository.android.kt	Tue Apr 22 14:35:57 2025 -0400
@@ -0,0 +1,42 @@
+/*
+ * AboutOss is an utility library to retrieve and display
+ * opensource licenses in Android applications.
+ *
+ * Copyright (C) 2023-2025 by Frederic-Charles Barthelery.
+ *
+ * This file is part of AboutOss.
+ *
+ * AboutOss is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * AboutOss is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with AboutOss.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.geekorum.aboutoss.core.licensee
+
+import android.content.res.AssetManager
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.Dispatchers
+import okio.source
+
+fun LicenseeLicenseInfoRepository(
+    assetManager: AssetManager,
+    licenseeAssetsPath: String = "app/cash/licensee/artifacts.json",
+    mainCoroutineDispatcher: CoroutineDispatcher = Dispatchers.Main,
+    ioCoroutineDispatcher: CoroutineDispatcher = Dispatchers.IO,
+): LicenseeLicenseInfoRepository {
+    return LicenseeLicenseInfoRepository(
+        produceInput = {
+            assetManager.open(licenseeAssetsPath).source()
+        },
+        mainCoroutineDispatcher = mainCoroutineDispatcher,
+        ioCoroutineDispatcher = ioCoroutineDispatcher
+    )
+}
--- a/core/src/main/java/com/geekorum/aboutoss/core/gms/GmsLicenseInfoRepository.kt	Tue Apr 22 14:19:23 2025 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/*
- * AboutOss is an utility library to retrieve and display
- * opensource licenses in Android applications.
- *
- * Copyright (C) 2023-2025 by Frederic-Charles Barthelery.
- *
- * This file is part of AboutOss.
- *
- * AboutOss is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * AboutOss is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with AboutOss.  If not, see <http://www.gnu.org/licenses/>.
- */
-package com.geekorum.aboutoss.core.gms
-
-import android.content.Context
-import com.geekorum.aboutoss.core.LicenseInfoRepository
-import kotlinx.coroutines.CoroutineDispatcher
-import kotlinx.coroutines.withContext
-import okio.source
-
-/**
- * Retrieve License information stored in application resources
- */
-class GmsLicenseInfoRepository(
-    private val appContext: Context,
-    private val mainCoroutineDispatcher: CoroutineDispatcher,
-    private val ioCoroutineDispatcher: CoroutineDispatcher,
-    private val thirdPartyLicensesResourceName: String = "third_party_licenses",
-    private val thirdPartyLicenseMetadataResourceName: String = "third_party_license_metadata"
-) : LicenseInfoRepository {
-
-    private var licensesInfo: Map<String, String>? = null
-
-    override suspend fun getLicensesInfo(): Map<String, String> = withContext(mainCoroutineDispatcher) {
-        parseLicenses()
-        checkNotNull(licensesInfo)
-    }
-
-    override suspend fun getLicenseFor(dependency: String): String = withContext(mainCoroutineDispatcher) {
-        parseLicenses()
-        checkNotNull(licensesInfo).let {
-            return@withContext it[dependency] ?: error("Dependency not found")
-        }
-    }
-
-    private suspend fun parseLicenses() = withContext(mainCoroutineDispatcher) {
-        if (licensesInfo == null) {
-            val licenses = withContext(ioCoroutineDispatcher) {
-                val parser = OssLicenseParser(
-                    thirdPartyLicensesSource = OssLicenseParser.openRawResourcesByName(appContext, thirdPartyLicensesResourceName).source(),
-                    thirdPartyLicensesMetadataSource = OssLicenseParser.openRawResourcesByName(appContext, thirdPartyLicenseMetadataResourceName).source()
-                )
-                parser.use {
-                    it.parseLicenses()
-                }
-            }
-            licensesInfo = licenses
-        }
-    }
-}
\ No newline at end of file
--- a/core/src/main/java/com/geekorum/aboutoss/core/gms/OssLicenseParserExt.kt	Tue Apr 22 14:19:23 2025 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * AboutOss is an utility library to retrieve and display
- * opensource licenses in Android applications.
- *
- * Copyright (C) 2023-2025 by Frederic-Charles Barthelery.
- *
- * This file is part of AboutOss.
- *
- * AboutOss is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * AboutOss is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with AboutOss.  If not, see <http://www.gnu.org/licenses/>.
- */
-package com.geekorum.aboutoss.core.gms
-
-import android.annotation.SuppressLint
-import android.content.Context
-import java.io.InputStream
-
-@SuppressLint("DiscouragedApi")
-fun OssLicenseParser.Companion.openDefaultThirdPartyLicenses(context: Context): InputStream {
-    return openRawResourcesByName(context, "third_party_licenses")
-}
-
-@SuppressLint("DiscouragedApi")
-fun OssLicenseParser.Companion.openDefaultThirdPartyLicensesMetadata(context: Context): InputStream {
-    return openRawResourcesByName(context, "third_party_license_metadata")
-}
-
-@SuppressLint("DiscouragedApi")
-fun OssLicenseParser.Companion.openRawResourcesByName(context: Context, name: String): InputStream {
-    val resourceId = context.resources.getIdentifier(name, "raw", context.packageName)
-    check(resourceId != 0) { "$name was not found in resources raw of ${context.packageName}"}
-    return context.resources.openRawResource(resourceId)
-}
--- a/core/src/main/java/com/geekorum/aboutoss/core/licensee/LicenseeLicenseInfoRepository.android.kt	Tue Apr 22 14:19:23 2025 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * AboutOss is an utility library to retrieve and display
- * opensource licenses in Android applications.
- *
- * Copyright (C) 2023-2025 by Frederic-Charles Barthelery.
- *
- * This file is part of AboutOss.
- *
- * AboutOss is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * AboutOss is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with AboutOss.  If not, see <http://www.gnu.org/licenses/>.
- */
-package com.geekorum.aboutoss.core.licensee
-
-import android.content.res.AssetManager
-import kotlinx.coroutines.CoroutineDispatcher
-import kotlinx.coroutines.Dispatchers
-import okio.source
-
-fun LicenseeLicenseInfoRepository(
-    assetManager: AssetManager,
-    licenseeAssetsPath: String = "app/cash/licensee/artifacts.json",
-    mainCoroutineDispatcher: CoroutineDispatcher = Dispatchers.Main,
-    ioCoroutineDispatcher: CoroutineDispatcher = Dispatchers.IO,
-): LicenseeLicenseInfoRepository {
-    return LicenseeLicenseInfoRepository(
-        produceInput = {
-            assetManager.open(licenseeAssetsPath).source()
-        },
-        mainCoroutineDispatcher = mainCoroutineDispatcher,
-        ioCoroutineDispatcher = ioCoroutineDispatcher
-    )
-}