* [core] update protocol
* [core] fix t106 decryption key
* [core] handle t543
* [core] revert t106
* [core] revert native test pow data
* [core] split build version and apk version name
* [core] pass time to t1 instead of time diff
* [core] remove unused t106 writer & rename param ip to ipv4 of t1 and t106
* [core] implement qimei for t545
TODO: aes and rsa crypto for nativeMain
* [core] fix base64 decode for android in rsa
* [core] fix unix timestamp parsing on native and add more tests
* [api] DeviceInfo move `androidId` to main constructor and adjust test.
* [api] do not request qimei when protocol is neither ANDROID_PHONE nor ANDROID_PAD
* [api] implement aes crypto for native target
* [api] rsa crypto for multi-platform
* [api] crypto test
* [api] move freePointer util
* [api] openssl api compatibility
* [core] add explicit `androidId` param
* [core] remove unused `tlvCount`
* [core] optimize crypto
* [core] move Qimei to network package
* [core] move appId to protocol
* [core] lazily initialize qimeiLogger
* [core] write byte array to BIO mem
* [core] move qimei to client, add direct serializer for DeviceInfo
* [core] optimize DeviceInfoDelegateSerializer
* [core] real user-agent when requesting qimei
* [core] use `DeviceInfo.version.release`
* [core] remove unused wtlogin packet
* [core] do what constructor serializer should do
* [core] fix endless cache validation caused by not upgrading device info file.
* [core] request qimei before fast-login
* [core] tlv order
* [core] remove wrong tests and print more detail when deserialize failed.
* [core] device info upgrade for native
* [core] request qimei after validating cache
* [core] DeviceInfo compatibility
* [core] DeviceInfo test name
* [core] compatibility serializer
* [core] disable rsa crypto test on android unit test
* [core] move rsa impl to jvmBase
* action
* import
* api dump
* api dump
* revert wrong api dumps
* [core] Deprecate DeviceInfo constructor and serializer, provide `serializeToString` and `deserializeFromString` for replacement
* rerun ci
* optimize
* use serializer directly
* optimize test
* revert
* [core] CacheValidator use `DeviceInfo.serializeToString()` instead of direct serializer
* Remove `println` in `DeviceInfoManager`
* Add legacy deserialize overload for ABI compatibility
* Remove uncompleted docs for DeviceInfo
* Suppress DeviceInfo deprecation warnings for internal usages
---------
Co-authored-by: Him188 <Him188@mamoe.net>
added some opt-in markers on API which should have:
- `appendMiraiCodeTo`
Made API stable (otherwise they require too heavy opt-ins):
- MiraiConsoleImplementation$ConsoleLaunchOptions
- LowLevelApi
* [core] Commonize BotConfiguration, simplify MPP hierarchy:
Move platform specific API to `AbstractBotConfiguration`
* Updates docs for AbstractBotConfiguration
* Add @since for AbstractBotConfiguration
* Mark AbstractBotConfiguration as not stable for inheritance
* [core] Introduce `Streamable` for simplified multiplatform `asFlow` and `asStream`. Make `Announcements.asFlow` not suspend.
* Remove `@JvmBlockingBridge` in native
* 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>
- 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>
* feat: support ChangeFriendName
* fix: register factory
[skip ci]
* rebase dev
* kdoc?
* api dump
* kdoc
* rebase dev
* remove unnecessary modification
* info::remark -> info.remark
* rebase dev
* api dump
* try to fix CI
* Add `@since` for `Friend.remark` setter
Co-authored-by: Him188 <Him188@mamoe.net>