Skip to content

Releases: texport/superkassa-core

Release v1.0.4

Choose a tag to compare

@texport texport released this 09 Jul 06:41

Описание релиза v1.0.4

Список изменений по категориям

Новые возможности 🚀

  • Архитектурный рефакторинг доменного слоя: Вся бизнес-логика (проверка статуса KKM, валидация лимитов автономной работы, обработка отчетов) полностью перенесена из фасадного API-сервиса SuperkassaApiImpl.kt в изолированные доменные юзкейсы.
  • Запросы поиска номенклатуры: Добавлена низкоуровневая логика сериализации и парсинга ответов ОФД в OfdResponseParser.kt и LookupNomenclatureUseCase.kt для поиска номенклатуры по штрихкоду.
  • Расширенное тестовое покрытие: Добавлены новые тесты на поиск номенклатуры, формирование X-отчетов и разбор рекламных блоков ОФД.

Исправления ошибок 🐛

  • Корректная сериализация ставки НДС: Исправлена передача процентов НДС в запросах к ОФД — процент теперь кодируется в тысячных долях (например, 16000 вместо 16 для НДС 16%), согласно протоколу КГД.
  • Дробное количество в DTO: Тип количества товаров изменен с Long на Double для корректной поддержки дробных количеств на API и защиты от ошибок парсинга дробных чисел клиентами. На уровне маппера реализовано математическое округление до тысячных долей.
  • Сохранение оффлайн-подписи: В сценарии синхронизации очереди в ProcessQueueCommandUseCase.kt исправлена ошибка затирания оригинальной подписи autonomousSign значением null.
  • Парсинг фискального признака: Добавлен запасной разбор camelCase-ключа ticketNumber внутри утилиты OfdResponseUtils.extractFiscalSign.
  • Мультиязычная обработка таймаутов: Добавлено корректное распознавание русско- и казахскоязычных сообщений о таймаутах сети для переключения чеков в оффлайн-режим.

Инструменты и рутина 🛠️

  • Форматирование кода: Все файлы и импорты автоматически отформатированы с помощью Detekt.
  • Обновление версий: Версия библиотеки в Gradle-скриптах и манифесте SPM обновлена до 1.0.4.

Интеграция через Swift Package Manager (SPM) для iOS

Для интеграции библиотеки в iOS-приложения добавьте следующее описание бинарной зависимости в ваш Package.swift:

.binaryTarget(
    name: "SuperkassaCore",
    url: "https://github.com/texport/superkassa-core/releases/download/v1.0.4/SuperkassaCore.xcframework.zip",
    checksum: "dd4643875adbf2160b28767e56da8dfc8d201edb97384ad13c4f8504e0c582f8"
)

v1.0.3

Choose a tag to compare

@texport texport released this 07 Jul 07:14

Release v1.0.3

Features & Refactoring

  • Fully decoupled kotlinx.serialization from core-domain module to strictly follow clean architecture boundaries.
  • Replaced legacy @Suppress("DEPRECATION") and refactored datetime parsing via LocalDateTime to completely avoid compilation warnings.
  • Replaced outdated by getting DSL delegating syntax with modern named(...) Gradle API.
  • Reorganized Logger.kt source sets to resolve IDE compiler/index conflicts.

Bug Fixes

  • Standardized snapshot parsing time zone to Asia/Almaty (Kazakhstan Standard Time) to prevent system timezone drift.
  • Corrected storno ticket logic to subtract values from section totals, turnover calculations, and counts instead of accumulating them.
  • Fixed Maven Central publishing configuration to aggregate and upload only the unified root superkassa-core library target, removing standalone submodule artifacts.

Tooling & Chore

  • Upgraded publishing configuration to aggregate subprojects using nmcpAggregation.
  • Expanded unit test coverage in core-presentation to 100% and core-domain to 97%+.

Swift Package Manager (SPM)

Add the package to your Package.swift:

.package(url: "https://github.com/texport/superkassa-core.git", from: "1.0.3")

Binary Target Checksum (SHA-256):
5303d7c6b66a35e6fdbb7e09ec165ec71944bbc4c14dafdd69e66ebe2caf6981

v1.0.2

Choose a tag to compare

@texport texport released this 07 Jul 06:44

Release v1.0.2

Features & Refactoring

  • Fully decoupled kotlinx.serialization from core-domain module to strictly follow clean architecture boundaries.
  • Replaced legacy @Suppress("DEPRECATION") and refactored datetime parsing via LocalDateTime to completely avoid compilation warnings.
  • Replaced outdated by getting DSL delegating syntax with modern named(...) Gradle API.
  • Reorganized Logger.kt source sets to resolve IDE compiler/index conflicts.

Bug Fixes

  • Standardized snapshot parsing time zone to Asia/Almaty (Kazakhstan Standard Time) to prevent system timezone drift.
  • Corrected storno ticket logic to subtract values from section totals, turnover calculations, and counts instead of accumulating them.

Tooling & Chore

  • Upgraded publishing configuration to aggregate subprojects using nmcpAggregation.
  • Expanded unit test coverage in core-presentation to 100% and core-domain to 97%+.

Swift Package Manager (SPM)

Add the package to your Package.swift:

.package(url: "https://github.com/texport/superkassa-core.git", from: "1.0.2")

Binary Target Checksum (SHA-256):
9e887335253000fc53796ee819a1743ecf0d299b67d013b199fed7c207b52509

Release v1.0.1

Choose a tag to compare

@texport texport released this 29 Jun 15:10

Release v1.0.1 with offline fixes, logging and throttling corrections.

Release v1.0.0

Choose a tag to compare

@texport texport released this 29 Jun 15:08

Kotlin Multiplatform (KMP) core engine for Superkassa with SPM support. Includes core-domain, core-data, and core-presentation.

Release v1.0

Choose a tag to compare

@texport texport released this 28 Jun 19:14

Release v1.0 with Swift Package Manager support.