From 03e9c9d2b2c87237bd28408e4800e514a05dd745 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 30 Apr 2026 14:19:22 +0000 Subject: [PATCH] refactor(quartz): move EventInterner into nip01Core/cache package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Splits the cache primitives off into their own package. Files moved: nip01Core/core/EventInterner.kt → nip01Core/cache/EventInterner.kt nip01Core/core/EventInterner.jvmAndroid → nip01Core/cache/EventInterner.jvmAndroid nip01Core/core/EventInterner.apple → nip01Core/cache/EventInterner.apple nip01Core/core/EventInterner.linux → nip01Core/cache/EventInterner.linux nip01Core/core/EventInternerTest.kt → nip01Core/cache/EventInternerTest.kt Imports updated in SQLiteEventStore, QueryBuilder, EventStore (sqlite), FsEventStore, BaseDBTest. Each platform actual now explicitly imports nip01Core.core.Event / HexKey since we crossed package boundaries. 7/7 interner + 240/240 store + projection tests still pass. https://claude.ai/code/session_01Jny85MTu1ynKgFBgysfWu5 --- .../quartz/nip01Core/{core => cache}/EventInterner.apple.kt | 5 ++++- .../quartz/nip01Core/{core => cache}/EventInterner.kt | 5 ++++- .../quartz/nip01Core/store/sqlite/EventStore.kt | 2 +- .../quartz/nip01Core/store/sqlite/QueryBuilder.kt | 2 +- .../quartz/nip01Core/store/sqlite/SQLiteEventStore.kt | 2 +- .../quartz/nip01Core/store/sqlite/BaseDBTest.kt | 2 +- .../nip01Core/{core => cache}/EventInterner.jvmAndroid.kt | 4 +++- .../vitorpamplona/quartz/nip01Core/store/fs/FsEventStore.kt | 2 +- .../quartz/nip01Core/{core => cache}/EventInternerTest.kt | 4 +++- .../quartz/nip01Core/{core => cache}/EventInterner.linux.kt | 5 ++++- 10 files changed, 23 insertions(+), 10 deletions(-) rename quartz/src/appleMain/kotlin/com/vitorpamplona/quartz/nip01Core/{core => cache}/EventInterner.apple.kt (91%) rename quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/{core => cache}/EventInterner.kt (94%) rename quartz/src/jvmAndroid/kotlin/com/vitorpamplona/quartz/nip01Core/{core => cache}/EventInterner.jvmAndroid.kt (95%) rename quartz/src/jvmTest/kotlin/com/vitorpamplona/quartz/nip01Core/{core => cache}/EventInternerTest.kt (96%) rename quartz/src/linuxMain/kotlin/com/vitorpamplona/quartz/nip01Core/{core => cache}/EventInterner.linux.kt (90%) diff --git a/quartz/src/appleMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInterner.apple.kt b/quartz/src/appleMain/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInterner.apple.kt similarity index 91% rename from quartz/src/appleMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInterner.apple.kt rename to quartz/src/appleMain/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInterner.apple.kt index 4dc306f84b..ba6dc8c40a 100644 --- a/quartz/src/appleMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInterner.apple.kt +++ b/quartz/src/appleMain/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInterner.apple.kt @@ -18,7 +18,10 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.vitorpamplona.quartz.nip01Core.core +package com.vitorpamplona.quartz.nip01Core.cache + +import com.vitorpamplona.quartz.nip01Core.core.Event +import com.vitorpamplona.quartz.nip01Core.core.HexKey /** * Apple actual: passthrough. Kotlin/Native has weak refs but no diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInterner.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInterner.kt similarity index 94% rename from quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInterner.kt rename to quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInterner.kt index c0be04c212..1bb309ea9f 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInterner.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInterner.kt @@ -18,7 +18,10 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.vitorpamplona.quartz.nip01Core.core +package com.vitorpamplona.quartz.nip01Core.cache + +import com.vitorpamplona.quartz.nip01Core.core.Event +import com.vitorpamplona.quartz.nip01Core.core.HexKey /** * Process-wide interner that canonicalises [Event] instances by id so diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/EventStore.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/EventStore.kt index ddabf901a3..ebe8e86416 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/EventStore.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/EventStore.kt @@ -21,8 +21,8 @@ package com.vitorpamplona.quartz.nip01Core.store.sqlite import androidx.sqlite.driver.bundled.BundledSQLiteDriver +import com.vitorpamplona.quartz.nip01Core.cache.EventInterner import com.vitorpamplona.quartz.nip01Core.core.Event -import com.vitorpamplona.quartz.nip01Core.core.EventInterner import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl import com.vitorpamplona.quartz.nip01Core.relay.normalizer.normalizeRelayUrl diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/QueryBuilder.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/QueryBuilder.kt index 51db325bc8..52151be43f 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/QueryBuilder.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/QueryBuilder.kt @@ -22,8 +22,8 @@ package com.vitorpamplona.quartz.nip01Core.store.sqlite import androidx.sqlite.SQLiteConnection import androidx.sqlite.SQLiteStatement +import com.vitorpamplona.quartz.nip01Core.cache.EventInterner import com.vitorpamplona.quartz.nip01Core.core.Event -import com.vitorpamplona.quartz.nip01Core.core.EventInterner import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.Kind import com.vitorpamplona.quartz.nip01Core.core.OptimizedJsonMapper diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/SQLiteEventStore.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/SQLiteEventStore.kt index cc6e56f711..107d5cb9d0 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/SQLiteEventStore.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/SQLiteEventStore.kt @@ -24,8 +24,8 @@ import androidx.sqlite.SQLiteConnection import androidx.sqlite.SQLiteDriver import androidx.sqlite.SQLiteException import androidx.sqlite.driver.bundled.BundledSQLiteDriver +import com.vitorpamplona.quartz.nip01Core.cache.EventInterner import com.vitorpamplona.quartz.nip01Core.core.Event -import com.vitorpamplona.quartz.nip01Core.core.EventInterner import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.Kind import com.vitorpamplona.quartz.nip01Core.core.OptimizedJsonMapper diff --git a/quartz/src/commonTest/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/BaseDBTest.kt b/quartz/src/commonTest/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/BaseDBTest.kt index a89aaa9b1c..74e7291b6a 100644 --- a/quartz/src/commonTest/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/BaseDBTest.kt +++ b/quartz/src/commonTest/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/BaseDBTest.kt @@ -20,7 +20,7 @@ */ package com.vitorpamplona.quartz.nip01Core.store.sqlite -import com.vitorpamplona.quartz.nip01Core.core.EventInterner +import com.vitorpamplona.quartz.nip01Core.cache.EventInterner import com.vitorpamplona.quartz.utils.Secp256k1Instance import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/quartz/src/jvmAndroid/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInterner.jvmAndroid.kt b/quartz/src/jvmAndroid/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInterner.jvmAndroid.kt similarity index 95% rename from quartz/src/jvmAndroid/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInterner.jvmAndroid.kt rename to quartz/src/jvmAndroid/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInterner.jvmAndroid.kt index f728608aca..447ff393f0 100644 --- a/quartz/src/jvmAndroid/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInterner.jvmAndroid.kt +++ b/quartz/src/jvmAndroid/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInterner.jvmAndroid.kt @@ -18,8 +18,10 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.vitorpamplona.quartz.nip01Core.core +package com.vitorpamplona.quartz.nip01Core.cache +import com.vitorpamplona.quartz.nip01Core.core.Event +import com.vitorpamplona.quartz.nip01Core.core.HexKey import java.lang.ref.WeakReference import java.util.concurrent.ConcurrentHashMap diff --git a/quartz/src/jvmMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/fs/FsEventStore.kt b/quartz/src/jvmMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/fs/FsEventStore.kt index 50a606573c..a1ff995734 100644 --- a/quartz/src/jvmMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/fs/FsEventStore.kt +++ b/quartz/src/jvmMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/fs/FsEventStore.kt @@ -20,9 +20,9 @@ */ package com.vitorpamplona.quartz.nip01Core.store.fs +import com.vitorpamplona.quartz.nip01Core.cache.EventInterner import com.vitorpamplona.quartz.nip01Core.core.AddressableEvent import com.vitorpamplona.quartz.nip01Core.core.Event -import com.vitorpamplona.quartz.nip01Core.core.EventInterner import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.isAddressable import com.vitorpamplona.quartz.nip01Core.core.isEphemeral diff --git a/quartz/src/jvmTest/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInternerTest.kt b/quartz/src/jvmTest/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInternerTest.kt similarity index 96% rename from quartz/src/jvmTest/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInternerTest.kt rename to quartz/src/jvmTest/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInternerTest.kt index f55f79cd8a..c8eb078d13 100644 --- a/quartz/src/jvmTest/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInternerTest.kt +++ b/quartz/src/jvmTest/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInternerTest.kt @@ -18,8 +18,10 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.vitorpamplona.quartz.nip01Core.core +package com.vitorpamplona.quartz.nip01Core.cache +import com.vitorpamplona.quartz.nip01Core.core.HexKey +import com.vitorpamplona.quartz.nip01Core.core.OptimizedJsonMapper import com.vitorpamplona.quartz.nip01Core.signers.NostrSignerSync import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent import com.vitorpamplona.quartz.utils.Secp256k1Instance diff --git a/quartz/src/linuxMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInterner.linux.kt b/quartz/src/linuxMain/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInterner.linux.kt similarity index 90% rename from quartz/src/linuxMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInterner.linux.kt rename to quartz/src/linuxMain/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInterner.linux.kt index 38df76c6ef..c7f042f376 100644 --- a/quartz/src/linuxMain/kotlin/com/vitorpamplona/quartz/nip01Core/core/EventInterner.linux.kt +++ b/quartz/src/linuxMain/kotlin/com/vitorpamplona/quartz/nip01Core/cache/EventInterner.linux.kt @@ -18,7 +18,10 @@ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -package com.vitorpamplona.quartz.nip01Core.core +package com.vitorpamplona.quartz.nip01Core.cache + +import com.vitorpamplona.quartz.nip01Core.core.Event +import com.vitorpamplona.quartz.nip01Core.core.HexKey /** Linux native actual: passthrough. See `EventInterner.apple.kt`. */ actual class EventInterner {