* [core] Introduce `Streamable` for simplified multiplatform `asFlow` and `asStream`. Make `Announcements.asFlow` not suspend.
* Remove `@JvmBlockingBridge` in native
* get kotlin version from Gradle Plugins
* add `kotlinVersion` to project module
* add kotlin version cell to wizard initial step
* get dependency `kotlin-stlib-*` version from maven
* rename `KotlinJvmVersion` to `KotlinStdlibVersion`
* `KotlinJvmVersion.kt` -> `KotlinStdlibVersion.kt`
* add: api dump
* feat: Member.level
* add: api dump
* rename: level to rank
* feat: rank show
* feat: honor flag
* fix: honor flag index
* feat: record and chart
* feat: flag and docs
* add: api dump
* fix: active
* fix: honor
* fix: active
* fix: rebase
* fix: docs
* feat: MemberActive
* fix: for review
* feat: other notification
* remove: low level api
* add: since and api dump
* add: since
* for: review
* add: event sync
* fix: name and docs
* fix: api dump
* fix: for review
* add: ActiveRank, MemberMedal close#2233
* fix: active for review
* improve public API for inlined GroupHonorType
* Change `@since 2.13.0` to `@since 2.13`
* dump api changes
* implement mock framework for Active
* change `GroupActive.flush` to `GroupActive.refresh`
* improve docs for GroupActive
* remove unnecessary expect/actual for MemberActive
* change property names in GroupInfo
* check permission in MockGroupActiveImpl
* optimize member names in CommonGroupActiveImpl
* fix error checking
* dump api
Co-authored-by: Him188 <Him188@mamoe.net>
* enhance(ECDH): reconstruct ECDH
common: 移动特定于 QQ 平台的实现到 OicqECDH,重新设计 ECDH,使 ECDH 类只针对算法本身,而不过多包括 QQ 协议的使用细节
jvm: 尝试优先使用平台加密实现,可能改善性能
jvm & android: 使用 curveName `secp256r1` 代替 `prime256v1`,前者在 Java 中更常用,可以被更多的 JCE 实现所识别(虽然都是指同一条曲线)
android: 使用系统自带的实现以减少依赖,并尝试兼容 Android P+ 版本
native: 中间储存时保留OpenSSL内部结构而不反复 new & free,提高性能
(为了实现智能指针,需要用到 `@ExperimentalStdlibApi` 的 `createCleaner`,但这种风险应该可以接受)
native: 直接使用 point/bignum 到 bytes 的转换,避免了 hex string 作为中间层,提高效率
* test(ECDH): fix AndroidTest
* style(Ecdh): obey official Kotlin coding conventions
> When using an acronym as part of a declaration name, capitalize it if it consists of two letters (IOStream); capitalize only the first letter if it is longer (XmlFormatter, HttpInputStream).
> [View origin](https://kotlinlang.org/docs/coding-conventions.html)
Co-authored-by: ArcticLampyrid <arcticlampyrid@outlook.com>