* [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>
- always use factory API from mirai-core
- Terminal is still overriding standard outputs
- plugins are forbidden to override logging framework (this was allowed but not working before)
* feat: support friend group
* remove unnecessary modifications
* toByteArray2
* support friendGroup, with api dump
* support rename, with api dump
* modify as required
* modify as required
* reverse
* doc
* FriendGroups
* api dump
* modify as required
* fix CI
* FriendGroup sync notice
* api dump
* modify as required
* immutable
* add friends: ContactList in FriendGroup
* more sync notice
* modify log content
* Change `FriendGroup.friends` to `Collection<Friend>`
* Fix `FriendGroup.friends.isEmpty()`
* modified as require, untested
* del count and online count in info
* change import
* fix missing import
* set @since 2.13 and modified as required
* modified as required
* modified as required
* doc
* change friendGroupId type to Int?
* api dumped
* change friendGroupId type to Int?
* introduce null to friendGroupId
* modified as required
* chore
* api dump
* chore: remark
* change int? to int
* api dump
* Update mirai-core-api/src/commonMain/kotlin/data/FriendGroups.kt
Co-authored-by: Him188 <Him188@mamoe.net>
* Move FriendGroup and FriendGroups to contact.friendgroup
* Make `Friend.friendGroup` not null
* add FriendGroups.default for default group
* Redesign FriendGroup interface
Co-authored-by: Karlatemp <kar@kasukusakura.com>
Co-authored-by: Him188 <Him188@mamoe.net>