diff --git a/nativeplugins/wf-uni-wfc-client/README.md b/nativeplugins/wf-uni-wfc-client/README.md deleted file mode 100644 index 6fe0a103..00000000 --- a/nativeplugins/wf-uni-wfc-client/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# 野火IM插件使用说明 -有2种插件的使用方法,一种是基于野火提供的Demo直接进行二次开发;另外一种是把野火插件放到现有项目中。 - -## 使用野火demo -野火UniApp平台的demo地址:[https://gitee.com/wfchat/uni-chat](https://gitee.com/wfchat/uni-chat)。按照说明配置地址就可以直接运行,再根据产品需求进行二次开发。 - -## 现有项目使用 -### 集成步骤: -1. 添加野火插件到项目中。 -2. 把野火UniApp平台的demo中的[wfc](https://gitee.com/wfchat/uni-chat/tree/main/wfc)目录和配置文件[config.js](https://gitee.com/wfchat/uni-chat/blob/main/config.js)拷贝到现有工程中。 -3. 配置```config.js```中的IM服务和应用服务地址。 -4. 调用接口类[wfc.js](https://gitee.com/wfchat/uni-chat/blob/main/wfc/client/wfc.js)来使用野火插件。 - -### 使用说明 -所有的IM业务需要确保调用过connect之后才可以进行,connect需要用户token,需要在用户登陆时为用户换取token再调用connect。具体操作可以参考[野火demo](https://gitee.com/wfchat/uni-chat)。 - -## 源码地址 -源码在[https://gitee.com/wfchat/uni-wfc-client](https://gitee.com/wfchat/uni-wfc-client)。 - -## 技术支持 -如果遇到问题,可以去[插件源码工程](https://gitee.com/wfchat/uni-wfc-client)或者[demo源码工程](https://gitee.com/wfchat/uni-chat)提issue,也可以去[野火论坛](https://bbs.wildfirechat.cn)发帖子问题,我们会尽快回复。谢谢大家的支持。 diff --git a/nativeplugins/wf-uni-wfc-client/android/client-release.aar b/nativeplugins/wf-uni-wfc-client/android/client-release.aar deleted file mode 100644 index 93011715..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/android/client-release.aar and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/android/mars-core-release.aar b/nativeplugins/wf-uni-wfc-client/android/mars-core-release.aar deleted file mode 100644 index f8d7ed2b..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/android/mars-core-release.aar and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/android/uni-client-module-release.aar b/nativeplugins/wf-uni-wfc-client/android/uni-client-module-release.aar deleted file mode 100644 index 74e5c741..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/android/uni-client-module-release.aar and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Bugly b/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Bugly deleted file mode 100644 index c3ae3e20..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Bugly and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Headers/Bugly.h b/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Headers/Bugly.h deleted file mode 100644 index 74c143e7..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Headers/Bugly.h +++ /dev/null @@ -1,163 +0,0 @@ -// -// Bugly.h -// -// Version: 2.6(1) -// -// Copyright (c) 2017年 Tencent. All rights reserved. -// - -#import - -#import "BuglyConfig.h" -#import "BuglyLog.h" - -BLY_START_NONNULL - -@interface Bugly : NSObject - -/** - * 初始化Bugly,使用默认BuglyConfigs - * - * @param appId 注册Bugly分配的应用唯一标识 - */ -+ (void)startWithAppId:(NSString * BLY_NULLABLE)appId; - -/** - * 使用指定配置初始化Bugly - * - * @param appId 注册Bugly分配的应用唯一标识 - * @param config 传入配置的 BuglyConfig - */ -+ (void)startWithAppId:(NSString * BLY_NULLABLE)appId - config:(BuglyConfig * BLY_NULLABLE)config; - -/** - * 使用指定配置初始化Bugly - * - * @param appId 注册Bugly分配的应用唯一标识 - * @param development 是否开发设备 - * @param config 传入配置的 BuglyConfig - */ -+ (void)startWithAppId:(NSString * BLY_NULLABLE)appId - developmentDevice:(BOOL)development - config:(BuglyConfig * BLY_NULLABLE)config; - -/** - * 设置用户标识 - * - * @param userId 用户标识 - */ -+ (void)setUserIdentifier:(NSString *)userId; - -/** - * 更新版本信息 - * - * @param version 应用版本信息 - */ -+ (void)updateAppVersion:(NSString *)version; - -/** - * 设置关键数据,随崩溃信息上报 - * - * @param value KEY - * @param key VALUE - */ -+ (void)setUserValue:(NSString *)value - forKey:(NSString *)key; - -/** - * 获取USER ID - * - * @return USER ID - */ -+ (NSString *)buglyUserIdentifier; - -/** - * 获取关键数据 - * - * @return 关键数据 - */ -+ (NSDictionary * BLY_NULLABLE)allUserValues; - -/** - * 设置标签 - * - * @param tag 标签ID,可在网站生成 - */ -+ (void)setTag:(NSUInteger)tag; - -/** - * 获取当前设置标签 - * - * @return 当前标签ID - */ -+ (NSUInteger)currentTag; - -/** - * 获取设备ID - * - * @return 设备ID - */ -+ (NSString *)buglyDeviceId; - -/** - * 上报自定义Objective-C异常 - * - * @param exception 异常信息 - */ -+ (void)reportException:(NSException *)exception; - -/** - * 上报错误 - * - * @param error 错误信息 - */ -+ (void)reportError:(NSError *)error; - -/** - * @brief 上报自定义错误 - * - * @param category 类型(Cocoa=3,CSharp=4,JS=5,Lua=6) - * @param aName 名称 - * @param aReason 错误原因 - * @param aStackArray 堆栈 - * @param info 附加数据 - * @param terminate 上报后是否退出应用进程 - */ -+ (void)reportExceptionWithCategory:(NSUInteger)category - name:(NSString *)aName - reason:(NSString *)aReason - callStack:(NSArray *)aStackArray - extraInfo:(NSDictionary *)info - terminateApp:(BOOL)terminate; - -/** - * SDK 版本信息 - * - * @return SDK版本号 - */ -+ (NSString *)sdkVersion; - -/** - * APP 版本信息 - * - * @return SDK版本号 - */ -+ (NSString *)appVersion; - -/** - * App 是否发生了连续闪退 - * 如果 启动SDK 且 5秒内 闪退,且次数达到 3次 则判定为连续闪退 - * - * @return 是否连续闪退 - */ -+ (BOOL)isAppCrashedOnStartUpExceedTheLimit; - -/** - * 关闭bugly监控 - */ -+ (void)closeCrashReport; - -BLY_END_NONNULL - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Headers/BuglyConfig.h b/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Headers/BuglyConfig.h deleted file mode 100644 index 16e253b5..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Headers/BuglyConfig.h +++ /dev/null @@ -1,149 +0,0 @@ -// -// BuglyConfig.h -// Bugly -// -// Copyright (c) 2016年 Tencent. All rights reserved. -// - -#pragma once - -#define BLY_UNAVAILABLE(x) __attribute__((unavailable(x))) - -#if __has_feature(nullability) -#define BLY_NONNULL __nonnull -#define BLY_NULLABLE __nullable -#define BLY_START_NONNULL _Pragma("clang assume_nonnull begin") -#define BLY_END_NONNULL _Pragma("clang assume_nonnull end") -#else -#define BLY_NONNULL -#define BLY_NULLABLE -#define BLY_START_NONNULL -#define BLY_END_NONNULL -#endif - -#import - -#import "BuglyLog.h" - -BLY_START_NONNULL - -@protocol BuglyDelegate - -@optional -/** - * 发生异常时回调 - * - * @param exception 异常信息 - * - * @return 返回需上报记录,随异常上报一起上报 - */ -- (NSString * BLY_NULLABLE)attachmentForException:(NSException * BLY_NULLABLE)exception; - -/** - * 发生sigkill时回调 - * - * @param exception 异常信息 - * - * @return 返回需上报记录,随sigkill异常上报一起上报,返回值由app开发者决定 - */ -- (NSString * BLY_NULLABLE)attachmentForSigkill; - -/** - * 策略激活时回调 - * - * @param tacticInfo - * - * @return app是否弹框展示 - */ -- (BOOL) h5AlertForTactic:(NSDictionary *)tacticInfo; - -@end - -@interface BuglyConfig : NSObject - -/** - * SDK Debug信息开关, 默认关闭 - */ -@property (nonatomic, assign) BOOL debugMode; - -/** - * 设置自定义渠道标识 - */ -@property (nonatomic, copy) NSString *channel; - -/** - * 设置自定义版本号 - */ -@property (nonatomic, copy) NSString *version; - -/** - * 设置自定义设备唯一标识 - */ -@property (nonatomic, copy) NSString *deviceIdentifier; - -/** - * 卡顿监控开关,默认关闭 - */ -@property (nonatomic) BOOL blockMonitorEnable; - -/** - * 卡顿监控判断间隔,单位为秒 - */ -@property (nonatomic) NSTimeInterval blockMonitorTimeout; - -/** - * 设置 App Groups Id (如有使用 Bugly iOS Extension SDK,请设置该值) - */ -@property (nonatomic, copy) NSString *applicationGroupIdentifier; - -/** - * 进程内还原开关,默认开启 - */ -@property (nonatomic) BOOL symbolicateInProcessEnable; - -/** - * 非正常退出事件记录开关,默认关闭 - */ -@property (nonatomic) BOOL unexpectedTerminatingDetectionEnable; - -/** - * 页面信息记录开关,默认开启 - */ -@property (nonatomic) BOOL viewControllerTrackingEnable; - -/** - * Bugly Delegate - */ -@property (nonatomic, assign) id delegate; - -/** - * 控制自定义日志上报,默认值为BuglyLogLevelSilent,即关闭日志记录功能。 - * 如果设置为BuglyLogLevelWarn,则在崩溃时会上报Warn、Error接口打印的日志 - */ -@property (nonatomic, assign) BuglyLogLevel reportLogLevel; - -/** - * 崩溃数据过滤器,如果崩溃堆栈的模块名包含过滤器中设置的关键字,则崩溃数据不会进行上报 - * 例如,过滤崩溃堆栈中包含搜狗输入法的数据,可以添加过滤器关键字SogouInputIPhone.dylib等 - */ -@property (nonatomic, copy) NSArray *excludeModuleFilter; - -/** - * 控制台日志上报开关,默认开启 - */ -@property (nonatomic, assign) BOOL consolelogEnable; - -/** - * 崩溃退出超时,如果监听到崩溃后,App一直没有退出,则到达超时时间后会自动abort进程退出 - * 默认值 5s, 单位 秒 - * 当赋值为0时,则不会自动abort进程退出 - */ -@property (nonatomic, assign) NSUInteger crashAbortTimeout; - -/** - * 设置自定义联网、crash上报域名 - */ -@property (nonatomic, copy) NSString *crashServerUrl; - -@end -BLY_END_NONNULL diff --git a/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Headers/BuglyLog.h b/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Headers/BuglyLog.h deleted file mode 100644 index 2768e14c..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Headers/BuglyLog.h +++ /dev/null @@ -1,78 +0,0 @@ -// -// BuglyLog.h -// Bugly -// -// Copyright (c) 2017年 Tencent. All rights reserved. -// - -#import - -// Log level for Bugly Log -typedef NS_ENUM(NSUInteger, BuglyLogLevel) { - BuglyLogLevelSilent = 0, - BuglyLogLevelError = 1, - BuglyLogLevelWarn = 2, - BuglyLogLevelInfo = 3, - BuglyLogLevelDebug = 4, - BuglyLogLevelVerbose = 5, -}; -#pragma mark - - -OBJC_EXTERN void BLYLog(BuglyLogLevel level, NSString *format, ...) NS_FORMAT_FUNCTION(2, 3); - -OBJC_EXTERN void BLYLogv(BuglyLogLevel level, NSString *format, va_list args) NS_FORMAT_FUNCTION(2, 0); - -#pragma mark - -#define BUGLY_LOG_MACRO(_level, fmt, ...) [BuglyLog level:_level tag:nil log:fmt, ##__VA_ARGS__] - -#define BLYLogError(fmt, ...) BUGLY_LOG_MACRO(BuglyLogLevelError, fmt, ##__VA_ARGS__) -#define BLYLogWarn(fmt, ...) BUGLY_LOG_MACRO(BuglyLogLevelWarn, fmt, ##__VA_ARGS__) -#define BLYLogInfo(fmt, ...) BUGLY_LOG_MACRO(BuglyLogLevelInfo, fmt, ##__VA_ARGS__) -#define BLYLogDebug(fmt, ...) BUGLY_LOG_MACRO(BuglyLogLevelDebug, fmt, ##__VA_ARGS__) -#define BLYLogVerbose(fmt, ...) BUGLY_LOG_MACRO(BuglyLogLevelVerbose, fmt, ##__VA_ARGS__) - -#pragma mark - Interface -@interface BuglyLog : NSObject - -/** - * @brief 初始化日志模块 - * - * @param level 设置默认日志级别,默认BLYLogLevelSilent - * - * @param printConsole 是否打印到控制台,默认NO - */ -+ (void)initLogger:(BuglyLogLevel) level consolePrint:(BOOL)printConsole; - -/** - * @brief 打印BLYLogLevelInfo日志 - * - * @param format 日志内容 总日志大小限制为:字符串长度30k,条数200 - */ -+ (void)log:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2); - -/** - * @brief 打印日志 - * - * @param level 日志级别 - * @param message 日志内容 总日志大小限制为:字符串长度30k,条数200 - */ -+ (void)level:(BuglyLogLevel) level logs:(NSString *)message; - -/** - * @brief 打印日志 - * - * @param level 日志级别 - * @param format 日志内容 总日志大小限制为:字符串长度30k,条数200 - */ -+ (void)level:(BuglyLogLevel) level log:(NSString *)format, ... NS_FORMAT_FUNCTION(2, 3); - -/** - * @brief 打印日志 - * - * @param level 日志级别 - * @param tag 日志模块分类 - * @param format 日志内容 总日志大小限制为:字符串长度30k,条数200 - */ -+ (void)level:(BuglyLogLevel) level tag:(NSString *) tag log:(NSString *)format, ... NS_FORMAT_FUNCTION(3, 4); - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Modules/module.modulemap b/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Modules/module.modulemap deleted file mode 100644 index c5367052..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/Modules/module.modulemap +++ /dev/null @@ -1,12 +0,0 @@ -framework module Bugly { - umbrella header "Bugly.h" - - export * - module * { export * } - - link framework "Foundation" - link framework "Security" - link framework "SystemConfiguration" - link "c++" - link "z" -} diff --git a/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/PrivacyInfo.xcprivacy b/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/PrivacyInfo.xcprivacy deleted file mode 100644 index 78568c62..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/Bugly.framework/PrivacyInfo.xcprivacy +++ /dev/null @@ -1,41 +0,0 @@ - - - - - NSPrivacyAccessedAPITypes - - - NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategoryFileTimestamp - NSPrivacyAccessedAPITypeReasons - - C617.1 - - - - NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategorySystemBootTime - NSPrivacyAccessedAPITypeReasons - - 35F9.1 - - - - NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategoryDiskSpace - NSPrivacyAccessedAPITypeReasons - - E174.1 - - - - NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategoryUserDefaults - NSPrivacyAccessedAPITypeReasons - - CA92.1 - - - - - diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/Info.plist b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/Info.plist deleted file mode 100644 index 0ae058ff..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/Info.plist +++ /dev/null @@ -1,44 +0,0 @@ - - - - - AvailableLibraries - - - BinaryPath - WFChatClient.framework/WFChatClient - LibraryIdentifier - ios-arm64 - LibraryPath - WFChatClient.framework - SupportedArchitectures - - arm64 - - SupportedPlatform - ios - - - BinaryPath - WFChatClient.framework/WFChatClient - LibraryIdentifier - ios-arm64_x86_64-simulator - LibraryPath - WFChatClient.framework - SupportedArchitectures - - arm64 - x86_64 - - SupportedPlatform - ios - SupportedPlatformVariant - simulator - - - CFBundlePackageType - XFWK - XCFrameworkFormatVersion - 1.0 - - diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/Common.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/Common.h deleted file mode 100644 index 6ccc7127..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/Common.h +++ /dev/null @@ -1,177 +0,0 @@ -// -// Common.h -// WFChatClient -// -// Created by heavyrain on 2017/11/8. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#ifndef Common_h -#define Common_h - - -/* - * 说明:1000以下为系统保留类型,自定义消息请使用1000以上数值。 - * 系统消息类型中100以下为常用基本类型消息。100-199位群组消息类型。400-499为VoIP消息类型. - */ -//基本消息类型 -//未知类型的消息 -#define MESSAGE_CONTENT_TYPE_UNKNOWN 0 -//文本消息 -#define MESSAGE_CONTENT_TYPE_TEXT 1 -//语音消息 -#define MESSAGE_CONTENT_TYPE_SOUND 2 -//图片消息 -#define MESSAGE_CONTENT_TYPE_IMAGE 3 -//位置消息 -#define MESSAGE_CONTENT_TYPE_LOCATION 4 -//文件消息 -#define MESSAGE_CONTENT_TYPE_FILE 5 -//视频消息 -#define MESSAGE_CONTENT_TYPE_VIDEO 6 -//动态表情消息 -#define MESSAGE_CONTENT_TYPE_STICKER 7 -//链接消息 -#define MESSAGE_CONTENT_TYPE_LINK 8 -//存储不计数文本消息 -#define MESSAGE_CONTENT_TYPE_P_TEXT 9 -//名片消息 -#define MESSAGE_CONTENT_TYPE_CARD 10 -//组合消息 -#define MESSAGE_CONTENT_TYPE_COMPOSITE_MESSAGE 11 -//富通知消息 -#define MESSAGE_CONTENT_TYPE_RICH_NOTIFICATION 12 -//文章消息 -#define MESSAGE_CONTENT_TYPE_ARTICLES 13 -//流式文本正在生成消息 -#define MESSAGE_CONTENT_TYPE_STREAMING_TEXT_GENERATING 14 -//流式文本消息 -#define MESSAGE_CONTENT_TYPE_STREAMING_TEXT_GENERATED 15 - -//消息未能送达消息 -#define MESSAGE_CONTENT_NOT_DELIVERED 16 - -//Dumy1 -#define MESSAGE_CONTENT_TYPE_DUMY1 21 - -//Dumy2 -#define MESSAGE_CONTENT_TYPE_DUMY2 22 - -//Ptt sound -#define MESSAGE_CONTENT_TYPE_PTT_VOICE 23 - -//Dumy3 -#define MESSAGE_CONTENT_TYPE_DUMY3 24 - -//同步标记未读 -#define MESSAGE_CONTENT_TYPE_MARK_UNREAD_SYNC 31 - -#define MESSAGE_CONTENT_TYPE_CREATE_SECRET_CHAT 40 -#define MESSAGE_CONTENT_TYPE_ACCEPT_SECRET_CHAT 41 -#define MESSAGE_CONTENT_TYPE_DESTROY_SECRET_CHAT 42 -#define MESSAGE_CONTENT_TYPE_SECRET_CHAT_MESSAGE 43 -#define MESSAGE_CONTENT_TYPE_BURN_MSG_READED 46 -#define MESSAGE_CONTENT_TYPE_BURN_MSG_PLAYED 47 - -//频道进出消息 -#define MESSAGE_CONTENT_TYPE_ENTER_CHANNEL_CHAT 71 -#define MESSAGE_CONTENT_TYPE_LEAVE_CHANNEL_CHAT 72 -#define MESSAGE_CONTENT_TYPE_CHANNEL_MENU_EVENT 73 - -//撤回消息 -#define MESSAGE_CONTENT_TYPE_RECALL 80 -//删除消息,请勿直接发送此消息,此消息是服务器端删除时的同步消息 -#define MESSAGE_CONTENT_TYPE_DELETE 81 - -//提醒消息 -#define MESSAGE_CONTENT_TYPE_TIP 90 - -//正在输入消息 -#define MESSAGE_CONTENT_TYPE_TYPING 91 - -//以上是打招呼的内容 -#define MESSAGE_FRIEND_GREETING 92 -//您已经添加XXX为好友了,可以愉快地聊天了 -#define MESSAGE_FRIEND_ADDED_NOTIFICATION 93 - -//PC 端请求登录 -#define MESSAGE_PC_LOGIN_REQUSET 94 - - - -//通知消息类型 -//创建群的通知消息 -#define MESSAGE_CONTENT_TYPE_CREATE_GROUP 104 -//加群的通知消息 -#define MESSAGE_CONTENT_TYPE_ADD_GROUP_MEMBER 105 -//踢出群成员的通知消息 -#define MESSAGE_CONTENT_TYPE_KICKOF_GROUP_MEMBER 106 -//退群的通知消息 -#define MESSAGE_CONTENT_TYPE_QUIT_GROUP 107 -//解散群的通知消息 -#define MESSAGE_CONTENT_TYPE_DISMISS_GROUP 108 -//转让群主的通知消息 -#define MESSAGE_CONTENT_TYPE_TRANSFER_GROUP_OWNER 109 -//修改群名称的通知消息 -#define MESSAGE_CONTENT_TYPE_CHANGE_GROUP_NAME 110 -//修改群昵称的通知消息 -#define MESSAGE_CONTENT_TYPE_MODIFY_GROUP_ALIAS 111 -//修改群头像的通知消息 -#define MESSAGE_CONTENT_TYPE_CHANGE_GROUP_PORTRAIT 112 -//修改群全局禁言的通知消息 -#define MESSAGE_CONTENT_TYPE_CHANGE_MUTE 113 -//修改群加入权限的通知消息 -#define MESSAGE_CONTENT_TYPE_CHANGE_JOINTYPE 114 -//修改群群成员私聊的通知消息 -#define MESSAGE_CONTENT_TYPE_CHANGE_PRIVATECHAT 115 -//修改群是否可搜索的通知消息 -#define MESSAGE_CONTENT_TYPE_CHANGE_SEARCHABLE 116 -//修改群管理的通知消息 -#define MESSAGE_CONTENT_TYPE_SET_MANAGER 117 -//禁言/取消禁言群成员的通知消息 -#define MESSAGE_CONTENT_TYPE_MUTE_MEMBER 118 -//允许/取消允许群成员发言的通知消息 -#define MESSAGE_CONTENT_TYPE_ALLOW_MEMBER 119 - -//踢出群成员的可见通知消息 -#define MESSAGE_CONTENT_TYPE_KICKOF_GROUP_MEMBER_VISIBLE_NOTIFICATION 120 -//退群的可见通知消息 -#define MESSAGE_CONTENT_TYPE_QUIT_GROUP_VISIBLE_NOTIFICATION 121 -//修改群组Extra通知消息 -#define MESSAGE_CONTENT_TYPE_MODIFY_GROUP_EXTRA 122 -//修改群组成员Extra通知消息 -#define MESSAGE_CONTENT_TYPE_MODIFY_GROUP_MEMBER_EXTRA 123 -//修改群组设置通知消息 -#define MESSAGE_CONTENT_TYPE_MODIFY_GROUP_SETTINGS 124 - -//VoIP开始消息 -#define VOIP_CONTENT_TYPE_START 400 -//VoIP结束消息 -#define VOIP_CONTENT_TYPE_END 402 - -#define VOIP_CONTENT_TYPE_ACCEPT 401 -#define VOIP_CONTENT_TYPE_SIGNAL 403 -#define VOIP_CONTENT_TYPE_MODIFY 404 -#define VOIP_CONTENT_TYPE_ACCEPT_T 405 -#define VOIP_CONTENT_TYPE_ADD_PARTICIPANT 406 -#define VOIP_CONTENT_MUTE_VIDEO 407 - -#define VOIP_CONTENT_CONFERENCE_INVITE 408 -#define VOIP_CONTENT_CONFERENCE_CHANGE_MODE 410 -#define VOIP_CONTENT_CONFERENCE_KICKOFF_MEMBER 411 -#define VOIP_CONTENT_CONFERENCE_COMMAND 412 - -#define VOIP_CONTENT_MULTI_CALL_ONGOING 416 -#define VOIP_CONTENT_JOIN_CALL_REQUEST 417 - -#define VOIP_CONTENT_PTT_INVITE 420 - -#define MESSAGE_CONTENT_TYPE_FEED 501 -#define MESSAGE_CONTENT_TYPE_COMMENT 502 - -#define THINGS_CONTENT_TYPE_DATA 601 -#define THINGS_CONTENT_TYPE_LOST_EVENT 602 - - - -#endif /* Common_h */ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCAddGroupeMemberNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCAddGroupeMemberNotificationContent.h deleted file mode 100644 index f0505967..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCAddGroupeMemberNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCAddGroupeMemberNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群组加人的通知消息 - */ -@interface WFCCAddGroupeMemberNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 邀请者ID - */ -@property (nonatomic, strong)NSString *invitor; - -/** - 被邀请者ID列表 - */ -@property (nonatomic, strong)NSArray *invitees; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCArticlesMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCArticlesMessageContent.h deleted file mode 100644 index ebab29f6..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCArticlesMessageContent.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// WFCCArticlesMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -@class WFCCLinkMessageContent; -@interface WFCCArticle : NSObject -@property (nonatomic, strong)NSString *articleId; -@property (nonatomic, strong)NSString *cover; -@property (nonatomic, strong)NSString *title; -@property (nonatomic, strong)NSString *digest; -@property (nonatomic, strong)NSString *url; -@property (nonatomic, assign)BOOL readReport; -@end - -/** - 富通知消息 - */ -@interface WFCCArticlesMessageContent : WFCCMessageContent -@property (nonatomic, strong)WFCCArticle *topArticle; -@property (nonatomic, strong)NSArray *subArticles; - -- (NSArray *)toLinkMessageContent; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCallAddParticipantMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCallAddParticipantMessageContent.h deleted file mode 100644 index 72b09dcc..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCallAddParticipantMessageContent.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// WFCCCallAddParticipantMessageContent.h -// WFAVEngineKit -// -// Created by heavyrain on 17/9/27. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import - -@interface WFCCCallAddParticipantMessageContent : WFCCNotificationMessageContent -@property(nonatomic, strong)NSString *callId; -@property(nonatomic, strong)NSString *initiator; -@property(nonatomic, strong)NSString *pin; -@property(nonatomic, strong)NSArray *participants; -//[{"userId":"xxxx","acceptTime":13123123123,"joinTime":13123123123,"videoMuted":false}] -@property(nonatomic, strong)NSArray *existParticipants; -@property(nonatomic, assign)BOOL audioOnly; -@property(nonatomic, assign)BOOL autoAnswer; -//指定对方clientId -@property(nonatomic, strong)NSString *clientId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCallByeMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCallByeMessageContent.h deleted file mode 100644 index 5295cbc3..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCallByeMessageContent.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// WFCCCallByeMessageContent.h -// WFAVEngineKit -// -// Created by heavyrain on 17/9/27. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -@interface WFCCCallByeMessageContent : WFCCMessageContent -@property(nonatomic, strong)NSString *callId; -@property(nonatomic, assign)int/*WFAVCallEndReason*/ endReason; -@property(nonatomic, assign)long long inviteMsgUid; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCallStartMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCallStartMessageContent.h deleted file mode 100644 index f22d3c8f..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCallStartMessageContent.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// WFCCTextMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 电话总结消息 - */ -@interface WFCCCallStartMessageContent : WFCCMessageContent - - -/** - CallId - */ -@property (nonatomic, strong)NSString *callId; -/** - 对端用户Id - */ -@property (nonatomic, strong)NSArray *targetIds; -/** - * 开始时间 - */ -@property (nonatomic, assign)long long connectTime; -/** - * 结束时间 - */ -@property (nonatomic, assign)long long endTime; -/* 结束原因 -WFAVCallEndReason - 0: kWFAVCallEndReasonUnknown, - 1: kWFAVCallEndReasonBusy, - 2: kWFAVCallEndReasonSignalError, - 3: kWFAVCallEndReasonHangup, - 4: kWFAVCallEndReasonMediaError, - 5: kWFAVCallEndReasonRemoteHangup, - 6: kWFAVCallEndReasonOpenCameraFailure, - 7: kWFAVCallEndReasonTimeout, - 8: kWFAVCallEndReasonAcceptByOtherClient - */ -@property (nonatomic, assign)int status; - -/* - 0 未知;1 音视频免费版;2 音视频高级版 - */ -@property (nonatomic, assign)int type; - -/* - * 是否仅音频 - */ -@property (nonatomic, assign, getter=isAudioOnly)BOOL audioOnly; - -@property (nonatomic, strong)NSString *pin; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCardMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCardMessageContent.h deleted file mode 100644 index 831fe84f..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCardMessageContent.h +++ /dev/null @@ -1,62 +0,0 @@ -// -// WFCCTextMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - - -typedef NS_ENUM(NSInteger, WFCCCardType) { - CardType_User = 0, - CardType_Group = 1, - CardType_Channel = 3 -}; - -/** - 名片消息 - */ -@interface WFCCCardMessageContent : WFCCMessageContent - -/** - 构造方法 - - @param targetId 目标Id - @param type 类型,0 用户,1 群组, 3 频道。 - @param fromUser 分享用户。 - @return 名片消息 - */ -+ (instancetype)cardWithTarget:(NSString *)targetId type:(WFCCCardType)type from:(NSString *)fromUser; - -/** - 名片类型 - */ -@property (nonatomic, assign)WFCCCardType type; - -/** - 用户ID - */ -@property (nonatomic, strong)NSString *targetId; - -/** - 用户号 - */ -@property (nonatomic, strong)NSString *name; - -/** - 用户昵称 - */ -@property (nonatomic, strong)NSString *displayName; - -/** - 用户头像 - */ -@property (nonatomic, strong)NSString *portrait; - -/** -分享的用户ID - */ -@property (nonatomic, strong)NSString *fromUser; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChangeGroupNameNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChangeGroupNameNotificationContent.h deleted file mode 100644 index 341cd998..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChangeGroupNameNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCChangeGroupNameNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 修改群名的通知消息 - */ -@interface WFCCChangeGroupNameNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 群名 - */ -@property (nonatomic, strong)NSString *name; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChangeGroupPortraitNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChangeGroupPortraitNotificationContent.h deleted file mode 100644 index f0ab69c0..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChangeGroupPortraitNotificationContent.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// WFCCChangeGroupNameNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 修改群头像的通知消息 - */ -@interface WFCCChangeGroupPortraitNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operateUser; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChannelInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChannelInfo.h deleted file mode 100644 index 6164c963..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChannelInfo.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// WFCCChatroomInfo.h -// WFChatClient -// -// Created by heavyrain lee on 2018/8/24. -// Copyright © 2018 WildFireChat. All rights reserved. -// - -#import -#import "WFCCChannelMenu.h" -#import "WFCCJsonSerializer.h" - -@interface WFCCChannelInfo : WFCCJsonSerializer -@property(nonatomic, strong)NSString *channelId; -@property(nonatomic, strong)NSString *name; -@property(nonatomic, strong)NSString *portrait; -@property(nonatomic, strong)NSString *owner; -@property(nonatomic, strong)NSString *desc; -@property(nonatomic, strong)NSString *extra; -@property(nonatomic, strong)NSString *secret; -@property(nonatomic, strong)NSString *callback; - -//https://docs.wildfirechat.net/base_knowledge/channel.html##频道状态 -@property(nonatomic, assign)int status; -@property(nonatomic, assign)long long updateDt; - -@property(nonatomic, strong)NSArray *menus; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChannelMenu.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChannelMenu.h deleted file mode 100644 index 83168422..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChannelMenu.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// WFCCChannelMenu.h -// WFChatClient -// -// Created by Rain on 2022/8/11. -// Copyright © 2022 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - - -@interface WFCCChannelMenu : WFCCJsonSerializer -@property(nonatomic, strong)NSString *menuId; -@property(nonatomic, strong)NSString *type; -@property(nonatomic, strong)NSString *name; -@property(nonatomic, strong)NSString *key; -@property(nonatomic, strong)NSString *url; -@property(nonatomic, strong)NSString *mediaId; -@property(nonatomic, strong)NSString *articleId; -@property(nonatomic, strong)NSString *appId; -@property(nonatomic, strong)NSString *appPage; -@property(nonatomic, assign)NSString *extra; -@property(nonatomic, strong)NSArray *subMenus; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChannelMenuEventMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChannelMenuEventMessageContent.h deleted file mode 100644 index 66921556..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChannelMenuEventMessageContent.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// WFCCChannelMenuEventMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -@class WFCCChannelMenu; -@interface WFCCChannelMenuEventMessageContent : WFCCMessageContent -@property (nonatomic, strong)WFCCChannelMenu *menu; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChatroomInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChatroomInfo.h deleted file mode 100644 index 56ef53b2..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChatroomInfo.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// WFCCChatroomInfo.h -// WFChatClient -// -// Created by heavyrain lee on 2018/8/24. -// Copyright © 2018 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -@interface WFCCChatroomInfo : WFCCJsonSerializer -@property(nonatomic, strong)NSString *chatroomId; -@property(nonatomic, strong)NSString *title; -@property(nonatomic, strong)NSString *desc; -@property(nonatomic, strong)NSString *portrait; -@property(nonatomic, strong)NSString *extra; - -//0 normal; 1 not started; 2 end -@property(nonatomic, assign)int state; -@property(nonatomic, assign)int memberCount; -@property(nonatomic, assign)long long createDt; -@property(nonatomic, assign)long long updateDt; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChatroomMemberInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChatroomMemberInfo.h deleted file mode 100644 index 0ebd239c..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCChatroomMemberInfo.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// WFCCChatroomInfo.h -// WFChatClient -// -// Created by heavyrain lee on 2018/8/24. -// Copyright © 2018 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -@interface WFCCChatroomMemberInfo : WFCCJsonSerializer -@property(nonatomic, assign)int memberCount; -@property(nonatomic, strong)NSArray *members; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCompositeMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCompositeMessageContent.h deleted file mode 100644 index a405844d..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCompositeMessageContent.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// WFCCCompositeMessageContent.h -// WFChatClient -// -// Created by Tom Lee on 2020/10/4. -// Copyright © 2020 WildFireChat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" -@class WFCCMessage; - -NS_ASSUME_NONNULL_BEGIN - -@interface WFCCCompositeMessageContent : WFCCMediaMessageContent -@property (nonatomic, strong)NSString *title; -@property (nonatomic, strong)NSArray *messages; -@property(nonatomic, assign)BOOL loaded; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCConferenceInviteMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCConferenceInviteMessageContent.h deleted file mode 100644 index 822353db..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCConferenceInviteMessageContent.h +++ /dev/null @@ -1,69 +0,0 @@ -// -// WFCCConferenceInviteMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 电话总结消息 - */ -@interface WFCCConferenceInviteMessageContent : WFCCMessageContent - - -/** - CallId - */ -@property (nonatomic, strong)NSString *callId; - -/** - 会议主持人 -*/ -@property (nonatomic, strong)NSString *host; -/** - 会议标题 - */ -@property (nonatomic, strong)NSString *title; - -/** - 会议描述 - */ -@property (nonatomic, strong)NSString *desc; -/** - 会议开始时间 - */ -@property (nonatomic, assign)long long startTime; - -/* - 是否音频会议 - */ -@property (nonatomic, assign, getter=isAudioOnly)BOOL audioOnly; - -/* - 会议PIN -*/ -@property (nonatomic, strong)NSString *pin; - -/* - 会议密码 -*/ -@property (nonatomic, strong)NSString *password; - -/* - 是否是会议观众 -*/ -@property (nonatomic, assign)BOOL audience; - -/* - 是否是高级会议模式 -*/ -@property (nonatomic, assign)BOOL advanced; - -/* - 呼叫附加信息 -*/ -@property (nonatomic, strong)NSString *callExtra; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCConversation.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCConversation.h deleted file mode 100644 index a4f5372c..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCConversation.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// WFCCConversation.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" -#import "WFCCProtocol.h" -/** - 会话类型 - - - Single_Type: 单聊 - - Group_Type: 群组 - - Chatroom_Type: 聊天室 - - Channel_Type: 频道 - - Things_Type: 物联网 - - SecretChat_Type: 密聊 - */ -typedef NS_ENUM(NSInteger, WFCCConversationType) { - Single_Type, - Group_Type, - Chatroom_Type, - Channel_Type, - Things_Type, - SecretChat_Type, -}; - -/** - 会话 - */ -@interface WFCCConversation : WFCCJsonSerializer - -/** - 构造方法 - - @param type 会话类型 - @param target 目标会话ID - @param line 默认传0 - @return 会话 - */ -+(instancetype)conversationWithType:(WFCCConversationType)type - target:(NSString *)target - line:(int)line; - -/** - 构造方法 - - @param target 目标会话ID - @return 单聊会话 - */ -+(instancetype)singleConversation:(NSString *)target; - -/** - 构造方法 - - @param target 目标会话ID - @return 群组会话 - */ -+(instancetype)groupConversation:(NSString *)target; - -/** - 会话类型 - */ -@property (nonatomic, assign)WFCCConversationType type; - -/** - 目标会话ID,单聊为对方用户ID,群聊为群ID - */ -@property (nonatomic, strong)NSString *target; - -/** - 默认为0 - */ -@property (nonatomic, assign)int line; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCConversationInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCConversationInfo.h deleted file mode 100644 index e058f01e..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCConversationInfo.h +++ /dev/null @@ -1,57 +0,0 @@ -// -// WFCCConversationInfo.h -// WFChatClient -// -// Created by heavyrain on 2017/8/29. -// Copyright © 2017年 wildfire chat. All rights reserved. -// - -#import -#import "WFCCConversation.h" -#import "WFCCMessage.h" -#import "WFCCUnreadCount.h" -#import "WFCCJsonSerializer.h" - -/** - 会话信息 - */ -@interface WFCCConversationInfo : WFCCJsonSerializer - -/** - 会话 - */ -@property (nonatomic, strong)WFCCConversation *conversation; - -/** - 最后一条消息 - */ -@property (nonatomic, strong)WFCCMessage *lastMessage; - -/** - 草稿 - */ -@property (nonatomic, strong)NSString *draft; - -/** - 最后一条消息的时间戳 - */ -@property (nonatomic, assign)long long timestamp; - -/** - 未读数 - */ -@property (nonatomic, strong)WFCCUnreadCount *unreadCount; - -/** - 是否置顶 - */ -@property (nonatomic, assign)int isTop; - -/** - 是否设置了免打扰 - */ -@property (nonatomic, assign)BOOL isSilent; - -@end - - diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCConversationSearchInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCConversationSearchInfo.h deleted file mode 100644 index ec9e885e..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCConversationSearchInfo.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// WFCCConversationSearchInfo.h -// WFChatClient -// -// Created by heavyrain on 2017/10/22. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCConversation.h" -#import "WFCCMessage.h" -#import "WFCCJsonSerializer.h" -/** - 会话搜索信息 - */ -@interface WFCCConversationSearchInfo : WFCCJsonSerializer - -/** - 会话 - */ -@property (nonatomic, strong)WFCCConversation *conversation; - -/** - 命中的消息 - */ -@property (nonatomic, strong)WFCCMessage *marchedMessage; - -/** - 命中数量 - */ -@property (nonatomic, assign)int marchedCount; - -/** - 搜索关键字 - */ -@property (nonatomic, strong)NSString *keyword; - -/** - 会话时间 - */ -@property (nonatomic, assign)int64_t timestamp; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCreateGroupNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCreateGroupNotificationContent.h deleted file mode 100644 index 6adfe2b4..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCCreateGroupNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 建群的通知消息 - */ -@interface WFCCCreateGroupNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 创建者ID - */ -@property (nonatomic, strong)NSString *creator; - -/** - 群名 - */ -@property (nonatomic, strong)NSString *groupName; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDeleteMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDeleteMessageContent.h deleted file mode 100644 index 34b73b8a..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDeleteMessageContent.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// WFCCDeleteMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 文本消息 - */ -@interface WFCCDeleteMessageContent : WFCCMessageContent - -/** - 被删除消息的Uid - */ -@property (nonatomic, assign)long long messageUid; - -/** - 撤回用户Id - */ -@property (nonatomic, strong)NSString *operatorId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDeliveryReport.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDeliveryReport.h deleted file mode 100644 index 52446303..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDeliveryReport.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// WFCCConversation.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" -/** - 会话 - */ -@interface WFCCDeliveryReport : WFCCJsonSerializer - -+(instancetype)delivered:(NSString *)userId - timestamp:(long long)timestamp; - -@property (nonatomic, strong)NSString *userId; -@property (nonatomic, assign)long long timestamp; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDictionary.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDictionary.h deleted file mode 100644 index 3c758bc7..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDictionary.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// WFCCDictionary.h -// WFChatClient -// -// Created by Rain on 26/5/2025. -// Copyright © 2025 WildFireChat. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface WFCCDictionary : NSObject -+ (WFCCDictionary *)fromData:(NSData *)data error:(NSError **)error; -+ (WFCCDictionary *)fromString:(NSString *)str error:(NSError **)error; -+ (WFCCDictionary *)fromDictionary:(NSDictionary *)dictionary; - -- (id)objectForKeyedSubscript:(id)key; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDismissGroupNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDismissGroupNotificationContent.h deleted file mode 100644 index 97803499..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDismissGroupNotificationContent.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// WFCCDismissGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群解散的通知消息 - */ -@interface WFCCDismissGroupNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operateUser; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDomainInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDomainInfo.h deleted file mode 100644 index 8ca2d465..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCDomainInfo.h +++ /dev/null @@ -1,56 +0,0 @@ -// -// WFCCDomainInfo.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -/** - 域信息 - */ -@interface WFCCDomainInfo : WFCCJsonSerializer - -/** - 域ID - */ -@property (nonatomic, strong)NSString *domainId; - -/** - 域的名称 - */ -@property (nonatomic, strong)NSString *name; - -/** - 域的描述 - */ -@property (nonatomic, strong)NSString *desc; - -/** - 域的邮件地址 - */ -@property (nonatomic, strong)NSString *email; - -/** - 域的电话 - */ -@property (nonatomic, strong)NSString *tel; - -/** - 域的地址 - */ -@property (nonatomic, strong)NSString *address; - -/** - 群的额外信息 - */ -@property (nonatomic, strong)NSString *extra; - -/** - 域的最后更新日期 - */ -@property (nonatomic, assign)long long updateDt; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCEnterChannelChatMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCEnterChannelChatMessageContent.h deleted file mode 100644 index 74e85b6b..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCEnterChannelChatMessageContent.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// WFCCEnterChannelChatMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - - -/** - 进入频道会话消息 - */ -@interface WFCCEnterChannelChatMessageContent : WFCCMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCEnums.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCEnums.h deleted file mode 100644 index e4612ebc..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCEnums.h +++ /dev/null @@ -1,141 +0,0 @@ -// -// WFCCEnums.h -// WFChatClient -// -// Created by Heavyrian Lee on 2020/6/25. -// Copyright © 2020 WildFireChat. All rights reserved. -// - -#ifndef WFCCEnums_h -#define WFCCEnums_h - -typedef NS_ENUM(NSInteger, WFCCErrorCode) { - //0~255 server error - ERROR_CODE_SUCCESS = 0, // //"success"), - ERROR_CODE_SECRECT_KEY_MISMATCH = 1, //"secrect key mismatch"), - ERROR_CODE_INVALID_DATA = 2, //"invalid data"), - ERROR_CODE_NODE_NOT_EXIST = 3, //"node not exist"), - ERROR_CODE_SERVER_ERROR = 4, //"server error"), - ERROR_CODE_NOT_MODIFIED = 5, //"not modified"), - - //Auth error - ERROR_CODE_TOKEN_ERROR = 6, //"token error"), - ERROR_CODE_USER_FORBIDDEN = 8, //"user forbidden"), - - //Message error - ERROR_CODE_NOT_IN_GROUP = 9, //"not in group"), - ERROR_CODE_INVALID_MESSAGE = 10, //"invalid message"), - - //Group error - ERROR_CODE_GROUP_ALREADY_EXIST = 11, //"group aleady exist"), - - - //user error - ERROR_CODE_PASSWORD_INCORRECT = 15, //"password incorrect"), - - //user error - ERROR_CODE_FRIEND_ALREADY_REQUEST = 16, //"already send request"), - ERROR_CODE_FRIEND_REQUEST_BLOCKED = 18, //"friend request blocked"), - ERROR_CODE_FRIEND_REQUEST_EXPIRED = 19, //"friend request expired"), - - ERROR_CODE_NOT_IN_CHATROOM = 20, //"not in chatroom"), - - ERROR_CODE_NOT_IN_CHANNEL = 21, //"not in channel"), - - ERROR_CODE_NOT_LICENSED = 22, //"not licensed"), - ERROR_CODE_ALREADY_FRIENDS = 23, //"already friends"), - - ERROR_CODE_GROUP_EXCEED_MAX_MEMBER_COUNT = 240, //"group exceed max member count"), - ERROR_CODE_GROUP_MUTED = 241, //"group is muted"), - ERROR_CODE_SENSITIVE_MATCHED = 242, //"sensitive matched"), - ERROR_CODE_SIGN_EXPIRED = 243, //"sign expired"), - ERROR_CODE_AUTH_FAILURE = 244, //"auth failure"), - ERROR_CODE_CLIENT_COUNT_OUT_OF_LIMIT = 245, //"client count out of limit"), - ERROR_CODE_IN_BLACK_LIST = 246, //"user in balck list"), - ERROR_CODE_FORBIDDEN_SEND_MSG = 247, //"forbidden send msg globally"), - ERROR_CODE_NOT_RIGHT = 248, //"no right to operate"), - ERROR_CODE_TIMEOUT = 249, //"timeout"), - ERROR_CODE_OVER_FREQUENCY = 250, //"over frequency"), - ERROR_CODE_INVALID_PARAMETER = 251, //"Invalid parameter"), - ERROR_CODE_NOT_EXIST = 253, //"not exist"), - ERROR_CODE_NOT_IMPLEMENT = 254, //"not implement"), - - //负值为mars返回错误 - ERROR_CODE_Local_TaskTimeout = -1, - ERROR_CODE_Local_TaskRetry = -2, - ERROR_CODE_Local_StartTaskFail = -3, - ERROR_CODE_Local_AntiAvalanche = -4, - ERROR_CODE_Local_ChannelSelect = -5, - ERROR_CODE_Local_NoNet = -6, - ERROR_CODE_Local_Cancel = -7, - ERROR_CODE_Local_Clear = -8, - ERROR_CODE_Local_Reset = -9, - ERROR_CODE_Local_TaskParam = -12, - ERROR_CODE_Local_CgiFrequcencyLimit = -13, - ERROR_CODE_Local_ChannelID = -14, - - ERROR_CODE_Long_FirstPkgTimeout = -500, - ERROR_CODE_Long_PkgPkgTimeout = -501, - ERROR_CODE_Long_ReadWriteTimeout = -502, - ERROR_CODE_Long_TaskTimeout = -503, - - ERROR_CODE_Socket_NetworkChange = -10086, - ERROR_CODE_Socket_MakeSocketPrepared = -10087, - ERROR_CODE_Socket_WritenWithNonBlock = -10088, - ERROR_CODE_Socket_ReadOnce = -10089, - ERROR_CODE_Socket_RecvErr = -10091, - ERROR_CODE_Socket_SendErr = -10092, - ERROR_CODE_Socket_NoopTimeout = -10093, - ERROR_CODE_Socket_NoopAlarmTooLate = -10094, - ERROR_CODE_Http_SplitHttpHeadAndBody = -10194, - ERROR_CODE_Http_ParseStatusLine = -10195, - ERROR_CODE_Net_MsgXPHandleBufferErr = -10504, - ERROR_CODE_Dns_MakeSocketPrepared = -10606, - - //proto error code - ERROR_CODE_Proto_CorruptData = -100001, - ERROR_CODE_Proto_InvalideParameter = -100002, - //消息内容超过最大值,最大值为200KB,建议不超过15KB。 - ERROR_CODE_Proto_Content_Exceed_Max_Size = -100003, - //媒体内容超过最大值,最大值为100MB - ERROR_CODE_Proto_Media_Exceed_Max_Size = -100004, -}; - - -/** - 添加好友来源 - - - FriendSource_Unknown: 未知 - - FriendSource_Search: 搜索 - - FriendSource_Group: 群组,targetId为群主ID - - FriendSource_QrCode: 二维码,targetId为分享二维码的用户Id - - FriendSource_Card: 用户名片,targetId为分享名片的用户Id - - FriendSource_Org: 组织通讯录查看 - */ -typedef NS_ENUM(NSInteger, WFCCFriendSourceType) { - FriendSource_Unknown, - FriendSource_Search, - FriendSource_Group, - FriendSource_QrCode, - FriendSource_Card, - FriendSource_Org -}; - -/** - 群成员来源 - - - GroupMemberSource_Unknown: 搜索 - - GroupMemberSource_Search: 搜索 - - GroupMemberSource_Invite: 邀请,targetId为邀请人的用户id - - GroupMemberSource_QrCode: 二维码,targetId为分享群二维码的用户id - - GroupMemberSource_Card: 群名片,targetId为分享群名片的用户Id - */ -typedef NS_ENUM(NSInteger, WFCCGroupMemberSourceType) { - GroupMemberSource_Unknown, - GroupMemberSource_Search, - GroupMemberSource_Invite, - GroupMemberSource_QrCode, - GroupMemberSource_Card, -}; - -#endif /* WFCCEnums_h */ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFileMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFileMessageContent.h deleted file mode 100644 index 2234767b..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFileMessageContent.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// WFCCSoundMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/9. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" - -/** - 语音消息 - */ -@interface WFCCFileMessageContent : WFCCMediaMessageContent - -/** - 构造方法 - - @param filePath 文件路径 - @return 语音消息 - */ -+ (instancetype)fileMessageContentFromPath:(NSString *)filePath; - -/** - 文件名 - */ -@property (nonatomic, strong)NSString *name; - -/** - 文件名 - */ -@property (nonatomic, assign)NSUInteger size; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFileRecord.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFileRecord.h deleted file mode 100644 index 1fdbc089..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFileRecord.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// WFCCFileRecord.h -// WFChatClient -// -// Created by dali on 2020/8/2. -// Copyright © 2020 WildFireChat. All rights reserved. -// - -#import -#import "WFCCConversation.h" -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface WFCCFileRecord : WFCCJsonSerializer -@property (nonatomic, strong)WFCCConversation *conversation; -@property (nonatomic, assign)long long messageUid; -@property (nonatomic, strong)NSString *userId; -@property (nonatomic, strong)NSString *name; -@property (nonatomic, strong)NSString *url; -@property (nonatomic, assign)int size; -@property (nonatomic, assign)int downloadCount; -@property (nonatomic, assign)long long timestamp; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFriend.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFriend.h deleted file mode 100644 index 1a23ee32..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFriend.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// WFCCFriend.h -// WFChatClient -// -// Created by heavyrain on 2021/5/16. -// Copyright © 2021 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface WFCCFriend : WFCCJsonSerializer -/* - 好友ID - */ -@property(nonatomic, strong)NSString *userId; - -/* - 好友昵称 - */ -@property(nonatomic, strong)NSString *alias; - -/* - 扩展信息,添加方式等 - */ -@property(nonatomic, strong)NSString *extra; - -/* - 添加好友时间 - */ -@property(nonatomic, assign)long long timestamp; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFriendAddedMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFriendAddedMessageContent.h deleted file mode 100644 index 75316d2a..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFriendAddedMessageContent.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// WFCCFriendAddedMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 好友添加成功的通知。一般可以显示为你已添加XXX为好友了,可以开始聊天了。本消息和WFCCFriendGreetingMessageContent为后添加的,之前服务器端是直接发送了2个tip消息,这样就没有办法做多语言化了。但现在还不能直接使用这两个消息,因为有历史兼容问题,可以先加上这两个功能,等您的应用的SDK都更新支持这两个消息以后,再在服务器端加上。 - */ -@interface WFCCFriendAddedMessageContent : WFCCNotificationMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFriendGreetingMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFriendGreetingMessageContent.h deleted file mode 100644 index 42cb0b7e..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFriendGreetingMessageContent.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// WFCCFriendGreetingMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** -好友打招呼的提示。一般可以显示为以上是打招呼信息。更多信息请阅读WFCCFriendAddedMessageContent的注释 -*/ -@interface WFCCFriendGreetingMessageContent : WFCCNotificationMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFriendRequest.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFriendRequest.h deleted file mode 100644 index 882d8376..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCFriendRequest.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// WFCCFriendRequest.h -// WFChatClient -// -// Created by heavyrain on 2017/10/17. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" -/** - 好友请求 - */ -@interface WFCCFriendRequest : WFCCJsonSerializer - -/** - 方向 - */ -@property(nonatomic, assign)int direction; - -/** - ID - */ -@property(nonatomic, strong)NSString *target; - -/** - 请求说明 - */ -@property(nonatomic, strong)NSString *reason; - -/** - 请求扩展信息 - */ -@property(nonatomic, strong)NSString *extra; - -/** - 接受状态 - */ -@property(nonatomic, assign)int status; - -/** - 已读 - */ -@property(nonatomic, assign)int readStatus; - -/** - 发起时间 - */ -@property(nonatomic, assign)long long timestamp; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupInfo.h deleted file mode 100644 index b772a936..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupInfo.h +++ /dev/null @@ -1,125 +0,0 @@ -// -// WFCCGroupInfo.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" -/** - 群类型 - - - GroupType_Normal: 管理员和群主才能加人和退群,修改群信息。 - - GroupType_Free: 所有人都能加人、退群和修改群信息 - - GroupType_Restricted: 带有群管理功能 - - GroupType_Organization: 组织群,只能通过API操作,群主和管理员可以禁言、撤回等操作 - */ -typedef NS_ENUM(NSInteger, WFCCGroupType) { - GroupType_Normal = 0, - GroupType_Free = 1, - GroupType_Restricted = 2, - GroupType_Organization = 3, -} ; - -/** - 群信息 - */ -@interface WFCCGroupInfo : WFCCJsonSerializer - -/** - 群类型 - */ -@property (nonatomic, assign)WFCCGroupType type; - -/** - 群ID - */ -@property (nonatomic, strong)NSString *target; - -/** - 群名 - */ -@property (nonatomic, strong)NSString *name; - -/** - 群头像 - */ -@property (nonatomic, strong)NSString *portrait; - -/** - 成员数 - */ -@property (nonatomic, assign)NSUInteger memberCount; - -/** - 群主 - */ -@property (nonatomic, strong)NSString *owner; - -/** - 扩展信息 - */ -@property (nonatomic, strong)NSString *extra; - -/** - 群备注 - */ -@property (nonatomic, strong)NSString *remark; - -/** - 群禁言状态,0 关闭群禁言;1 开启群禁言 - */ -@property (nonatomic, assign)int mute; - -/** - 加群申请状态,0 不限制加入(用户可以自己加群或被普通群成员拉入);1 普通群成员可以拉人进群;2 只有群管理才能拉人 - */ -@property (nonatomic, assign)int joinType; - -/** - 群成员私聊状态,0 允许私聊;1 不允许私聊 - */ -@property (nonatomic, assign)int privateChat; - -/** - 群搜索状态,0 群可以被搜索到;1 群不会被搜索到 - */ -@property (nonatomic, assign)int searchable; - -/** - 群成员是否可以加载加入之前的历史消息,0不可以;1可以 - */ -@property (nonatomic, assign)int historyMessage; - -/** - 群的最大成员数,可以通过server api来修改 - */ -@property (nonatomic, assign)int maxMemberCount; - -/** - 群成员私聊状态,0 普通群组;1 超级群组。超级群组不支持服务器端删除。 - */ -@property (nonatomic, assign)int superGroup; - -/** - 是否被解散,0 没有解散;1 已经被解散。在2024.3.30日以后的IM服务支持群组标记删除,默认为关,需要IM服务打开群组标记删除的开关。 - */ -@property (nonatomic, assign)int deleted; - -/** - 群的最后更新日期 - */ -@property (nonatomic, assign)long long updateDt; - -/** - 群成员的最后更新日期,一般是没有什么作用,唯一的作用就是当用户退出群组后,再获取群组信息,memberDt会为负数。 - */ -@property (nonatomic, assign)long long memberDt; - -/** - 群显示名称,如果有群备注返回群备注,没有群备注返回群名称 - */ -@property (nonatomic, strong, readonly)NSString *displayName; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupJoinTypeNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupJoinTypeNotificationContent.h deleted file mode 100644 index 35896206..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupJoinTypeNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 建群的通知消息 - */ -@interface WFCCGroupJoinTypeNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operatorId; - -/** - 操作 - */ -@property (nonatomic, strong)NSString *type; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupMember.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupMember.h deleted file mode 100644 index 3e774f1c..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupMember.h +++ /dev/null @@ -1,66 +0,0 @@ -// -// WFCCGroupMember.h -// WFChatClient -// -// Created by heavyrain on 2017/10/30. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -/** - 群成员类型 - - - Member_Type_Normal: 普通成员 - - Member_Type_Manager: 管理员 - - Member_Type_Owner: 群主 - - Member_Type_Muted: 被禁言 - - Member_Type_Deleted: 已删除成员,仅在群成员变动回调中存在。 - - Member_Type_Allowed: 被允许发言 - */ -typedef NS_ENUM(NSInteger, WFCCGroupMemberType) { - Member_Type_Normal = 0, - Member_Type_Manager, - Member_Type_Owner, - Member_Type_Muted, - Member_Type_Deleted, - Member_Type_Allowed = 5 -} ; - -/** - 群成员信息 - */ -@interface WFCCGroupMember : WFCCJsonSerializer - -/** - 群ID - */ -@property(nonatomic, strong)NSString *groupId; - -/** - 群成员ID - */ -@property(nonatomic, strong)NSString *memberId; - -/** - 群昵称 - */ -@property(nonatomic, strong)NSString *alias; - -/** - 群成员扩展信息 - */ -@property(nonatomic, strong)NSString *extra; - -/** - 群成员类型 - */ -@property(nonatomic, assign)WFCCGroupMemberType type; - -/** - 群成员加入时间戳 -*/ -@property(nonatomic, assign)long long createTime; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupMemberAllowNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupMemberAllowNotificationContent.h deleted file mode 100644 index 63b52e37..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupMemberAllowNotificationContent.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群成员禁言的通知消息 - */ -@interface WFCCGroupMemberAllowNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *creator; - -/** - 操作 - */ -@property (nonatomic, strong)NSString *type; - -/** - 被禁言/取消禁言者ID列表 - */ -@property (nonatomic, strong)NSArray *targetIds; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupMemberMuteNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupMemberMuteNotificationContent.h deleted file mode 100644 index def006ec..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupMemberMuteNotificationContent.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群成员禁言的通知消息 - */ -@interface WFCCGroupMemberMuteNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *creator; - -/** - 操作 - */ -@property (nonatomic, strong)NSString *type; - -/** - 被禁言/取消禁言者ID列表 - */ -@property (nonatomic, strong)NSArray *targetIds; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupMuteNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupMuteNotificationContent.h deleted file mode 100644 index 71a4633c..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupMuteNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 建群的通知消息 - */ -@interface WFCCGroupMuteNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 创建者ID - */ -@property (nonatomic, strong)NSString *creator; - -/** - 操作 - */ -@property (nonatomic, strong)NSString *type; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupPrivateChatNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupPrivateChatNotificationContent.h deleted file mode 100644 index 1b6d4fe3..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupPrivateChatNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 建群的通知消息 - */ -@interface WFCCGroupPrivateChatNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operatorId; - -/** - 操作 - */ -@property (nonatomic, strong)NSString *type; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupSearchInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupSearchInfo.h deleted file mode 100644 index fd13458d..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupSearchInfo.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// WFCCGroupSearchInfo.h -// WFChatClient -// -// Created by heavyrain on 2017/10/22. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCGroupInfo.h" -#import "WFCCJsonSerializer.h" - -/** - 搜索群组匹配类型mask - - - GroupSearchMarchTypeMask_Group_Name: 匹配群组名称 - - GroupSearchMarchTypeMask_Member_Name: 匹配群成员昵称 - - GroupSearchMarchTypeMask_Member_Alias: 匹配群成员群昵称 - - GroupSearchMarchTypeMask_Group_Remark: 匹配群组remark - */ -typedef NS_ENUM(NSInteger, WFCCGroupSearchMarchTypeMask) { - GroupSearchMarchTypeMask_Group_Name = 0x01, - GroupSearchMarchTypeMask_Member_Name = 0x02, - GroupSearchMarchTypeMask_Member_Alias = 0x04, - GroupSearchMarchTypeMask_Group_Remark = 0x08 -}; - -/** - 群组搜索信息 - */ -@interface WFCCGroupSearchInfo : WFCCJsonSerializer - -/** - 命中的群组 - */ -@property (nonatomic, strong)WFCCGroupInfo *groupInfo; - -/** - 命中的类型,请参考WFCCGroupSearchMarchTypeMask - */ -@property (nonatomic, assign)int marchType; - -/** - 命中群成员名称 - */ -@property (nonatomic, strong)NSArray *marchedMemberNames; - -/** - 搜索的关键字 - */ -@property (nonatomic, strong)NSString *keyword; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupSetManagerNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupSetManagerNotificationContent.h deleted file mode 100644 index 3187cfd4..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupSetManagerNotificationContent.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 设置/取消群管理员通知消息 - */ -@interface WFCCGroupSetManagerNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operatorId; - -/** - 操作,0取消管理员,1设置为管理员。 - */ -@property (nonatomic, strong)NSString *type; - -/** - Member ID - */ -@property (nonatomic, strong)NSArray *memberIds; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupSettingsNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupSettingsNotificationContent.h deleted file mode 100644 index cfa1c08e..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCGroupSettingsNotificationContent.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// WFCCGroupSettingsNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 建群的通知消息 - */ -@interface WFCCGroupSettingsNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operatorId; - -/** - 修改设置类型。7为修改是否查看历史消息;8为修改群最大成员数,9为修改是否为超级群 - */ -@property (nonatomic, assign)int type; - -/** - 修改后的数据 - */ -@property (nonatomic, assign)int value; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCIMService.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCIMService.h deleted file mode 100644 index 31083a87..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCIMService.h +++ /dev/null @@ -1,2862 +0,0 @@ -// -// WFCCIMService.h -// WFChatClient -// -// Created by heavyrain on 2017/11/5. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCMessage.h" -#import "WFCCGroupInfo.h" -#import "WFCCConversationInfo.h" -#import "WFCCUserInfo.h" -#import "WFCCFriendRequest.h" -#import "WFCCConversationSearchInfo.h" -#import "WFCCGroupMember.h" -#import "WFCCGroupSearchInfo.h" -#import "WFCCChatroomInfo.h" -#import "WFCCChatroomMemberInfo.h" -#import "WFCCUnreadCount.h" -#import "WFCCChannelInfo.h" -#import "WFCCPCOnlineInfo.h" -#import "WFCCFileRecord.h" -#import "WFCCFriend.h" -#import "WFCCSecretChatInfo.h" -#import "WFCCNetworkService.h" -#import "WFCCDomainInfo.h" - -#pragma mark - 频道通知定义 -//发送消息状态通知 -extern NSString *kSendingMessageStatusUpdated; -extern NSString *kUploadMediaMessageProgresse; -extern NSString *kConnectionStatusChanged; -extern NSString *kReceiveMessages; -extern NSString *kRecallMessages; -extern NSString *kDeleteMessages; -extern NSString *kMessageDelivered; -extern NSString *kMessageReaded; -extern NSString *kMessageUpdated; - -#pragma mark - 枚举值定义 -/** - 修改个人信息的内容 - - - Modify_DisplayName: 修改显示名 - - Modify_Portrait: 修改头像 - - Modify_Gender: 修改性别 - - Modify_Mobile: 修改手机号 - - Modify_Email: 修改邮箱 - - Modify_Address: 修改地址 - - Modify_Company: 修改公司信息 - - Modify_Social: 修改社交信息 - - Modify_Extra: 修改扩展信息 - */ -typedef NS_ENUM(NSInteger, ModifyMyInfoType) { - Modify_DisplayName = 0, - Modify_Portrait = 1, - Modify_Gender = 2, - Modify_Mobile = 3, - Modify_Email = 4, - Modify_Address = 5, - Modify_Company = 6, - Modify_Social = 7, - Modify_Extra = 8 -}; - -typedef NS_ENUM(NSInteger, ModifyGroupInfoType) { - Modify_Group_Name = 0, - Modify_Group_Portrait = 1, - Modify_Group_Extra = 2, - Modify_Group_Mute = 3, - Modify_Group_JoinType = 4, - Modify_Group_PrivateChat = 5, - Modify_Group_Searchable = 6, - Modify_Group_History_Message = 7, - Modify_Group_Max_Member_Count = 8 -}; - - -typedef NS_ENUM(NSInteger, ModifyChannelInfoType) { - Modify_Channel_Name = 0, - Modify_Channel_Portrait = 1, - Modify_Channel_Desc = 2, - Modify_Channel_Extra = 3, - Modify_Channel_Secret = 4, - Modify_Channel_Callback = 5 -}; - -/** - 个人设置Scope - - @discussion 用户设置,1000以内被系统保留。应用不应该直接使用系统预制的范围。应用可以使用1000以上的值。 - */ -typedef NS_ENUM(NSInteger, UserSettingScope) { - //不能直接使用,调用setConversation:silent:方法会使用到此值。 - UserSettingScope_Conversation_Silent = 1, - //不能直接使用 - UserSettingScope_Global_Silent = 2, - - //不能直接使用,调用setConversation:top:方法会使用到此值。 - UserSettingScope_Conversation_Top = 3, - //不能直接使用 - UserSettingScope_Hidden_Notification_Detail = 4, - //不能直接使用 - UserSettingScope_Group_Hide_Nickname = 5, - //不能直接使用 - UserSettingScope_Favourite_Group = 6, - - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Conversation_Sync = 7, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_My_Channel = 8, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Listened_Channel = 9, - - //不能直接使用,协议栈内会使用此值 - UserSettingScope_PC_Online = 10, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Conversation_Readed = 11, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_WebOnline = 12, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_DisableRecipt = 13, - //不能直接使用 - UserSettingScope_Favourite_User = 14, - //不能直接使用 - UserSettingScope_Mute_When_PC_Online = 15, - //不能直接使用 - UserSettingScope_Lines_Readed = 16, - //不能直接使用 - UserSettingScope_No_Disturbing = 17, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Conversation_Clear_Message = 18, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Conversation_Draft = 19, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Disable_Sync_Draft = 20, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Voip_Silent = 21, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_PTT_Reserved = 22, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Custom_State = 23, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Disable_Secret_Chat = 24, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Ptt_Silent = 25, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Group_Remark = 26, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Privacy_Searchable = 27, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_AddFriend_NoVerify = 28, - - //自定义用户设置,请使用1000以上的key - UserSettingScope_Custom_Begin = 1000 -} ; - - -/** - 搜索用户类型 - - - SearchUserType_General: 模糊搜索diaplayName,精确匹配name或电话或用户ID - - SearchUserType_Name_Mobile: 精确匹配name或电话 - - SearchUserType_Name: 精确匹配name - - SearchUserType_Mobile: 精确匹配电话 - - SearchUserType_UserId: 精确匹配用户ID - - SearchUserType_Name_Mobile_UserId: 精确匹配name或电话或用户ID - */ -typedef NS_ENUM(NSInteger, WFCCSearchUserType) { - SearchUserType_General, - SearchUserType_Name_Mobile, - SearchUserType_Name, - SearchUserType_Mobile, - SearchUserType_UserId, - SearchUserType_Name_Mobile_UserId -}; - -/** - 搜索用户的用户类型 - - - UserSearchUserType_All: 搜索普通用户和机器人 - - UserSearchUserType_Only_User: 只搜索普通用户 - - UserSearchUserType_Only_Robot: 只搜索机器人 - */ -typedef NS_ENUM(NSInteger, WFCCUserSearchUserType) { - UserSearchUserType_All, - UserSearchUserType_Only_User, - UserSearchUserType_Only_Robot -}; - -/** - 禁止搜索当前用户的掩码。 - - - DisableSearch_DisplayName_Mask: 第1位是是否禁止搜索昵称 - - DisableSearch_Name_Mask: 第2位是否禁止搜索账户 - - DisableSearch_Mobile_Mask: 第3位是否禁止搜索电话号码 - - DisableSearch_UserId_Mask: 第4位是否禁止搜索用户ID - */ -typedef NS_ENUM(NSInteger, WFCCDisableSearchMask) { - DisableSearch_DisplayName_Mask = 1, - DisableSearch_Name_Mask = 2, - DisableSearch_Mobile_Mask = 4, - DisableSearch_UserId_Mask = 8, -}; - - -typedef NS_ENUM(NSInteger, WFCCPlatformType) { - PlatformType_UNSET = 0, - PlatformType_iOS = 1, - PlatformType_Android = 2, - PlatformType_Windows = 3, - PlatformType_OSX = 4, - PlatformType_WEB = 5, - PlatformType_WX = 6, - PlatformType_Linux = 7, - PlatformType_iPad = 8, - //Android pad - PlatformType_APad = 9, - PlatformType_Harmony = 10, - PlatformType_HarmonyPad = 11, - PlatformType_HarmonyPC = 12 -} ; - -typedef NS_ENUM(NSInteger, WFCCFileRecordOrder) { - FileRecordOrder_TIME_DESC = 0, - FileRecordOrder_TIME_ASC = 1, - FileRecordOrder_SIZE_DESC = 2, - FileRecordOrder_SIZE_ASC = 3, -} ; - -#pragma mark - 用户源 -/* - * ChatClient内置支持用户信息托管,但对于很多应用来说都已经拥有自己的用户信息。此时可以实现用户源并设置到IMServer中去。这样ChatClient会从源中读取信息,从而ChatUIKit不用修改代码。 - * 对于好友关系,由于页面简单。如果客户有自己的好友关系,建议客户自己修改相关UI。 - * 对于群组建议使用我们的托管。 - */ -@protocol WFCCUserSource -- (WFCCUserInfo *)getUserInfo:(NSString *)userId - refresh:(BOOL)refresh; - -- (WFCCUserInfo *)getUserInfo:(NSString *)userId inGroup:(NSString *)groupId refresh:(BOOL)refresh; - -- (NSArray *)getUserInfos:(NSArray *)userIds inGroup:(NSString *)groupId; - -- (void)getUserInfo:(NSString *)userId - refresh:(BOOL)refresh - success:(void(^)(WFCCUserInfo *userInfo))successBlock - error:(void(^)(int errorCode))errorBlock; - -- (void)getUserInfo:(NSString *)userId - groupId:(NSString *)groupId - refresh:(BOOL)refresh - success:(void(^)(WFCCUserInfo *userInfo))successBlock - error:(void(^)(int errorCode))errorBlock; - -- (void)getUserInfos:(NSArray *)userIds - groupId:(NSString *)groupId - success:(void(^)(NSArray *userInfos))successBlock - error:(void(^)(int errorCode))errorBlock; - -- (void)searchUser:(NSString *)keyword - searchType:(WFCCSearchUserType)searchType - page:(int)page - success:(void(^)(NSArray *machedUsers))successBlock - error:(void(^)(int errorCode))errorBlock; - -- (void)searchUser:(NSString *)keyword - domain:(NSString *)domainId - searchType:(WFCCSearchUserType)searchType - page:(int)page - success:(void(^)(NSArray *machedUsers))successBlock - error:(void(^)(int errorCode))errorBlock; - -- (void)searchUser:(NSString *)keyword - domain:(NSString *)domainId - searchType:(WFCCSearchUserType)searchType - userType:(WFCCUserSearchUserType)userType - page:(int)page - success:(void(^)(NSArray *machedUsers))successBlock - error:(void(^)(int errorCode))errorBlock; - - --(void)modifyMyInfo:(NSDictionary *)values - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; -@end - -@protocol ReceiveMessageFilter; -@class WFCCUserOnlineState; -@class WFCCUserCustomState; -@class UIImage; -#pragma mark - IM服务 - -/** - IM服务 - */ -@interface WFCCIMService : NSObject - -/** - IM服务单例 - - @return IM服务单例 - */ -+ (WFCCIMService*)sharedWFCIMService; - - -/* - 使用raw消息。当client用于uniapp时,messagePayload没有必要decode为messagecontent,使用raw消息,收发消息都是WFCCRawMessageContent。不要调用这个函数,仅仅当client用在uniapp时。 - */ -- (void)useRawMessage; - - -/** - 外部用户源 - */ -@property(nonatomic, weak)id userSource; - - -/** - 默认图片,当图片消息或者其他类型需要缩略图消息没有缩略图时,使用次默认图片 - */ -@property(nonatomic, strong)UIImage *defaultThumbnailImage; - -#pragma mark - 会话相关 -/** - 获取会话信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @return 会话信息 - */ -- (NSArray *)getConversationInfos:(NSArray *)conversationTypes - lines:(NSArray *)lines; - -/** - 获取会话信息 - - @param conversation 会话 - @return 会话信息 - */ -- (WFCCConversationInfo *)getConversationInfo:(WFCCConversation *)conversation; - -/** - 搜索会话 - - @param keyword 关键词 - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @return 会话搜索结果信息 - */ -- (NSArray *)searchConversation:(NSString *)keyword inConversation:(NSArray *)conversationTypes lines:(NSArray *)lines; - -/** - 搜索会话 - - @param keyword 关键词 - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param startTime 开始时间,如果不限制开始时间请使用0 - @param endTime 结束时间,如果不限制开始时间请使用0 - @param desc 是否逆序 - @param limit limit - @param offset offset - @return 会话搜索结果信息 - */ -- (NSArray *)searchConversation:(NSString *)keyword inConversation:(NSArray *)conversationTypes lines:(NSArray *)lines startTime:(int64_t)startTime endTime:(int64_t)endTime desc:(BOOL)desc limit:(int)limit offset:(int)offset; - -/** - 搜索会话 - - @param keyword 关键词 - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param cntTypes 消息内容类型 - @param startTime 开始时间,如果不限制开始时间请使用0 - @param endTime 结束时间,如果不限制开始时间请使用0 - @param desc 是否逆序 - @param limit limit - @param offset offset - @param onlyMentionedMsg 是否只搜索提醒消息 - @return 会话搜索结果信息 - */ -- (NSArray *)searchConversation:(NSString *)keyword - inConversation:(NSArray *)conversationTypes - lines:(NSArray *)lines - cntTypes:(NSArray *)cntTypes - startTime:(int64_t)startTime - endTime:(int64_t)endTime - desc:(BOOL)desc - limit:(int)limit - offset:(int)offset - onlyMentionedMsg:(BOOL)onlyMentionedMsg; - -/** - 删除会话 - - @param conversation 会话 - @param clearMessage 是否删除会话中的消息 - */ -- (void)removeConversation:(WFCCConversation *)conversation - clearMessage:(BOOL)clearMessage; - -/** - 设置或取消会话置顶 - - @param conversation 会话 - @param top 置顶优先级 - */ -- (void)setConversation:(WFCCConversation *)conversation - top:(int)top - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 设置会话免打扰 - - @param conversation 会话 - @param silent 是否免打扰 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setConversation:(WFCCConversation *)conversation - silent:(BOOL)silent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取会话是否免打扰状态 - - @param conversation 会话 - @return 会话是否免打扰 - */ -- (BOOL)isConversationSilent:(WFCCConversation *)conversation; -/** - 设置会话草稿 - - @param conversation 会话 - @param draft 草稿 - */ -- (void)setConversation:(WFCCConversation *)conversation - draft:(NSString *)draft; - -/** - 更新会话的时间 - - @param conversation 会话 - @param timestamp 时间戳 - */ -- (void)setConversation:(WFCCConversation *)conversation - timestamp:(long long)timestamp; - -/** - 获取会话列表第一条未读消息Id - - @param conversation 会话 - - @return 会话中最早一条未读消息Id - */ -- (long)getFirstUnreadMessageId:(WFCCConversation *)conversation; - -/** - 清除远端会话消息,仅专业版支持。 - - @param conversation 会话 - @param successBlock 删除成功 - @param errorBlock 删除失败 - */ -- (void)clearRemoteConversationMessage:(WFCCConversation *)conversation - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -#pragma mark - 未读数相关 -/** - 获取指定类型会话的未读数 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @return 未读数 - */ -- (WFCCUnreadCount *)getUnreadCount:(NSArray *)conversationTypes - lines:(NSArray *)lines; - -/** - 获取某个会话的未读数 - - @param conversation 会话 - @return 未读数 - */ -- (WFCCUnreadCount *)getUnreadCount:(WFCCConversation *)conversation; - -/** - 清空会话未读数。 - - @param conversation 会话 - */ -- (void)clearUnreadStatus:(WFCCConversation *)conversation; - -/** -清空会话未读数 - -@param conversationTypes 会话类型 -@param lines 线路 -*/ -- (void)clearUnreadStatus:(NSArray *)conversationTypes - lines:(NSArray *)lines; - -/** - 清空所有会话的未读数。仅清理本地消息的未读数,没有同步到其他端,如果多端使用,请避免使用此方法 - */ -- (void)clearAllUnreadStatus DEPRECATED_MSG_ATTRIBUTE("use clearUnreadStatus:lines: instead"); - -/** - 清空消息未读。 - - @param messageId 消息ID - @discuss 这个函数只能清除本地的状态,不能同步到服务器或者其他端。建议一般情况下不要用这个接口。 - */ -- (void)clearMessageUnreadStatus:(long)messageId; - -/** - 清空某条消息之前(包含)所有消息的未读状态。 - - @param messageId 消息ID - @param conversation 消息所属会话 - */ -- (void)clearMessageUnreadStatusBefore:(long)messageId conversation:(WFCCConversation *)conversation; - -/** - 设置会话的最后一条接收消息为未读状态。 - - @param conversation 会话 - @param sync 是否同步到其它客户端 - @return YES设置成功,NO消息不存在或已经存在未读。 - */ -- (BOOL)markAsUnRead:(WFCCConversation *)conversation syncToOtherClient:(BOOL)sync; - -/** - 设置媒体消息已播放(已经放开限制,所有消息都可以设置为已读状态) - - @param messageId 消息ID - */ -- (void)setMediaMessagePlayed:(long)messageId; - -/** - 设置消息的本地附加信息,注意信息不在多端之间同步。 - - @param messageId 消息ID - @param extra 附加信息 - - @return YES更新成功,NO消息不存在 - */ -- (BOOL)setMessage:(long)messageId localExtra:(NSString *)extra; -/** -获取会话内已读状态 - -@param conversation 会话 -@return 会话的每个用户的已读时间 -*/ -- (NSMutableDictionary *)getConversationRead:(WFCCConversation *)conversation; - -/** -获取会话内已送达状态 - -@param conversation 会话 -@return 会话的每个用户的已送达时间 -*/ -- (NSMutableDictionary *)getMessageDelivery:(WFCCConversation *)conversation; - -#pragma mark - 消息相关 -/** - 获取消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @return 消息实体 - */ -- (NSArray *)getMessages:(WFCCConversation *)conversation - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMessagesV2:(WFCCConversation *)conversation - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取提醒消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param fromIndex 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMentionedMessages:(WFCCConversation *)conversation - from:(NSUInteger)fromIndex - count:(NSInteger)count - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param messageStatus 消息状态WFCCMessageStatus - @param fromIndex 起始index - @param count 总数 - @return 消息实体 - */ -- (NSArray *)getMessages:(WFCCConversation *)conversation - messageStatus:(NSArray *)messageStatus - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param messageStatus 消息状态WFCCMessageStatus - @param fromIndex 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMessagesV2:(WFCCConversation *)conversation - messageStatus:(NSArray *)messageStatus - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取某类会话信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @return 消息实体 - */ -- (NSArray *)getMessages:(NSArray *)conversationTypes - lines:(NSArray *)lines - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取某类会话信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMessagesV2:(NSArray *)conversationTypes - lines:(NSArray *)lines - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; -/** - 获取某类会话信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param messageStatus 消息状态 - @param fromIndex 起始index - @param count 总数 - @param user 对话用户 - @return 消息实体 - */ -- (NSArray *)getMessages:(NSArray *)conversationTypes - lines:(NSArray *)lines - messageStatus:(NSArray *)messageStatus - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取某类会话信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param messageStatus 消息状态 - @param fromIndex 起始index - @param count 总数 - @param user 对话用户 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMessagesV2:(NSArray *)conversationTypes - lines:(NSArray *)lines - messageStatus:(NSArray *)messageStatus - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取消息 - @discuss 获取从fromTime起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param contentTypes 消息类型 - @param fromTime 起始index - @param count 总数 - @return 消息实体 - */ -- (NSArray *)getMessages:(WFCCConversation *)conversation - contentTypes:(NSArray *)contentTypes - fromTime:(NSUInteger)fromTime - count:(NSInteger)count - withUser:(NSString *)user DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取消息 - @discuss 获取从fromTime起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param contentTypes 消息类型 - @param fromTime 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMessagesV2:(WFCCConversation *)conversation - contentTypes:(NSArray *)contentTypes - fromTime:(NSUInteger)fromTime - count:(NSInteger)count - withUser:(NSString *)user - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取用户会话消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param userId 用户ID - @param conversation 会话 - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @return 消息实体 - */ -- (NSArray *)getUserMessages:(NSString *)userId - conversation:(WFCCConversation *)conversation - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取用户会话消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param userId 用户ID - @param conversation 会话 - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getUserMessagesV2:(NSString *)userId - conversation:(WFCCConversation *)conversation - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取用户某类会话信息 - - @param userId 用户ID - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @return 消息实体 - */ -- (NSArray *)getUserMessages:(NSString *)userId - conversationTypes:(NSArray *)conversationTypes - lines:(NSArray *)lines - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取用户某类会话信息 - - @param userId 用户ID - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getUserMessagesV2:(NSString *)userId - conversationTypes:(NSArray *)conversationTypes - lines:(NSArray *)lines - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取服务器消息 - @discussion 获取得到的消息数目有可能少于指定的count数,如果count不为0就意味着还有更多的消息可以获取,只有获取到的消息数为0才表示没有更多的消息了。 - - @param conversation 会话 - @param beforeMessageUid 起始index - @param count 总数 - @param successBlock 返回消息 - @param errorBlock 返回错误码 - */ -- (void)getRemoteMessages:(WFCCConversation *)conversation - before:(long long)beforeMessageUid - count:(NSUInteger)count - contentTypes:(NSArray *)contentTypes - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取一条远端消息,消息不会存储在数据库中 - - @param messageUid 消息ID - @param successBlock 返回消息 - @param errorBlock 返回错误码 - */ -- (void)getRemoteMessage:(long long)messageUid - success:(void(^)(WFCCMessage *message))successBlock - error:(void(^)(int error_code))errorBlock; -/** - 获取消息 - - @param messageId 消息ID - @return 消息实体 - */ -- (WFCCMessage *)getMessage:(long)messageId; - -/** - 获取消息 - - @param messageUid 消息UID - @return 消息实体 - */ -- (WFCCMessage *)getMessageByUid:(long long)messageUid; - -/** - 搜索消息 - - @param conversation 会话,如果为空将搜索所有会话 - @param keyword 关键词 - @param desc order - @param limit limit - @param offset offset - @param withUser 用户ID - @return 命中的消息 - */ -- (NSArray *)searchMessage:(WFCCConversation *)conversation - keyword:(NSString *)keyword - order:(BOOL)desc - limit:(int)limit - offset:(int)offset - withUser:(NSString *)withUser; - -/** - 搜索消息 - - @param conversation 会话,如果为空将搜索所有会话 - @param keyword 关键词 - @param contentTypes 过滤的消息类型 - @param desc order - @param offset offset - @param limit limit - @param withUser 用户ID - @return 命中的消息 - */ -- (NSArray *)searchMessage:(WFCCConversation *)conversation - keyword:(NSString *)keyword - contentTypes:(NSArray *)contentTypes - order:(BOOL)desc - limit:(int)limit - offset:(int)offset - withUser:(NSString *)withUser; - -/** - 搜索消息 - - @param conversation 会话,如果为空将搜索所有会话 - @param keyword 关键词 - @param contentTypes 过滤的消息类型 - @param startTime 消息的开始时间,单位为毫秒,如果不需要开始时间请用0。 - @param endTime 消息的结束时间,单位为毫秒,如果不需要结束时间请用0.。 - @param desc order - @param offset offset - @param limit limit - @param withUser 用户ID - @return 命中的消息 - */ -- (NSArray *)searchMessage:(WFCCConversation *)conversation - keyword:(NSString *)keyword - contentTypes:(NSArray *)contentTypes - startTime:(int64_t)startTime - endTime:(int64_t)endTime - order:(BOOL)desc - limit:(int)limit - offset:(int)offset - withUser:(NSString *)withUser; - -/** - 搜索提醒消息 - - @param conversation 会话,如果为空将搜索所有会话 - @param keyword 关键词 - @param desc order - @param offset offset - @param limit limit - @return 命中的消息 - */ -- (NSArray *)searchMentionedMessages:(WFCCConversation *)conversation - keyword:(NSString *)keyword - order:(BOOL)desc - limit:(int)limit - offset:(int)offset; - -/** - 获取某类会话信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param contentTypes 消息类型 - @param keyword 关键字 - @param fromIndex 起始index - @param count 总数 - @param withUser 用户ID - @return 消息实体 - */ -- (NSArray *)searchMessage:(NSArray *)conversationTypes - lines:(NSArray *)lines - contentTypes:(NSArray *)contentTypes - keyword:(NSString *)keyword - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)withUser; - -/** - 获取某类会话提醒信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param keyword 关键字 - @param desc order - @param offset offset - @param limit limit - @return 消息实体 - */ -- (NSArray *)searchMentionedMessage:(NSArray *)conversationTypes - lines:(NSArray *)lines - keyword:(NSString *)keyword - order:(BOOL)desc - limit:(int)limit - offset:(int)offset; -/** - 发送消息 - - @param conversation 会话 - @param content 消息内容 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)send:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - success:(void(^)(long long messageUid, long long timestamp))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送媒体消息 - - @param conversation 会话 - @param content 消息内容 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)sendMedia:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - success:(void(^)(long long messageUid, long long timestamp))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送消息 - - @param conversation 会话 - @param content 消息内容 - @param expireDuration 消息的有效期,0不限期,单位秒 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)send:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - expireDuration:(int)expireDuration - success:(void(^)(long long messageUid, long long timestamp))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送消息 - - @param conversation 会话 - @param content 消息内容 - @param toUsers 在会话中只发给该用户,如果为空则发到会话中 - @param expireDuration 消息的有效期,0不限期,单位秒 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)send:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - toUsers:(NSArray *)toUsers - expireDuration:(int)expireDuration - success:(void(^)(long long messageUid, long long timestamp))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送媒体消息 - - @param conversation 会话 - @param content 消息内容 - @param expireDuration 消息的有效期,0不限期,单位秒 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)sendMedia:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - expireDuration:(int)expireDuration - success:(void(^)(long long messageUid, long long timestamp))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - error:(void(^)(int error_code))errorBlock; - - -/** - 发送媒体消息 - - @param conversation 会话 - @param content 消息内容 - @param toUsers 在会话中只发给该用户,如果为空则发到会话中 - @param expireDuration 消息的有效期,0不限期,单位秒 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)sendMedia:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - toUsers:(NSArray *)toUsers - expireDuration:(int)expireDuration - success:(void(^)(long long messageUid, long long timestamp))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送媒体消息 - - @param conversation 会话 - @param content 消息内容 - @param toUsers 在会话中只发给该用户,如果为空则发到会话中 - @param expireDuration 消息的有效期,0不限期,单位秒 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param mediaUploadedBlock 上传成功的回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)sendMedia:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - toUsers:(NSArray *)toUsers - expireDuration:(int)expireDuration - success:(void(^)(long long messageUid, long long timestamp))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - mediaUploaded:(void(^)(NSString *remoteUrl))mediaUploadedBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送已保存消息,消息状态必须是发送中或者发送失败 - - @param message 已经存储在本地待发送的消息 - @param expireDuration 消息的有效期,0不限期,单位秒 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - @return 协议栈是否可以发送 - */ -- (BOOL)sendSavedMessage:(WFCCMessage *)message - expireDuration:(int)expireDuration - success:(void(^)(long long messageUid, long long timestamp))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 取消发送消息,只有发送媒体类消息才可以取消 - - @param messageId 消息Id - @return 是否取消成功 - */ -- (BOOL)cancelSendingMessage:(long)messageId; -/** - 撤回消息 - - @param message 待撤回的消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - @discuss 服务器不检查可撤回时间,应用逻辑来处理。 - */ -- (void)recall:(WFCCMessage *)message - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 上传媒体(图片、语音、文件等)数据 - - @param fileName 文件名,可为空 - @param mediaData 媒体信息 - @param mediaType 媒体类型 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param errorBlock 失败的回调 - */ -- (void)uploadMedia:(NSString *)fileName - mediaData:(NSData *)mediaData - mediaType:(WFCCMediaType)mediaType - success:(void(^)(NSString *remoteUrl))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - error:(void(^)(int error_code))errorBlock; - -/** - 上传媒体(图片、语音、文件等)文件 - - @param filePath 文件名,可为空 - @param mediaType 媒体类型 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param errorBlock 失败的回调 - */ -- (void)uploadMediaFile:(NSString *)filePath - mediaType:(WFCCMediaType)mediaType - success:(void(^)(NSString *remoteUrl))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - error:(void(^)(int error_code))errorBlock; - -/** - 同步上传媒体(图片、语音、文件等),成功或者失败之后才会返回 - - @param fileName 文件名,可为空 - @param mediaData 媒体信息 - @param mediaType 媒体类型 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param errorBlock 失败的回调 - - @return 是否上传成功 - */ -- (BOOL)syncUploadMedia:(NSString *)fileName - mediaData:(NSData *)mediaData - mediaType:(WFCCMediaType)mediaType - success:(void(^)(NSString *remoteUrl))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取上传接口,用来上传大文件。只有专业版才支持,使用前先调用isSupportBigFilesUpload检查是否支持 - - @param fileName 文件名 - @param mediaType 媒体类型 - @param contentType Http的ContentType header,为空时默认为"application/octet-stream" - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getUploadUrl:(NSString *)fileName - mediaType:(WFCCMediaType)mediaType - contentType:(NSString *)contentType - success:(void(^)(NSString *uploadUrl, NSString *downloadUrl, NSString *backupUploadUrl, int type))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 是否支持大文件上传 - - @return YES支持大文件上传,调用getUploadUrl:getUploadUrl:success:error:方法获取到上传url,然后再在应用层上传。 - */ -- (BOOL)isSupportBigFilesUpload; - -/** - 删除本地消息 - - @param messageId 消息ID - @return 是否删除成功 - */ -- (BOOL)deleteMessage:(long)messageId; - - -/** - 批量删除本地消息 - - @param messageUids 消息UID列表 - @return 是否删除成功 - */ -- (BOOL)batchDeleteMessages:(NSArray *)messageUids; - -/** - 删除远端消息,仅专业版支持。 - - @param messageUid 消息UID - @param successBlock 删除成功 - @param errorBlock 删除失败 - */ -- (void)deleteRemoteMessage:(long long)messageUid - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 更新远端消息,仅专业版支持。 - - @discussion 客户端仅能更新自己发送的消息,更新的消息类型不能变,更新的消息类型是服务配置允许更新的内容。Server API更新则没有限制。 - - @param messageUid 消息UID - @param content 更新消息内容 - @param distribute 是否分发到其他客户端 - @param updateLocal 是否更新本地消息内容 - @param successBlock 删除成功 - @param errorBlock 删除失败 - */ -- (void)updateRemoteMessage:(long long)messageUid - content:(WFCCMessageContent *)content - distribute:(BOOL)distribute - updateLocal:(BOOL)updateLocal - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 删除会话中的消息 - - @param conversation 会话 - */ -- (void)clearMessages:(WFCCConversation *)conversation; - -/** - 删除会话中的before之前的旧消息。 - - @param conversation 会话,如果conversation为nil,则清除所有会话的消息。 - @param before 时间点,单位是毫秒 - */ -- (void)clearMessages:(WFCCConversation *)conversation before:(int64_t)before; - -/** - 删除会话中的消息,只保留最近指定条数的消息。 - - @param conversation 会话,如果conversation为nil,则清除所有会话的消息。 - @param keepCount 保留的条数 - */ -- (void)clearMessages:(WFCCConversation *)conversation keepLatest:(int)keepCount; - -/** - 删除指定用户指定时间段的消息 - - @param userId 指定用户 - @param start 消息开始时间,如果为0忽略开始时间 - @param end 消息结束时间,如果为0忽略结束时间 - */ -- (void)clearMessages:(NSString *)userId start:(int64_t)start end:(int64_t)end; - -/** - 删除所有消息。 - - @param removeConversation 是否同时删除会话信息 - */ -- (void)clearAllMessages:(BOOL)removeConversation; - -/** - 注册自定义消息类型 - - @param contentClass 自定义消息 - */ -- (void)registerMessageContent:(Class)contentClass; - -/** - 注册自定义消息flag。此方法仅供给uniapp使用。 - - @param contentType 自定义消息类型 - @param contentFlag 自定义消息flag - */ -- (void)registerMessageFlag:(int)contentType flag:(int)contentFlag; - -/** - 消息解码 - - @param payload 消息Payload - @return 消息内容 - */ -- (WFCCMessageContent *)messageContentFromPayload:(WFCCMessagePayload *)payload; - - -/** - 插入消息 - - @param conversation 会话 - @param content 消息内容 - @param status 消息状态,注意消息状态会影响消息方向 - @param serverTime 时间,0为当前时间 - @return 消息实体 - */ -- (WFCCMessage *)insert:(WFCCConversation *)conversation - sender:(NSString *)sender - content:(WFCCMessageContent *)content - status:(WFCCMessageStatus)status - notify:(BOOL)notify - toUsers:(NSArray *)toUsers - serverTime:(long long)serverTime; - -/** - 更新消息内容。只更新本地消息内容,无法更新服务器和远端。不支持聊天室消息,因为聊天室消息本地不存储。 - - @param messageId 消息ID - @param content 消息内容 - */ -- (void)updateMessage:(long)messageId - content:(WFCCMessageContent *)content; - -/** - 更新消息内容及时间。只更新本地消息内容,无法更新服务器和远端。不支持聊天室消息,因为聊天室消息本地不存储。 - - @param messageId 消息ID - @param content 消息内容 - @param timestamp 消息时间戳 - */ -- (void)updateMessage:(long)messageId - content:(WFCCMessageContent *)content - timestamp:(long long)timestamp; - -/** -更新消息状态,需要确保状态跟消息的方向相对应。一般情况下协议栈会自动处理好,不建议客户手动操作状态。。只更新本地消息内容,无法更新服务器和远端。 - -@param messageId 消息ID -@param status 消息状态 - -@return YES 更新成功。NO 消息不存在,或者状态与消息方向不匹配 -*/ -- (BOOL)updateMessage:(long)messageId status:(WFCCMessageStatus)status; - -/** - 插入消息。只插入到本地,无法更新服务器和远端。 - - @param message 待插入的消息 - @return 插入消息的id - */ -- (long)insertMessage:(WFCCMessage *)message; - -/** - 获取会话的消息数 - - @param conversation 会话。 - @return 会话的消息数。 - */ -- (int)getMessageCount:(WFCCConversation *)conversation; - -/** - 获取会话消息数量 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @return 会话信息 - */ -- (int)getConversationMessageCount:(NSArray *)conversationTypes - lines:(NSArray *)lines; -#pragma mark - 用户相关 -/** - 获取用户信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的单聊会话中时或者此人的用户信息页面使用一次true。 - - @param userId 用户ID - @param refresh 是否强制从服务器更新,如果本地没有或者强制,会从服务器刷新,然后发出通知kUserInfoUpdated。 - @return 本地的用户信息,可能为空 - */ -- (WFCCUserInfo *)getUserInfo:(NSString *)userId - refresh:(BOOL)refresh; - -/** - 获取用户信息 - @discussion 获取用户信息,如果在群中有群昵称也一并返回 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的单聊会话中时或者此人的用户信息页面使用一次true。 - - @param userId 用户ID - @param groupId 群组ID - @param refresh 是否强制从服务器更新,如果本地没有或者强制,会从服务器刷新,然后发出通知kUserInfoUpdated。 - @return 本地的用户信息,可能为空 - */ -- (WFCCUserInfo *)getUserInfo:(NSString *)userId inGroup:(NSString *)groupId refresh:(BOOL)refresh; - -/** - 批量获取用户信息 - - @param userIds 用户ID列表 - @param groupId 群组ID - @return 本地的用户信息列表。本地不存在的用户会返回只有id的用户信息,同时会拉取。 - */ -- (NSArray *)getUserInfos:(NSArray *)userIds inGroup:(NSString *)groupId; - -/** - 搜索用户 - - @param keyword 关键词 - @param searchType 搜索类型 - @param page page - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)searchUser:(NSString *)keyword - searchType:(WFCCSearchUserType)searchType - page:(int)page - success:(void(^)(NSArray *machedUsers))successBlock - error:(void(^)(int errorCode))errorBlock; - -/** - 搜索用户 - - @param keyword 关键词 - @param domainId 域ID - @param searchType 搜索类型 - @param page page - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)searchUser:(NSString *)keyword - domain:(NSString *)domainId - searchType:(WFCCSearchUserType)searchType - page:(int)page - success:(void(^)(NSArray *machedUsers))successBlock - error:(void(^)(int errorCode))errorBlock; - -/** - 搜索用户 - - @param keyword 关键词 - @param domainId 域ID - @param searchType 搜索类型 - @param userType 用户类型 - @param page page - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)searchUser:(NSString *)keyword - domain:(NSString *)domainId - searchType:(WFCCSearchUserType)searchType - userType:(WFCCUserSearchUserType)userType - page:(int)page - success:(void(^)(NSArray *machedUsers))successBlock - error:(void(^)(int errorCode))errorBlock; - -/** - 获取用户信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的单聊会话中时或者此人的用户信息页面使用true - - @param userId 用户ID - @param refresh 是否强制从服务器更新,如果本地没有或者强制,会从服务器刷新,然后发出通知kUserInfoUpdated。 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getUserInfo:(NSString *)userId - refresh:(BOOL)refresh - success:(void(^)(WFCCUserInfo *userInfo))successBlock - error:(void(^)(int errorCode))errorBlock; - -/** - 获取用户信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的单聊会话中时或者此人的用户信息页面使用true - - @param userId 用户ID - @param groupId 群组ID,可以为nil - @param refresh 是否强制从服务器更新,如果本地没有或者强制,会从服务器刷新,然后发出通知kUserInfoUpdated。 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getUserInfo:(NSString *)userId - groupId:(NSString *)groupId - refresh:(BOOL)refresh - success:(void(^)(WFCCUserInfo *userInfo))successBlock - error:(void(^)(int errorCode))errorBlock; - -/** - 批量获取用户信息 - @discussion 当本地有部分或者全部不存在时,会从服务器加载这些缺失的用户信息。 - - @param userIds 用户ID列表 - @param groupId 群组ID,可以为nil - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getUserInfos:(NSArray *)userIds - groupId:(NSString *)groupId - success:(void(^)(NSArray *userInfo))successBlock - error:(void(^)(int errorCode))errorBlock; -#pragma mark - 好友相关 -/** - 查询用户和当前用户是否是好友关系 - - @param userId 用户ID - @return 是否是好友 - */ -- (BOOL)isMyFriend:(NSString *)userId; - -/** - 获取当前用户的好友列表 - - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 好友列表的用户ID - */ -- (NSArray *)getMyFriendList:(BOOL)refresh; - -/** - 获取当前用户的好友列表 - - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 好友列表 - */ -- (NSArray *)getFriendList:(BOOL)refresh; - -/** - 搜索好友 - @param keyword 关键词 - @return 好友用户信息 - */ -- (NSArray *)searchFriends:(NSString *)keyword; - -/** - 搜索群组 - @param keyword 关键词 - @return 群组搜索结果 - */ -- (NSArray *)searchGroups:(NSString *)keyword; - -/** - 获取收到的好友请求 - - @return 好友请求 - */ -- (NSArray *)getIncommingFriendRequest; - -/** - 获取发出的好友请求 - - @return 好友请求 - */ -- (NSArray *)getOutgoingFriendRequest; - -/** - 获取所有的好友请求 - - @return 好友请求 - */ -- (NSArray *)getAllFriendRequest; - -/** - 获取某一条好友请求记录 - @param uerId 对方用户ID - @param direction 0 发送的好友请求;1 收到的好友请求。 - - @return 好友请求 - */ -- (WFCCFriendRequest *)getFriendRequest:(NSString *)uerId direction:(int)direction; - -/** - 清理好友请求 - @param direction 好友请求的方向,0发送;1收到。 - @param beforeTime 清理时间之前的请求,单位是毫秒。如果清理所有用0 - - @return 返回true表示清理成功,返回false表示没有符合条件的请求 - */ -- (BOOL)clearFriendRequest:(int)direction beforeTime:(int64_t)beforeTime; - -/** - 删除好友请求 - @param direction 好友请求的方向,0发送;1收到。 - @param userId 用户ID - - @return 返回true表示删除成功,返回false表示找到请求 - */ -- (BOOL)deleteFriendRequest:(NSString *)userId direction:(int)direction; - -/** - 从服务器更新好友请求 - */ -- (void)loadFriendRequestFromRemote; - -/** - 获取未读的好友请求数 - - @return 未读的好友请求数 - */ -- (int)getUnreadFriendRequestStatus; - -/** - 清除好友请求的未读数 - */ -- (void)clearUnreadFriendRequestStatus; - -/** - 删除好友 - - @param userId 用户ID - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)deleteFriend:(NSString *)userId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送好友请求 - - @param userId 用户ID - @param reason 请求说明 - @param extra 扩展信息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)sendFriendRequest:(NSString *)userId - reason:(NSString *)reason - extra:(NSString *)extra - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 处理好友请求 - - @param userId 用户ID - @param accpet 是否接受 - @param extra 附加信息,如果接受,附加信息会添加到好友附加信息中 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)handleFriendRequest:(NSString *)userId - accept:(BOOL)accpet - extra:(NSString *)extra - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (NSString *)getFriendAlias:(NSString *)friendId; - -- (void)setFriend:(NSString *)friendId - alias:(NSString *)alias - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (NSString *)getFriendExtra:(NSString *)friendId; -/** - 查询用户是否被加入黑名单 - - @param userId 用户ID - @return 是否被加入黑名单 - */ -- (BOOL)isBlackListed:(NSString *)userId; - -/** - 获取当前用户的黑名单列表 - - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 黑名单列表的用户ID - */ -- (NSArray *)getBlackList:(BOOL)refresh; - -/** - 设置黑名单 - - @param userId 用户ID - @param isBlackListed YES 加入黑名单; NO 取消黑名单 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setBlackList:(NSString *)userId - isBlackListed:(BOOL)isBlackListed - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -#pragma mark - 群相关 -/** - 获取群成员信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的群聊会话详情中时使用一次true。 - - @param groupId 群ID - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 群成员信息列表 - */ -- (NSArray *)getGroupMembers:(NSString *)groupId - forceUpdate:(BOOL)refresh; - -/** - 根据成员类型获取群成员信息 - - @param groupId 群ID - @param memberType 群成员类型 - @return 群成员信息列表 - */ -- (NSArray *)getGroupMembers:(NSString *)groupId - type:(WFCCGroupMemberType)memberType; - -/** - 获取指定数目群成员信息 - - @param groupId 群ID - @param count 群成员类型个数 - @return 群成员信息列表 - */ -- (NSArray *)getGroupMembers:(NSString *)groupId - count:(int)count; -/** - 获取群成员信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的群聊会话详情中时使用一次true。 - - @param groupId 群ID - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getGroupMembers:(NSString *)groupId - refresh:(BOOL)refresh - success:(void(^)(NSString *groupId, NSArray *))successBlock - error:(void(^)(int errorCode))errorBlock; - -/** - 获取群信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的群聊会话中时使用一次true。 - - @param groupId 群ID - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 群信息 - */ -- (WFCCGroupInfo *)getGroupInfo:(NSString *)groupId - refresh:(BOOL)refresh; - -/** - 批量获取群信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的群聊会话中时使用一次true。 - - @param groupIds 群ID列表 - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 群信息 - */ -- (NSArray *)getGroupInfos:(NSArray *)groupIds - refresh:(BOOL)refresh; -/** - 获取群信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的群聊会话中时使用一次true。 - - @param groupId 群ID - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getGroupInfo:(NSString *)groupId - refresh:(BOOL)refresh - success:(void(^)(WFCCGroupInfo *groupInfo))successBlock - error:(void(^)(int errorCode))errorBlock; -/** - 获取群成员信息 - - @param groupId 群ID - @param memberId 群成员ID - @return 群成员信息 - */ -- (WFCCGroupMember *)getGroupMember:(NSString *)groupId - memberId:(NSString *)memberId; - -/** - 创建群 - - @param groupId 群ID - @param groupName 群名称 - @param groupPortrait 群头像 - @param groupMembers 群成员 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)createGroup:(NSString *)groupId - name:(NSString *)groupName - portrait:(NSString *)groupPortrait - type:(WFCCGroupType)type - groupExtra:(NSString *)groupExtra - members:(NSArray *)groupMembers - memberExtra:(NSString *)memberExtra - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(NSString *groupId))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 添加群成员 - - @param members 成员的用户ID列表 - @param groupId 群ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)addMembers:(NSArray *)members - toGroup:(NSString *)groupId - memberExtra:(NSString *)memberExtra - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 踢出群成员 - - @param members 成员的用户ID列表 - @param groupId 群ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)kickoffMembers:(NSArray *)members - fromGroup:(NSString *)groupId - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 退群 - - @param groupId 群ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)quitGroup:(NSString *)groupId - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 退群 - - @param groupId 群ID - @param keepMessage 是否保留消息 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)quitGroup:(NSString *)groupId - keepMessage:(BOOL)keepMessage - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 解散群 - - @param groupId 群ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)dismissGroup:(NSString *)groupId - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 修改群信息 - - @param groupId 群ID - @param type 要修改的群属性 - @param newValue 要修改的群属性值 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)modifyGroupInfo:(NSString *)groupId - type:(ModifyGroupInfoType)type - newValue:(NSString *)newValue - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 修改自己的群昵称 - - @param groupId 群ID - @param newAlias 昵称 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)modifyGroupAlias:(NSString *)groupId - alias:(NSString *)newAlias - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 修改群成员的昵称,群主可以修改所有人,群管理员可以修改普通成员的群昵称 - - @param groupId 群ID - @param newAlias 昵称 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)modifyGroupMemberAlias:(NSString *)groupId - memberId:(NSString *)memberId - alias:(NSString *)newAlias - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 修改自己的群成员附加信息 - - @param groupId 群ID - @param extra 附加信息 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)modifyGroupMemberExtra:(NSString *)groupId - extra:(NSString *)extra - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 修改群成员的附加信息,群主可以修改所有人,群管理员可以修改普通成员的附加信息 - - @param groupId 群ID - @param extra 附加信息 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)modifyGroupMemberExtra:(NSString *)groupId - memberId:(NSString *)memberId - extra:(NSString *)extra - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; -/** - 转移群主 - - @param groupId 群ID - @param newOwner 群主的用户ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)transferGroup:(NSString *)groupId - to:(NSString *)newOwner - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 设置群管理 - - @param groupId 群ID - @param isSet 设置或取消 - @param memberIds 成员ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setGroupManager:(NSString *)groupId - isSet:(BOOL)isSet - memberIds:(NSArray *)memberIds - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 设置群成员禁言,仅专业版支持 - - @param groupId 群ID - @param isSet 设置或取消 - @param memberIds 成员ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)muteGroupMember:(NSString *)groupId - isSet:(BOOL)isSet - memberIds:(NSArray *)memberIds - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 设置群成员允许名单,当设置群全局禁言时,仅群主/群管理/运行名单成员可以发言,仅专业版支持 - - @param groupId 群ID - @param isSet 设置或取消 - @param memberIds 成员ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)allowGroupMember:(NSString *)groupId - isSet:(BOOL)isSet - memberIds:(NSArray *)memberIds - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取群备注 - - @param groupId 群ID - @return 群备注 - */ -- (NSString *)getGroupRemark:(NSString *)groupId; - -/** - 设置群备注 - - @param groupId 群ID - @param remark 群备注 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setGroup:(NSString *)groupId - remark:(NSString *)remark - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; -/** - 获取当前用户收藏的群组 - - @return 当前用户收藏的群组ID - */ -- (NSArray *)getFavGroups; - -/** - 是否是当前用户收藏的群组 - - @return 是否是当前用户收藏的群组 - */ -- (BOOL)isFavGroup:(NSString *)groupId; - -/** - 设置群组收藏状态 - - @param groupId 群组ID - @param fav 是否收藏 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setFavGroup:(NSString *)groupId fav:(BOOL)fav success:(void(^)(void))successBlock error:(void(^)(int errorCode))errorBlock; -#pragma mark - 个人设置相关 -/** - 获取个人设置 - - @param scope 设置项的scope - @param key 设置项的key - @return 设置值 - */ -- (NSString *)getUserSetting:(UserSettingScope)scope - key:(NSString *)key; - -/** - 获取个人一类设置 - - @param scope 设置项的scope - @return scope对应的所有设置值 - */ -- (NSDictionary *)getUserSettings:(UserSettingScope)scope; - -/** - 设置个人设置项 - - @param scope 设置项的scope - @param key 设置项的key - @param value 值 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setUserSetting:(UserSettingScope)scope - key:(NSString *)key - value:(NSString *)value - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 修改个人信息 - - @param values 信息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - @discuss 性别属性是int类型,修改时需要转为字符串类型 - */ --(void)modifyMyInfo:(NSDictionary *)values - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - - - -/** -是否全局静音 - -@return YES,当前用户全局静音;NO,没有全局静音 -*/ -- (BOOL)isGlobalSilent; - -/** -修改全局静音状态 - -@param silent 是否静音 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setGlobalSilent:(BOOL)silent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -是否实时音视频通知面打扰。服务器端2021.9.20后支持分别设置通知免打扰和实时音视频免打扰 - -@return YES,当前用户音视频不通知;NO,当前用户音视频通知 -*/ -- (BOOL)isVoipNotificationSilent; - -/** -修改实时音视频通知面打扰。服务器端2021.9.20后支持分别设置通知免打扰和实时音视频免打扰 - -@param silent 是否静音 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setVoipNotificationSilent:(BOOL)silent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -是否开启草稿同步 - -@return YES,同步;NO,不同步 -*/ -- (BOOL)isEnableSyncDraft; - -/** -修改是否开启草稿同步 - -@param enable 是否同步 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setEnableSyncDraft:(BOOL)enable - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -获取免打扰时间 - - @param resultBlock 免打扰时间回调,时间为UTC 0点开始的分钟数,需要转换成当地时间。 - @param errorBlock 不存在时调用,error_code为-1 -*/ -- (void)getNoDisturbingTimes:(void(^)(int startMins, int endMins))resultBlock - error:(void(^)(int error_code))errorBlock; - -/** -修改免打扰时间 - -@param startMins 起始时间,一天中的分钟数,时间为UTC,需要转换成当地时间。 -@param endMins 结束时间,一天中的分钟数。可以小于startMins,如果小于表示隔夜。 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setNoDisturbingTimes:(int)startMins - endMins:(int)endMins - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -取消免打扰时间 - -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)clearNoDisturbingTimes:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 当前时间是否是免打扰 - */ -- (BOOL)isNoDisturbing; - -/** -是否隐藏推送详情 - -@return YES,隐藏推送详情,提示“您收到一条消息”;NO,推送显示消息摘要 -*/ -- (BOOL)isHiddenNotificationDetail; - -/** -修改全局静音状态 - -@param hidden 是否静音 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setHiddenNotificationDetail:(BOOL)hidden - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -是否隐藏群组会话中群成员昵称显示 - -@return YES,群组会话中不显示群成员昵称;NO,显示 -*/ -- (BOOL)isHiddenGroupMemberName:(NSString *)groupId; - -/** -修改隐藏群组会话中群成员昵称显示状态 - -@param hidden 是否隐藏 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setHiddenGroupMemberName:(BOOL)hidden - group:(NSString *)groupId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取当前用户的所有群组,注意这个方法的代价比较大,不建议高频使用 - - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ --(void)getMyGroups:(void(^)(NSArray *groupIds))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取某个用户的共同群组,注意这个方法的代价比较大,不建议高频使用 - - @param userId 用户ID - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getCommonGroups:(NSString *)userId - success:(void(^)(NSArray *groupIds))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -当前用户是否启用消息回执功能,仅专业版有效 - -@return YES,开启消息回执功能;NO,关闭个人的消息回执功能。 -@disscussion 仅当服务器开启这个功能才有效 -*/ -- (BOOL)isUserEnableReceipt; -/** -修改当前用户是否启用消息回执功能,仅专业版有效 - -@param enable 是否开启 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 - @disscussion 仅当服务器开启这个功能才有效 -*/ -- (void)setUserEnableReceipt:(BOOL)enable - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取当前用户星标用户 - - @return 当前用户星标用户 - */ -- (NSArray *)getFavUsers; - -/** - 是否是星标用户 - - @return 是否是星标用户 - */ -- (BOOL)isFavUser:(NSString *)userId; - -/** - 设置星标用户 - - @param userId 用户ID - @param fav 是否星标 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setFavUser:(NSString *)userId fav:(BOOL)fav success:(void(^)(void))successBlock error:(void(^)(int errorCode))errorBlock; -#pragma mark - 聊天室相关 -- (void)joinChatroom:(NSString *)chatroomId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)quitChatroom:(NSString *)chatroomId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)getChatroomInfo:(NSString *)chatroomId - upateDt:(long long)updateDt - success:(void(^)(WFCCChatroomInfo *chatroomInfo))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)getChatroomMemberInfo:(NSString *)chatroomId - maxCount:(int)maxCount - success:(void(^)(WFCCChatroomMemberInfo *memberInfo))successBlock - error:(void(^)(int error_code))errorBlock; - -- (NSString *)getJoinedChatroomId; - -#pragma mark - 频道相关 -- (void)createChannel:(NSString *)channelName - portrait:(NSString *)channelPortrait - desc:(NSString *)desc - extra:(NSString *)extra - success:(void(^)(WFCCChannelInfo *channelInfo))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取频道信息 - - @param channelId 频道ID - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 群信息 - */ -- (WFCCChannelInfo *)getChannelInfo:(NSString *)channelId - refresh:(BOOL)refresh; - -/** - 修改频道信息 - - @param channelId 群ID - @param type 要修改的群属性 - @param newValue 要修改的群属性值 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)modifyChannelInfo:(NSString *)channelId - type:(ModifyChannelInfoType)type - newValue:(NSString *)newValue - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 搜索频道 - - @param keyword 关键词 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)searchChannel:(NSString *)keyword success:(void(^)(NSArray *machedChannels))successBlock error:(void(^)(int errorCode))errorBlock; - -/** - 是否收听频道 - - @param channelId 频道ID - @return YES,收听;NO,未收听 - */ -- (BOOL)isListenedChannel:(NSString *)channelId; - -/** - 收听或者取消收听频道 - - @param channelId 频道ID - @param listen 是否收听 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)listenChannel:(NSString *)channelId listen:(BOOL)listen success:(void(^)(void))successBlock error:(void(^)(int errorCode))errorBlock; - -/** - 获取当前用户创建的频道 - - @return 当前用户创建的频道ID - */ -- (NSArray *)getMyChannels; - -/** - 获取当前用户收听的频道 - - @return 当前用户收听的频道ID - */ -- (NSArray *)getListenedChannels DEPRECATED_MSG_ATTRIBUTE("use getRemoteListenedChannels: instead"); - -/** - 获取当前用户收听的频道 - - @param successBlock 成功返回关注的频道id列表 - @param errorBlock 失败 - */ -- (void)getRemoteListenedChannels:(void(^)(NSArray *))successBlock error:(void(^)(int errorCode))errorBlock; - -/** - 销毁频道 - - @param channelId 频道ID - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)destoryChannel:(NSString *)channelId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - - -#pragma mark - Mesh 接口 -/** - 获取域信息 - - @param domainId 域ID - @param refresh 是否从服务器刷新 - - @return 域信息 - */ -- (WFCCDomainInfo *)getDomainInfo:(NSString *)domainId refresh:(BOOL)refresh; -/** - 获取所有的域 - - @param successBlock 成功回调 - @param errorBlock 错误回调 - */ -- (void)getRemoteDomains:(void (^)(NSArray *))successBlock error:(void (^)(int))errorBlock; - -#pragma mark - Secret Chat 接口 -/** - 发起密聊 - - @param userId 对方用户ID - @param successBlock 成功的回调,回调返回密聊ID - @param errorBlock 失败的回调 - */ -- (void)createSecretChat:(NSString *)userId - success:(void(^)(NSString *targetId, int line))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 销毁密聊 - - @param targetId 密聊ID - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)destroySecretChat:(NSString *)targetId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取密聊用户ID - - @param targetId 密聊ID - @return 密聊对方用户ID - */ -- (WFCCSecretChatInfo *)getSecretChatInfo:(NSString *)targetId; - -/** - 解密密聊会话中加密的媒体数据 - - @param targetId 密聊会话 - @param encryptData 密聊中的加密过的媒体数据,需要下载下来本地保存。 - - @return 解密过的数据,注意只放到内存中,不要保存。 - */ -- (NSData *)decodeSecretChat:(NSString *)targetId mediaData:(NSData *)encryptData; - -/** - 设置密聊会话阅后即焚时间 - - @param targetId 密聊会话 - @param millisecond 时间 - */ -- (void)setSecretChat:(NSString *)targetId burnTime:(int)millisecond; - - -/** - 当前系统是否支持密聊。 - - @return t是否支持密聊 - */ -- (BOOL)isEnableSecretChat; - -/** -当前用户是否启用密聊 - -@return YES,开启密聊功能;NO,关闭密聊功能。 -@disscussion 仅影响密聊的创建,已经创建的密聊不受影响 -*/ -- (BOOL)isUserEnableSecretChat; -/** -修改当前用户是否启用密聊功能 - -@param enable 是否开启 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -@disscussion 仅影响密聊的创建,已经创建的密聊不受影响 -*/ -- (void)setUserEnableSecretChat:(BOOL)enable - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -当前用户是否开启添加好友需要验证,默认为开启 - -@return YES,需要验证;NO,不需验证 -*/ -- (BOOL)isAddFriendNeedVerify; -/** -修改当前用户是否开启添加好友需要验证功能 - -@param enable 是否开启 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setAddFriendNeedVerify:(BOOL)enable - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; -#pragma mark - 其它接口 -/** -获取PC在线信息 - -@return PC端在线状态 -*/ -- (NSArray *)getPCOnlineInfos; - -/** -踢掉PC或者Web - -@param pcClientId PC或Web端的clientId -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)kickoffPCClient:(NSString *)pcClientId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - PC/Web在线时,是否停止通知 - - @return 是否停止通知 - */ -- (BOOL)isMuteNotificationWhenPcOnline; - -/** - 设置PC/Web在线时,手机是否默认静音。缺省值为YES,只有在IM服务配置server.mobile_default_silent_when_pc_online 为false时,才需要调用此函数设置为NO,此时静音状态意义翻转。其它请求千万不要调用此函数,否则会引起状态错乱。 - 设置当PC在线时是否通知的方法是 muteNotificationWhenPcOnline:success:error - - @param defaultSilent 缺省值是否为静音。 - */ -- (void)setDefaultSilentWhenPcOnline:(BOOL)defaultSilent; - -/** - 设置PC/Web在线时,是否发送通知 - - @param isMute 是否通知 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)muteNotificationWhenPcOnline:(BOOL)isMute - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取会话文件。conversation不为空时,获取该会话内的文件记录;当conversation为空时,获取用户收到的所有文件记录。 - - @param conversation 会话 - @param fromUser 该用户发送的文件,如果为空返回所有文件 - @param messageUid 起始记录的UID - @param order 文件列表排序 - @param count count - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getConversationFiles:(WFCCConversation *)conversation - fromUser:(NSString *)fromUser - beforeMessageUid:(long long)messageUid - order:(WFCCFileRecordOrder)order - count:(int)count - success:(void(^)(NSArray *files))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取当前用户发送的文件。 - - @param beforeMessageUid 起始记录的UID - @param order 文件列表排序 - @param count count - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMyFiles:(long long)beforeMessageUid - order:(WFCCFileRecordOrder)order - count:(int)count - success:(void(^)(NSArray *files))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 删除文件记录。发送者可以删除,另外如果在群里,群主和管理员也可以删除。 - - @param messageUid 起始记录的UID - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)deleteFileRecord:(long long)messageUid - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 搜索文件。conversation不为空时,搜索该会话内的文件记录;当conversation为空时,搜索用户收到的所有文件记录。 - - @param keyword 关键字 - @param conversation 会话 - @param fromUser 该用户发送的文件,如果为空返回所有文件 - @param messageUid 起始记录的UID - @param order 文件列表排序 - @param count count - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)searchFiles:(NSString *)keyword - conversation:(WFCCConversation *)conversation - fromUser:(NSString *)fromUser - beforeMessageUid:(long long)messageUid - order:(WFCCFileRecordOrder)order - count:(int)count - success:(void(^)(NSArray *files))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 搜索当前用户发送的文件。 - - @param keyword 关键字 - @param beforeMessageUid 起始记录的UID - @param order 文件列表排序 - @param count count - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)searchMyFiles:(NSString *)keyword - beforeMessageUid:(long long)beforeMessageUid - order:(WFCCFileRecordOrder)order - count:(int)count - success:(void(^)(NSArray *files))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -获取媒体文件授权访问地址 - -@param messageUid 消息Uid -@param mediaType 媒体类型 -@param mediaPath 媒体Path -@param successBlock 成功的回调,backupAuthorizedUrl仅当支持双网环境才有意义 -@param errorBlock 失败的回调 -*/ -- (void)getAuthorizedMediaUrl:(long long)messageUid - mediaType:(WFCCMediaType)mediaType - mediaPath:(NSString *)mediaPath - success:(void(^)(NSString *authorizedUrl, NSString *backupAuthorizedUrl))successBlock - error:(void(^)(int error_code))errorBlock; - - -/** -获取应用的auth code,用于应用的免密登录 - */ -- (void)getAuthCode:(NSString *)applicationId - type:(int)type - host:(NSString *)host - success:(void(^)(NSString *authCode))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -config应用 - */ -- (void)configApplication:(NSString *)applicationId - type:(int)type - timestamp:(int64_t)timestamp - nonce:(NSString *)nonce - signature:(NSString *)signature - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; -/** -amr文件转成wav数据 - -@param amrPath amr文件路径 -@return wav数据 -*/ -- (NSData *)getWavData:(NSString *)amrPath; - -/** - 获取图片缩略图参数 - - @return 图片缩略图参数 - */ -- (NSString *)imageThumbPara; - - -/** - 开启数据库事务。注意:该方法仅仅在做数据迁移时使用,其它情况不要使用;另外开启成功后一定要注意commit,需要配对使用. - - @return 是否开启成功。 - */ -- (BOOL)beginTransaction; - -/** -提交数据库事务。注意:该方法仅仅在做数据迁移时使用,其它情况不要使用;需要跟beginTransaction配对使用 - -*/ -- (BOOL)commitTransaction; - -/** -回滚数据库事务。注意:该方法仅仅在做数据迁移时使用,其它情况不要使用;需要跟beginTransaction配对使用 - -*/ -- (BOOL)rollbackTransaction; - -/** - 是否是商业版IM服务。 - */ -- (BOOL)isCommercialServer; - -/** -是否支持已阅读报告 -*/ -- (BOOL)isReceiptEnabled; - -/** -群组是否支持已阅读报告 -*/ -- (BOOL)isGroupReceiptEnabled; - -/* - 是否应用关闭草稿同步功能 - */ -- (BOOL)isGlobalDisableSyncDraft; - -/* - 是否应用开启了Mesh功能 - */ -- (BOOL)isMeshEnabled; - -/* - 获取用户的在线状态 - */ -- (WFCCUserOnlineState *)getUserOnlineState:(NSString *)userId; - -- (WFCCUserCustomState *)getMyCustomState; - -- (void)setMyCustomState:(WFCCUserCustomState *)state - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)watchOnlineState:(WFCCConversationType)conversationType - targets:(NSArray *)targets - duration:(int)watchDuration - success:(void(^)(NSArray *states))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)unwatchOnlineState:(WFCCConversationType)conversationType - targets:(NSArray *)targets - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (BOOL)isEnableUserOnlineState; - -/* - 音视频会议相关 - */ -- (void)sendConferenceRequest:(long long)sessionId - room:(NSString *)roomId - request:(NSString *)request - data:(NSString *)data - success:(void(^)(NSString *authorizedUrl))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)sendConferenceRequest:(long long)sessionId - room:(NSString *)roomId - request:(NSString *)request - advanced:(BOOL)advanced - data:(NSString *)data - success:(void(^)(NSString *authorizedUrl))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)requireLock:(NSString *)lockId - duration:(NSUInteger)duration - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)releaseLock:(NSString *)lockId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)postMomentsRequest:(NSString *)path data:(NSData *)data success:(void(^)(NSData *responseData))successBlock error:(void(^)(int error_code))errorBlock; -//内部调用,请勿使用 -- (void)putUseOnlineStates:(NSArray *)states; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCImageMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCImageMessageContent.h deleted file mode 100644 index 0f8f998f..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCImageMessageContent.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// WFCCImageMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/2. -// Copyright © 2017年 wildfire chat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" -#import - -/** - 图片消息 - */ -@interface WFCCImageMessageContent : WFCCMediaMessageContent - -/** - 构造方法,会把Image存储到path中。 - - @param image 图片 - @param path 图片存储路径 - - @return 图片消息 - */ -+ (instancetype)contentFrom:(UIImage *)image cachePath:(NSString *)path; - -/** - 构造方法,会把Image存储到path中。 - - @param image 图片 - @param path 图片存储路径 - @param fullImage 是否发送原图 - - @return 图片消息 - */ -+ (instancetype)contentFrom:(UIImage *)image cachePath:(NSString *)path fullImage:(BOOL)fullImage; - -/** - 缩略图,自动生成 - */ -@property (nonatomic, strong)UIImage *thumbnail; - -/** - 图片尺寸 - */ -@property (nonatomic, assign)CGSize size; - -/** - 图片缩略图参数 - */ -@property (nonatomic, strong)NSString *thumbParameter; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCJoinCallRequestMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCJoinCallRequestMessageContent.h deleted file mode 100644 index 3fad1dcd..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCJoinCallRequestMessageContent.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// WFCCJoinCallRequestMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 通话正在进行消息 - */ -@interface WFCCJoinCallRequestMessageContent : WFCCMessageContent -@property (nonatomic, strong)NSString *callId; -@property (nonatomic, strong)NSString *clientId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCJsonSerializer.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCJsonSerializer.h deleted file mode 100644 index 388dcaba..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCJsonSerializer.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// WFCCJsonSerializer.h -// WFChatClient -// -// Created by Rain on 2022/5/31. -// Copyright © 2022 WildFireChat. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface WFCCJsonSerializer : NSObject -//子类需要实现此方法 -- (id)toJsonObj; - -//子类不要实现此方法 -- (NSString *)toJsonStr; -- (void)setDict:(NSMutableDictionary *)dict key:(NSString *)key longlongValue:(long long)longValue; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCKickoffGroupMemberNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCKickoffGroupMemberNotificationContent.h deleted file mode 100644 index 78e3d2f6..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCKickoffGroupMemberNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCKickoffGroupMemberNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群组踢人的通知消息 - */ -@interface WFCCKickoffGroupMemberNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 被踢成员的ID列表 - */ -@property (nonatomic, strong)NSArray *kickedMembers; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCKickoffGroupMemberVisibleNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCKickoffGroupMemberVisibleNotificationContent.h deleted file mode 100644 index 620230f0..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCKickoffGroupMemberVisibleNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCKickoffGroupMemberNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群组踢人的通知消息 - */ -@interface WFCCKickoffGroupMemberVisibleNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 被踢成员的ID列表 - */ -@property (nonatomic, strong)NSArray *kickedMembers; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCLeaveChannelChatMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCLeaveChannelChatMessageContent.h deleted file mode 100644 index b4784d5b..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCLeaveChannelChatMessageContent.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// WFCCLeaveChannelChatMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - - -/** - 进入频道会话消息 - */ -@interface WFCCLeaveChannelChatMessageContent : WFCCMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCLinkMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCLinkMessageContent.h deleted file mode 100644 index 5c162235..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCLinkMessageContent.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// WFCCLinkMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 链接消息 - */ -@interface WFCCLinkMessageContent : WFCCMessageContent - -/** - 链接标题 - */ -@property (nonatomic, strong)NSString *title; - -/** - 内容摘要 - */ -@property (nonatomic, strong)NSString *contentDigest; - -/** - 链接地址 - */ -@property (nonatomic, strong)NSString *url; - -/** - 链接图片地址 - */ -@property (nonatomic, strong)NSString *thumbnailUrl; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCLocationMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCLocationMessageContent.h deleted file mode 100644 index 26451cd3..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCLocationMessageContent.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// WFCCTextMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" -#import -#import - -/** - 位置消息 - */ -@interface WFCCLocationMessageContent : WFCCMessageContent - -/** - 构造消息 - - @param coordinate 坐标值 - @param title 位置信息 - @param thumbnail 缩略图 - @return 位置消息 - */ -+ (instancetype)contentWith:(CLLocationCoordinate2D) coordinate - title:(NSString *)title - thumbnail:(UIImage *)thumbnail; - -/** - 位置坐标 - */ -@property (nonatomic, assign)CLLocationCoordinate2D coordinate; - -/** - 位置信息 - */ -@property (nonatomic, strong)NSString *title; - -/** - 缩略图 - */ -@property (nonatomic, strong)UIImage *thumbnail; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCMediaMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCMediaMessageContent.h deleted file mode 100644 index 9b419bc9..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCMediaMessageContent.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// WFCCMediaMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/6. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 媒体消息 - */ -@interface WFCCMediaMessageContent : WFCCMessageContent - -/** - 媒体内容的本地存储路径 - */ -@property (nonatomic, strong)NSString *localPath; - -/** - 媒体内容的服务器路径 - */ -@property (nonatomic, strong)NSString *remoteUrl; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCMessage.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCMessage.h deleted file mode 100644 index 0c60ddd9..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCMessage.h +++ /dev/null @@ -1,103 +0,0 @@ -// -// WFCCMessage.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCConversation.h" -#import "WFCCMessageContent.h" -#import "WFCCJsonSerializer.h" -#import "WFCCProtocol.h" -/** - 消息方向 - - - MessageDirection_Send: 发送 - - MessageDirection_Receive: 接收 - */ -typedef NS_ENUM(NSInteger, WFCCMessageDirection) { - MessageDirection_Send, - MessageDirection_Receive -}; - -/** - 消息状态 - - - Message_Status_Sending: 发送中 - - Message_Status_Sent: 发送成功 - - Message_Status_Send_Failure: 发送失败 - - Message_Status_Unread: 未读 - - Message_Status_Readed: 已读 - - Message_Status_Played: 已播放(媒体消息) - */ -typedef NS_ENUM(NSInteger, WFCCMessageStatus) { - Message_Status_Sending, - Message_Status_Sent, - Message_Status_Send_Failure, - Message_Status_Mentioned, - Message_Status_AllMentioned, - Message_Status_Unread, - Message_Status_Readed, - Message_Status_Played -}; - -/** - 消息实体 - */ -@interface WFCCMessage : WFCCJsonSerializer - -/** - 消息ID,当前用户本地唯一 - */ -@property (nonatomic, assign)long messageId; - -/** - 消息UID,所有用户全局唯一 - */ -@property (nonatomic, assign)long long messageUid; - -/** - 消息所属的会话 - */ -@property (nonatomic, strong)WFCCConversation *conversation; - -/** - 消息发送者的用户ID - */ -@property (nonatomic, strong)NSString * fromUser; - -/** - 消息在会话中定向发送给该用户的 - */ -@property (nonatomic, strong)NSArray *toUsers; - -/** - 消息内容 - */ -@property (nonatomic, strong)WFCCMessageContent *content; - -/** - 消息方向 - */ -@property (nonatomic, assign)WFCCMessageDirection direction; - -/** - 消息状态 - */ -@property (nonatomic, assign)WFCCMessageStatus status; - -/** - 消息的发送时间 - */ -@property (nonatomic, assign)long long serverTime; - -/** - 消息本地附加信息 - */ -@property (nonatomic, strong)NSString * localExtra; - -- (NSString *)digest; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCMessageContent.h deleted file mode 100644 index 242fd434..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCMessageContent.h +++ /dev/null @@ -1,193 +0,0 @@ -// -// WFCCMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/15. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" -/** - 媒体类型 - - - Media_Type_GENERAL: 一般 - - Media_Type_IMAGE: 图片 - - Media_Type_VOICE: 语音 - - Media_Type_VIDEO: 视频 - - Media_Type_File: 文件 - - Media_Type_PORTRAIT: 头像 - - Media_Type_FAVORITE: 收藏 - - Media_Type_STICKER:动态表情 - - Media_Type_MOMENTS:朋友圈 - */ -typedef NS_ENUM(NSInteger, WFCCMediaType) { - Media_Type_GENERAL = 0, - Media_Type_IMAGE = 1, - Media_Type_VOICE = 2, - Media_Type_VIDEO = 3, - Media_Type_FILE = 4, - Media_Type_PORTRAIT = 5, - Media_Type_FAVORITE = 6, - Media_Type_STICKER = 7, - Media_Type_MOMENTS = 8 -}; - - -/** - 消息存储类型 - - - NOT_PERSIST: 本地不存储 - - PERSIST: 本地存储 - - PERSIST_AND_COUNT: 本地存储,并计入未读计数 - - TRANSPARENT: 透传消息,不多端同步,如果对端不在线,消息会丢弃 - */ -typedef NS_ENUM(NSInteger, WFCCPersistFlag) { - WFCCPersistFlag_NOT_PERSIST = 0, - WFCCPersistFlag_PERSIST = 1, - WFCCPersistFlag_PERSIST_AND_COUNT = 3, - WFCCPersistFlag_TRANSPARENT = 4, -}; - -/** - 普通消息的持久化内容 - */ -@interface WFCCMessagePayload : WFCCJsonSerializer - -/** - 消息类型 - */ -@property (nonatomic, assign)int contentType; - -/** - 搜索内容 - */ -@property (nonatomic, strong)NSString *searchableContent; - -/** - 推送内容 -*/ -@property (nonatomic, strong)NSString *pushContent; -/** - 推送数据 -*/ -@property (nonatomic, strong)NSString *pushData; - -/** - 内容 - */ -@property (nonatomic, strong)NSString *content; - -/** - 内容流 - */ -@property (nonatomic, strong)NSData *binaryContent; - -/** - 只存储在客户端本地的内容 - */ -@property (nonatomic, strong)NSString *localContent; - -/** - 提醒类型,1,提醒部分对象(mentinedTarget)。2,提醒全部。其他不提醒 - */ -@property (nonatomic, assign)int mentionedType; - -/** - 提醒对象,mentionedType 1时有效 - */ -@property (nonatomic, strong)NSArray *mentionedTargets; - -/** - 附加信息 - */ -@property (nonatomic, strong)NSString *extra; - -/** - 本地信息,用于消息未从服务器下载下来。 - */ -@property (nonatomic, assign)BOOL notLoaded; -@end - -/** - 媒体消息的持久化内容 - */ -@interface WFCCMediaMessagePayload : WFCCMessagePayload - -/** - 媒体类型 - */ -@property (nonatomic, assign)WFCCMediaType mediaType; - -/** - 媒体内容的服务器URL - */ -@property (nonatomic, strong)NSString *remoteMediaUrl; - -/** - 媒体内容的本地URL,发送消息时不会携带,用于缓存加速显示 - */ -@property (nonatomic, strong)NSString *localMediaPath; - -@end - -@class WFCCMessage; -@class WFCCDictionary; -/** - 消息协议,所有消息(包括自定义消息均需要实现此协议) - */ -@protocol WFCCMessageContent - -/** - 消息编码 - - @return 消息的持久化内容 - */ -- (WFCCMessagePayload *)encode; - -/** - 消息解码 - - @param payload 消息的持久化内容 - */ -- (void)decode:(WFCCMessagePayload *)payload; - -/** - 消息类型,必须全局唯一。1000及以下为系统内置类型,自定义消息需要使用1000以上。 - - @return 消息类型的唯一值 - */ -+ (int)getContentType; - -/** - 消息的存储策略 - - @return 存储策略 - */ -+ (int)getContentFlags; - -/** - 消息的简短信息 - - @return 消息的简短信息,主要用于通知提示和会话列表等需要简略信息的地方。 - */ -- (NSString *)digest:(WFCCMessage *)message; -@end - -/** - 消息内容,自定义消息可以继承此类 - */ -@interface WFCCMessageContent : NSObject - -/** - 附加信息 - */ -@property (nonatomic, strong)NSString *extra; - -/** - 本地信息,用于消息未从服务器下载下来。 - */ -@property (nonatomic, assign)BOOL notLoaded; - -- (NSArray *)getArray:(WFCCDictionary *)dict ofKey:(NSString *)key; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCModifyGroupAliasNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCModifyGroupAliasNotificationContent.h deleted file mode 100644 index d645b490..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCModifyGroupAliasNotificationContent.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// WFCCModifyGroupAliasNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群成员修改群昵称的通知消息 - */ -@interface WFCCModifyGroupAliasNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者用户ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 群昵称 - */ -@property (nonatomic, strong)NSString *alias; - -/** - 被修改昵称的用户,如果为空为修改operator的群昵称。 - */ -@property (nonatomic, strong)NSString *memberId; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCModifyGroupExtraNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCModifyGroupExtraNotificationContent.h deleted file mode 100644 index 9023b929..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCModifyGroupExtraNotificationContent.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// WFCCModifyGroupExtraNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群成员修改群附加信息的通知消息 - */ -@interface WFCCModifyGroupExtraNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者用户ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 群成员附加信息 - */ -@property (nonatomic, strong)NSString *groupExtra; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCModifyGroupMemberExtraNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCModifyGroupMemberExtraNotificationContent.h deleted file mode 100644 index 0f55321b..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCModifyGroupMemberExtraNotificationContent.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// WFCCModifyGroupMemberExtraNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群成员修改群附加信息的通知消息 - */ -@interface WFCCModifyGroupMemberExtraNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者用户ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 群成员附加信息 - */ -@property (nonatomic, strong)NSString *groupMemberExtra; - -/** - 被修改昵称的用户,如果为空为修改operator的群昵称。 - */ -@property (nonatomic, strong)NSString *memberId; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCMultiCallOngoingMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCMultiCallOngoingMessageContent.h deleted file mode 100644 index 647fdb59..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCMultiCallOngoingMessageContent.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// WFCCMultiCallOngoingMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 通话正在进行消息 - */ -@interface WFCCMultiCallOngoingMessageContent : WFCCMessageContent -@property (nonatomic, strong)NSString *callId; -@property (nonatomic, strong)NSString *initiator; -@property (nonatomic, assign)BOOL audioOnly; -@property (nonatomic, strong)NSArray *targetIds; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCNetworkService.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCNetworkService.h deleted file mode 100644 index d4700d78..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCNetworkService.h +++ /dev/null @@ -1,519 +0,0 @@ -// -// WFCCNetworkService.h -// WFChatClient -// -// Created by heavyrain on 2017/11/5. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#ifndef WFCCNetworkService_h -#define WFCCNetworkService_h - -#import -#import "WFCCMessage.h" -#import "WFCCReadReport.h" -#import "WFCCDeliveryReport.h" - -extern const NSString *SDKVERSION; -#pragma mark - 通知定义 -//群组信息更新通知 -extern NSString *kGroupInfoUpdated; -//群组成员更新通知 -extern NSString *kGroupMemberUpdated; -//用户信息更新通知 -extern NSString *kUserInfoUpdated; -//好友列表更新通知 -extern NSString *kFriendListUpdated; -//好友请求信息更新通知 -extern NSString *kFriendRequestUpdated; -//设置更新通知 -extern NSString *kSettingUpdated; -//频道信息更新通知 -extern NSString *kChannelInfoUpdated; -//用户在线状态更新通知 -extern NSString *kUserOnlineStateUpdated; -//密聊状态更新通知 -extern NSString *kSecretChatStateUpdated; -//密聊消息阅后即焚开始计时 -extern NSString *kSecretMessageStartBurning; -//密聊消息阅后即焚完成 -extern NSString *kSecretMessageBurned; -//域信息更新通知 -extern NSString *kDomainInfoUpdated; - -#pragma mark - 枚举值定义 -/** - 连接状态 - - - kConnectionStatusTimeInconsistent 服务器和客户端时间相差太大 - - kConnectionStatusNotLicensed 专业版IM服务没有授权或者授权过期,社区版不会有此状态 - - kConnectionStatusKickedoff 多端登录被迫下线。 - - kConnectionStatusSecretKeyMismatch 密钥错误 - - kConnectionStatusTokenIncorrect Token错误 - - kConnectionStatusServerDown 服务器关闭 - - kConnectionStatusRejected: 被拒绝 - - kConnectionStatusLogout: 退出登录 - - kConnectionStatusUnconnected: 未连接 - - kConnectionStatusConnecting: 连接中 - - kConnectionStatusConnected: 已连接 - - kConnectionStatusReceiving: 正在与服务同步数据中 - */ -typedef NS_ENUM(NSInteger, ConnectionStatus) { - kConnectionStatusTimeInconsistent = -9, - kConnectionStatusNotLicensed = -8, - //错误码kConnectionStatusKickedoff是IM服务2021.9.15之后的版本才支持,并且打开服务器端开关server.client_support_kickoff_event - kConnectionStatusKickedoff = -7, - kConnectionStatusSecretKeyMismatch = -6, - kConnectionStatusTokenIncorrect = -5, - kConnectionStatusServerDown = -4, - kConnectionStatusRejected = -3, - kConnectionStatusLogout = -2, - kConnectionStatusUnconnected = -1, - kConnectionStatusConnecting = 0, - kConnectionStatusConnected = 1, - kConnectionStatusReceiving = 2 -}; - - -/** - 在双网环境中,获取当前连接的网络类型。仅当长连接建立时是准确的。如果长连接未建立,此值为上一次长连接建立时的值 - - - kConnectedNetworkType_Main 连接到主网络 - - kConnectedNetworkType_Backup 连接到备网络 - - kConnectedNetworkType_Unknown 未知 - - */ -typedef NS_ENUM(NSInteger, ConnectedNetworkType) { - kConnectedNetworkType_Main = 1, - kConnectedNetworkType_Unknown = 0, - kConnectedNetworkType_Backup = -1, -}; - -/** -平台枚举值 - - //Platform_Android = 2, - //Platform_Windows = 3, - //Platform_OSX = 4, - //Platform_WEB = 5, - //Platform_WX = 6, - //Platform_Linux = 7, - //Platform_iPad = 8, - //Platform_APad = 9, -*/ -#define Platform_iOS 1 -#define Platform_iPad 8 - - -#pragma mark - 连接状态&消息监听 -/** - 连接状态的监听 - */ -@protocol ConnectionStatusDelegate - -/** - 连接状态变化的回调 - - @param status 连接状态 - */ -- (void)onConnectionStatusChanged:(ConnectionStatus)status; - -@end - -/** - 连接状态的监听 - */ -@protocol ConnectToServerDelegate - -/** - 开始连接到服务器的回调 - - @param host 服务Host - @param ip 服务ip - @param port 服务端口 - */ -- (void)onConnectToServer:(NSString *)host ip:(NSString *)ip port:(int)port; - -/** - 成功连接到服务器的回调 - - @param host 服务Host - @param ip 服务ip - @param port 服务端口 - @param mainNw 是否是主网 - */ -- (void)onConnected:(NSString *)host ip:(NSString *)ip port:(int)port mainNw:(BOOL)mainNw; - -@end - -/** - 网络流量使用监听 - */ -@protocol TrafficDataDelegate - -/** - 网络产生流量的回调 - - @param send 发送的字节数 - @param recv 收到的字节数 - */ -- (void)onTrafficData:(int64_t)send recv:(int64_t)recv; - -@end - -/** - 消息接收的监听 - */ -@protocol ReceiveMessageDelegate - -/** - 接收消息的回调 - - @param messages 收到的消息 - @param hasMore 是否还有待接受的消息,UI可以根据此参数决定刷新的时机 - */ -- (void)onReceiveMessage:(NSArray *)messages hasMore:(BOOL)hasMore; - -@optional -- (void)onRecallMessage:(long long)messageUid; -- (void)onDeleteMessage:(long long)messageUid; - -/** -消息已送达到目标用户的回调 - -@param delivereds 送达报告 -*/ - -- (void)onMessageDelivered:(NSArray *)delivereds; - -/** -消息已读的监听 -*/ -- (void)onMessageReaded:(NSArray *)readeds; -@end - -/** - 接收消息前的拦截Filter - */ -@protocol ReceiveMessageFilter - -/** - 是否拦截收到的消息 - - @param message 消息 - @return 是否拦截,如果拦截该消息,则ReceiveMessageDelegate回调不会再收到此消息 - */ -- (BOOL)onReceiveMessage:(WFCCMessage *)message; -@end - -/** - 会议事件的监听 - */ -@protocol ConferenceEventDelegate - -/** - 会议事件的回调 - - @param event 事件 - */ -- (void)onConferenceEvent:(NSString *)event; -@end - -@class WFCCUserOnlineState; -/** - 在线事件的监听 - */ -@protocol OnlineEventDelegate - -/** - 在线事件的回调 - - @param events 事件 - */ -- (void)onOnlineEvent:(NSArray *)events; -@end - -@class WFCCUserInfo; -@class WFCCGroupInfo; -/** - 默认头像提供者 - */ -@protocol WFCCDefaultPortraitProvider -/** - 获取用户的默认头像链接 - - @param userInfo 用户信息 - @return 返回此用户的默认头像 - */ -- (NSString *)userDefaultPortrait:(WFCCUserInfo *)userInfo; - -/** - 获取群组的默认头像链接 - - @param groupInfo 群组信息 - @param memberInfos 群成员用户信息,只用前9名,可以只传入9名成员 - @return 返回此用户的默认头像 - */ -- (NSString *)groupDefaultPortrait:(WFCCGroupInfo *)groupInfo memberInfos:(NSArray *)memberInfos; -@end - -/** - 链接地址转换器,用于双网环境下媒体资源和头像等在不同网络下的转换 - */ -@protocol WFCCUrlRedirector -- (NSString *)redirect:(NSString *)originalUrl; -@end - - -#pragma mark - 连接服务 -/** - 连接服务 - */ -@interface WFCCNetworkService : NSObject - -/** - 连接服务单例 - - @return 连接服务单例 - */ -+ (WFCCNetworkService *)sharedInstance; - -/** - 连接状态监听 - */ -@property(nonatomic, weak) id connectionStatusDelegate; - -/** - 连接到服务监听 - */ -@property(nonatomic, weak) id connectToServerDelegate; - -/** - 网络流量监听 - */ -@property(nonatomic, weak) id trafficDataDelegate; - -/** - 消息接收监听 - */ -@property(nonatomic, weak) id receiveMessageDelegate; - -/** -会议事件监听 -*/ -@property(nonatomic, weak) id conferenceEventDelegate; - -/** -在线事件监听 -*/ -@property(nonatomic, weak) id onlineEventDelegate; - -/** - 默认头像提供者 - */ -@property(nonatomic, weak)id defaultPortraitProvider; - -/** - 双网地址转换器 - */ -@property(nonatomic, strong)id urlRedirector; - -/** - 当前是否处于登录状态 - */ -@property(nonatomic, assign, getter=isLogined, readonly)BOOL logined; - -/** - 当前的连接状态 - */ -@property(nonatomic, assign, readonly)ConnectionStatus currentConnectionStatus; - -/** - 当前登录的用户ID - */ -@property (nonatomic, strong, readonly)NSString *userId; - -/** - 服务器时间与本地时间的差值 - */ -@property(nonatomic, assign, readonly)long long serverDeltaTime; - -/** - 当前服务是否连接到了主网络 - */ -@property (nonatomic, assign, readonly)BOOL connectedToMainNetwork; - -/** - 发送日志命令 - */ -@property (nonatomic, strong)NSString *sendLogCommand; - -/** - 开启Log - */ -+ (void)startLog; - -/** - 停止Log - */ -+ (void)stopLog; - -/** -获取日志文件路径 -*/ -+ (NSArray *)getLogFilesPath; - -/* - 使用国密加密。注意必须和服务器同时配置,否则无法连接。 - */ -- (void)useSM4; - -/* - 使用AES256加密。注意必须和服务器同时配置,否则无法连接。 - */ -- (void)useAES256; - -/* - 使用TCP的短连接。需要专业版IM服务支持。 - */ -- (void)useTcpShortLink; - -/* - 是否使用TCP的短连接。需要专业版IM服务支持。 - */ -- (BOOL)isTcpShortLink; - -/* - 不使用FTS搜索。仅在connect之前调用有效。 - */ -- (void)noUseFts; -/** - 设置Lite模式。 - Lite模式下,协议栈不存储数据库,不同步所有信息,只能收发消息,接收消息只接收连接以后发送的消息。 - 此函数只能在connect之前调用。 - - @param isLiteMode 是否Lite模式 - */ -- (void)setLiteMode:(BOOL)isLiteMode; - -/** - 设置心跳时间,默认为270秒,可以设置为30-300之间的秒数。 - */ -- (void)setHeartBeatInterval:(int)second; - -/** - 获取客户端id - - @return 客户端ID - */ -- (NSString *)getClientId; - -/** - 连接服务器,需要注意token跟clientId是强依赖的,一定要调用getClientId获取到clientId,然后用这个clientId获取token,这样connect才能成功,如果随便使用一个clientId获取到的token将无法链接成功。另外不能多次connect,如果需要切换用户请先disconnect,然后3秒钟之后再connect(如果是用户手动登录可以不用等,因为用户操作很难3秒完成,如果程序自动切换请等3秒) - - @param userId 用户Id - @param token 密码 - - @return 返回上一次活动时间。如果间隔时间较长,可以加个第一次登录的等待提示界面,在等待时同步所有的用户信息/群组信息/频道信息等。 - */ -- (int64_t)connect:(NSString *)userId token:(NSString *)token; - -/** - 断开连接 - - @param disablePush 是否停止推送,clearSession为YES时无意义。如果为true,session会变成disable状态,token会失效,必须重新获取token才能登录。 - @param clearSession 是否清除Session信息,如果清除本地历史消息将全部清除,且token失效无法再次登录,必须重新获取token才能进行登录。 - */ -- (void)disconnect:(BOOL)disablePush clearSession:(BOOL)clearSession; - -/** - 设置服务器地址信息。host可以是IP,可以是域名。如果IM服务是专业版IM服务,需要设置为IM服务绑定的地址。 - - @param host 服务器地址 - */ -- (void)setServerAddress:(NSString *)host; - -/** - 设置当前设备的device token - - @param token 苹果APNs Device Token - */ -- (void)setDeviceToken:(NSString *)token; - -/** - 设置当前设备的device token,可以指定推送类型,用来对接个推、极光等第三方推送。 - - @param token 苹果APNs Device Token - @param pushType 推送类型 - */ -- (void)setDeviceToken:(NSString *)token pushType:(int)pushType; - -/** - 设置当前设备的Voip device token - - @param token 苹果APNs Device Token - */ -- (void)setVoipDeviceToken:(NSString *)token; - -/** - 添加消息拦截Filter - - @param filter 消息拦截Filter - */ -- (void)addReceiveMessageFilter:(id)filter; - -/** - 移除消息拦截Filter - - @param filter 消息拦截Filter - */ -- (void)removeReceiveMessageFilter:(id)filter; - -/** - 应用已经login且在后台的情况下,强制进行连接,确保后台连接5秒钟,用于voip推送后台刷新等场景。 - 应用在前台情况下,此方法无效。 - */ -- (void)forceConnect:(NSUInteger)second; - -- (void)cancelForceConnect; - -/* - 设置备选服务地址,仅专业版支持,一般用于政企单位内外网两种网络环境。请参考:https://docs.wildfirechat.cn/blogs/政企内外双网解决方案.html - */ -- (void)setBackupAddressStrategy:(int)strategy; -- (void)setBackupAddress:(NSString *)host port:(int)port; -- (ConnectedNetworkType)getConnectedNetworkType; - -/* - 设置协议栈短连接User agent。 - - @param userAgent User agent - */ -- (void)setProtoUserAgent:(NSString *)userAgent; - -/* - 添加协议栈短连接自定义header,value为空时清除该header。 - - @param header header - @param value value - */ -- (void)addHttpHeader:(NSString *)header value:(NSString *)value; - -/* - 设置代理,注意只能支持socks5代理,http代理无法支持,只有专业版支持次功能。 - - @param host 代理服务域名,host和ip至少要有一个有效值。 - @param ip 代理服务IP地址,host和ip至少要有一个有效值。 - @param port 代理服务端口 - @param username 账户 - @param password 密码 - */ -- (void)setProxyInfo:(NSString *)host ip:(NSString *)ip port:(int)port username:(NSString *)username password:(NSString *)password; - -/** - 获取协议栈版本 - */ -- (NSString *)getProtoRevision; -@end - -#endif diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCNotDeliveredMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCNotDeliveredMessageContent.h deleted file mode 100644 index 7ef1aaab..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCNotDeliveredMessageContent.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// WFCCNotDeliveredMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - - -/** - 没有送达消息 - */ -@interface WFCCNotDeliveredMessageContent : WFCCNotificationMessageContent -/** - 请求的类型,1是发送消息,2撤回消息,3 - */ -@property(nonatomic, assign)int type; -/** - 发送的消息ID - */ -@property(nonatomic, assign)int64_t messageUid; - -/** - 是全部失败,还是部分失败 - */ -@property(nonatomic, assign)BOOL allFailure; - -/** - 当部分失败时,失败的用户id列表 - */ -@property(nonatomic, strong)NSArray *userIds; - -/** - 归属IM服务请求桥接服务出现的错误,有可能是桥接服务没有配置,或者不可用。 - */ -@property(nonatomic, assign)int localImErrorCode; - -/** - 归属桥接服务出现的错误 - */ -@property(nonatomic, assign)int localBridgeErrorCode; - -/** - 远端桥接服务出现的错误 - */ -@property(nonatomic, assign)int remoteBridgeErrorCode; - -/** - 远端IM服务出现的错误 - */ -@property(nonatomic, assign)int remoteServerErrorCode; - -/** - 错误提示信息 - */ -@property(nonatomic, strong)NSString* errorMessage; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCNotificationMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCNotificationMessageContent.h deleted file mode 100644 index d65b33b1..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCNotificationMessageContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCNotificationMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - - -@class WFCCMessage; -/** - 通知消息的协议 - */ -@protocol WFCCNotificationMessageContent - -/** - 获取通知的提示内容 - - @return 提示内容 - */ -- (NSString *)formatNotification:(WFCCMessage *)message; -@end - -/** - 通知消息 - */ -@interface WFCCNotificationMessageContent : WFCCMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCPCLoginRequestMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCPCLoginRequestMessageContent.h deleted file mode 100644 index 6fa6975f..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCPCLoginRequestMessageContent.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// WFCCPCLoginRequestMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" -#import "WFCCIMService.h" - -/** - 建群的通知消息 - */ -@interface WFCCPCLoginRequestMessageContent : WFCCMessageContent - -/** - PC登录SessionID - */ -@property (nonatomic, strong)NSString *sessionId; - -/** - PC登录类型 - */ -@property (nonatomic, assign)WFCCPlatformType platform; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCPCOnlineInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCPCOnlineInfo.h deleted file mode 100644 index 4e0448c3..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCPCOnlineInfo.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// WFCCPCOnlineInfo.h -// WFChatClient -// -// Created by Tom Lee on 2020/4/6. -// Copyright © 2020 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - PC在线类型 - - - PC_Online: PC客户端在线 - - Web_Online: Web客户端在线 - - WX_Online: WX小程序客户端在线 - - Pad_Online: Pad客户端在线 - */ -typedef NS_ENUM(NSInteger, WFCCPCOnlineType) { - PC_Online, - Web_Online, - WX_Online, - Pad_Online -}; - - -@interface WFCCPCOnlineInfo : WFCCJsonSerializer -+ (instancetype)infoFromStr:(NSString *)strInfo withType:(WFCCPCOnlineType)type; -@property(nonatomic, assign)WFCCPCOnlineType type; -@property(nonatomic, assign)BOOL isOnline; -@property(nonatomic, assign)int/*WFCCPlatformType*/ platform; -@property(nonatomic, strong)NSString *clientId; -@property(nonatomic, strong)NSString *clientName; -@property(nonatomic, assign)long long timestamp; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCPTTSoundMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCPTTSoundMessageContent.h deleted file mode 100644 index 8e9615c9..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCPTTSoundMessageContent.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// WFCCPTTSoundMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/9. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCSoundMessageContent.h" - -/** - 语音消息 - */ -@interface WFCCPTTSoundMessageContent : WFCCSoundMessageContent - -/** - 构造方法 - - @param wavPath 文件路径 - @param amrPath 转化为amr的存储路径 - @param duration 时间 - @return 语音消息 - */ -+ (instancetype)soundMessageContentForWav:(NSString *)wavPath - destinationAmrPath:(NSString *)amrPath - duration:(long)duration; - - -/** - 构造方法 - - @param amrPath amr的存储路径 - @param duration 时间 - @return 语音消息 - */ -+ (instancetype)soundMessageContentForAmr:(NSString *)amrPath - duration:(long)duration; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCPTextMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCPTextMessageContent.h deleted file mode 100644 index b7cd90d5..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCPTextMessageContent.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// WFCCPTextMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCTextMessageContent.h" - -/** - 存储文本消息,与普通文本消息的区别是,普通文本消息存储切计未读数,本消息只存储不计数。 - */ -@interface WFCCPTextMessageContent : WFCCTextMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCProtocol.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCProtocol.h deleted file mode 100644 index 0e617f05..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCProtocol.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// WFCCProtocol.h -// WFChatClient -// -// Created by Rain on 2022/9/20. -// Copyright © 2022 WildFireChat. All rights reserved. -// - -#ifndef WFCCProtocol_h -#define WFCCProtocol_h - -@protocol WFCCDuplicatable - -- (instancetype)duplicate; - -@end - -#endif /* WFCCProtocol_h */ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCQuitGroupNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCQuitGroupNotificationContent.h deleted file mode 100644 index 92dbf1af..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCQuitGroupNotificationContent.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// WFCCQuitGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 退群的通知消息 - */ -@interface WFCCQuitGroupNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 退群成员的ID - */ -@property (nonatomic, strong)NSString *quitMember; - -/** - 退群成员的ID - */ -@property (nonatomic, assign)BOOL keepMessage; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCQuitGroupVisibleNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCQuitGroupVisibleNotificationContent.h deleted file mode 100644 index 0f4cc945..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCQuitGroupVisibleNotificationContent.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// WFCCQuitGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 退群的通知消息 - */ -@interface WFCCQuitGroupVisibleNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 退群成员的ID - */ -@property (nonatomic, strong)NSString *quitMember; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCQuoteInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCQuoteInfo.h deleted file mode 100644 index 8864ee74..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCQuoteInfo.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// WFCCQuoteInfo.h -// WFChatClient -// -// Created by dali on 2020/10/4. -// Copyright © 2020 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN -@class WFCCMessage; -@interface WFCCQuoteInfo : WFCCJsonSerializer -- (instancetype)initWithMessage:(WFCCMessage *)message; -@property (nonatomic, assign)long long messageUid; -@property (nonatomic, strong)NSString *userId; -@property (nonatomic, strong)NSString *userDisplayName; -@property (nonatomic, strong)NSString *messageDigest; - -- (NSDictionary *)encode; -- (void)decode:(NSDictionary *)dictData; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCRawMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCRawMessageContent.h deleted file mode 100644 index f3d05e10..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCRawMessageContent.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// WFCCRawMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" - -/** - Raw消息内容,消息没有经过decode,只包含payload. - */ -@interface WFCCRawMessageContent : WFCCMediaMessageContent - -+ (instancetype)contentOfPayload:(WFCCMessagePayload *)payload; -/** - 消息Payload - */ -@property (nonatomic, strong)WFCCMessagePayload *payload; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCReadReport.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCReadReport.h deleted file mode 100644 index 0a55ba95..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCReadReport.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// WFCCConversation.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCConversation.h" -/** - 会话 - */ -@interface WFCCReadReport : WFCCJsonSerializer - -+(instancetype)readed:(WFCCConversation *)conversation - userId:(NSString *)userId - timestamp:(long long)timestamp; - -@property (nonatomic, strong)WFCCConversation *conversation; -@property (nonatomic, strong)NSString *userId; -@property (nonatomic, assign)long long timestamp; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCRecallMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCRecallMessageContent.h deleted file mode 100644 index 472b8612..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCRecallMessageContent.h +++ /dev/null @@ -1,55 +0,0 @@ -// -// WFCCRecallMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 文本消息 - */ -@interface WFCCRecallMessageContent : WFCCNotificationMessageContent - -/** - 被撤回消息的Uid - */ -@property (nonatomic, assign)long long messageUid; - -/** - 撤回用户Id - */ -@property (nonatomic, strong)NSString *operatorId; - -/** -被撤回消息的发送者用户Id -*/ -@property (nonatomic, strong)NSString *originalSender; - -/** -撤回消息的内容类型 -*/ -@property (nonatomic, assign)int originalContentType; - -/** -撤回消息的可搜索内容类型 -*/ -@property (nonatomic, strong)NSString *originalSearchableContent; - -/** -撤回消息的内容 -*/ -@property (nonatomic, strong)NSString *originalContent; - -/** -撤回消息的Extra内容 -*/ -@property (nonatomic, strong)NSString *originalExtra; - -/** -撤回消息的时间戳 -*/ -@property (nonatomic, assign)long long originalMessageTimestamp; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCRichNotificationMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCRichNotificationMessageContent.h deleted file mode 100644 index 22ee4bf6..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCRichNotificationMessageContent.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// WFCCRichNotificationMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 富通知消息 - */ -@interface WFCCRichNotificationMessageContent : WFCCMessageContent -@property (nonatomic, strong)NSString *title; -@property (nonatomic, strong)NSString *desc; -@property (nonatomic, strong)NSString *remark; - -//@[@{@"key":@"登录账户", @"value":@"野火IM", @"color":@"#173155"}, @{@"key":@"登录地点", @"value":@"北京", @"color":@"#173155"}] -@property (nonatomic, strong)NSArray *> *datas; - -//附加信息 -@property (nonatomic, strong)NSString *exName; -@property (nonatomic, strong)NSString *exPortrait; -@property (nonatomic, strong)NSString *exUrl; - -//应用信息 -@property (nonatomic, strong)NSString *appId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCSecretChatInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCSecretChatInfo.h deleted file mode 100644 index 66941823..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCSecretChatInfo.h +++ /dev/null @@ -1,56 +0,0 @@ -// -// WFCCSecretChatInfo.h -// WFChatClient -// -// Created by heavyrain on 2021/5/16. -// Copyright © 2021 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - 密聊状态 - - - SecretChatState_Starting: 密聊会话建立中 - - SecretChatState_Accepting: 密聊会话接受中 - - SecretChatState_Established: 密聊会话已建立 - - SecretChatState_Canceled: 密聊会话已取消 - */ -typedef NS_ENUM(NSInteger, WFCCSecretChatState) { - SecretChatState_Starting, - SecretChatState_Accepting, - SecretChatState_Established, - SecretChatState_Canceled -}; - -@interface WFCCSecretChatInfo : WFCCJsonSerializer -/* - 密聊ID - */ -@property(nonatomic, strong)NSString *targetId; - -/* - 用户ID - */ -@property(nonatomic, strong)NSString *userId; - -/* - 密聊状态 - */ -@property(nonatomic, assign)WFCCSecretChatState state; - -/* - 阅后即焚时间 - */ -@property(nonatomic, assign)int burnTime; - -/* - 创建时间 - */ -@property(nonatomic, assign)long long createTime; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCSoundMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCSoundMessageContent.h deleted file mode 100644 index de2b097d..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCSoundMessageContent.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// WFCCSoundMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/9. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" - -/** - 语音消息 - */ -@interface WFCCSoundMessageContent : WFCCMediaMessageContent - -/** - 构造方法 - - @param wavPath 文件路径 - @param amrPath 转化为amr的存储路径 - @param duration 时间 - @return 语音消息 - */ -+ (instancetype)soundMessageContentForWav:(NSString *)wavPath - destinationAmrPath:(NSString *)amrPath - duration:(long)duration; - - -/** - 构造方法 - - @param amrPath amr的存储路径 - @param duration 时间 - @return 语音消息 - */ -+ (instancetype)soundMessageContentForAmr:(NSString *)amrPath - duration:(long)duration; - -/** - 时间 - */ -@property (nonatomic, assign)long duration; - -/** - 获取语音消息的wav数据 - - @return wav数据 - */ -- (NSData *)getWavData; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCStartSecretChatMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCStartSecretChatMessageContent.h deleted file mode 100644 index 103e0ec4..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCStartSecretChatMessageContent.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// WFCCMarkUnreadMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - - -/** - 标记未读同步消息 - */ -@interface WFCCStartSecretChatMessageContent : WFCCMessageContent - - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCStickerMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCStickerMessageContent.h deleted file mode 100644 index 6f233a17..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCStickerMessageContent.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// WFCCImageMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/2. -// Copyright © 2017年 wildfire chat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" -#import - -/** - 图片消息 - */ -@interface WFCCStickerMessageContent : WFCCMediaMessageContent - -/** - 构造方法 - - @param stickerPath 表情路径 - @return 表情消息 - */ -+ (instancetype)contentFrom:(NSString *)stickerPath; - -@property (nonatomic, assign)CGSize size; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCStreamingTextGeneratedMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCStreamingTextGeneratedMessageContent.h deleted file mode 100644 index bc0fe215..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCStreamingTextGeneratedMessageContent.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// WFCCStreamingTextGeneratedMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 富通知消息 - */ -@interface WFCCStreamingTextGeneratedMessageContent : WFCCMessageContent -@property (nonatomic, strong)NSString *text; -@property (nonatomic, strong)NSString *streamId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCStreamingTextGeneratingMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCStreamingTextGeneratingMessageContent.h deleted file mode 100644 index 0a69ae63..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCStreamingTextGeneratingMessageContent.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// WFCCStreamingTextGeneratingMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 富通知消息 - */ -@interface WFCCStreamingTextGeneratingMessageContent : WFCCMessageContent -@property (nonatomic, strong)NSString *text; -@property (nonatomic, strong)NSString *streamId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCTextMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCTextMessageContent.h deleted file mode 100644 index 2440416e..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCTextMessageContent.h +++ /dev/null @@ -1,44 +0,0 @@ -// -// WFCCTextMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" -#import "WFCCQuoteInfo.h" -/** - 文本消息 - */ -@interface WFCCTextMessageContent : WFCCMessageContent - -/** - 构造方法 - - @param text 文本 - @return 文本消息 - */ -+ (instancetype)contentWith:(NSString *)text; - -/** - 文本内容 - */ -@property (nonatomic, strong)NSString *text; - - -/** - 提醒类型,1,提醒部分对象(mentinedTarget)。2,提醒全部。其他不提醒 - */ -@property (nonatomic, assign)int mentionedType; - -/** - 提醒对象,mentionedType 1时有效 - */ -@property (nonatomic, strong)NSArray *mentionedTargets; - -/** - 引用信息 - */ -@property (nonatomic, strong)WFCCQuoteInfo *quoteInfo; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCThingsDataContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCThingsDataContent.h deleted file mode 100644 index cb1fb054..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCThingsDataContent.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// WFCCThingsDataContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 物联网数据 - */ -@interface WFCCThingsDataContent : WFCCMessageContent -/** - 二进制数据内容 - */ -@property (nonatomic, strong)NSData *data; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCThingsLostEventContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCThingsLostEventContent.h deleted file mode 100644 index 47c4e1c2..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCThingsLostEventContent.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// WFCCThingsLostEventContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 文本消息 - */ -@interface WFCCThingsLostEventContent : WFCCMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCTipNotificationMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCTipNotificationMessageContent.h deleted file mode 100644 index e5ac09f7..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCTipNotificationMessageContent.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// WFCCNotificationMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 退群的通知消息 - */ -@interface WFCCTipNotificationContent : WFCCNotificationMessageContent - -/** - 退群成员的ID - */ -@property (nonatomic, strong)NSString *tip; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCTransferGroupOwnerNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCTransferGroupOwnerNotificationContent.h deleted file mode 100644 index 0151e523..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCTransferGroupOwnerNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCTransferGroupOwnerNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 转让群主的通知消息 - */ -@interface WFCCTransferGroupOwnerNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者的ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 新的群主ID - */ -@property (nonatomic, strong)NSString *owner; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCTypingMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCTypingMessageContent.h deleted file mode 100644 index 2d92bb00..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCTypingMessageContent.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// TypingMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 正在输入类型 - - - Typing_TEXT : 正在输入文本 - - Typing_VOICE : 正在输入语音 - - Typing_CAMERA : 正在拍摄 - - Typing_LOCATION : 正在选取位置 - - Typing_FILE : 正在选取文件 - */ -typedef NS_ENUM(NSInteger, WFCCTypingType) { - Typing_TEXT = 0, - Typing_VOICE = 1, - Typing_CAMERA = 2, - Typing_LOCATION = 3, - Typing_FILE = 4 -}; - - -/** - 正在输入消息 - */ -@interface WFCCTypingMessageContent : WFCCMessageContent - -/** - 构造方法 - - @param type 输入类型类型。 - @return 正在输入消息 - */ -+ (instancetype)contentType:(WFCCTypingType)type; - -/** - 输入类型类型。0 文本;1 语言。 - */ -@property (nonatomic, assign)WFCCTypingType type; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUnknownMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUnknownMessageContent.h deleted file mode 100644 index 1ef52312..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUnknownMessageContent.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// WFCCUnknownMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 未知消息。所有未注册的消息都会解析为为止消息,主要用于新旧版本兼容 - */ -@interface WFCCUnknownMessageContent : WFCCMessageContent - -/** - 原消息类型 - */ -@property (nonatomic, assign)NSInteger orignalType; - - -/** - 原消息Payload - */ -@property (nonatomic, strong)WFCCMessagePayload *orignalPayload; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUnreadCount.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUnreadCount.h deleted file mode 100644 index 28aecd95..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUnreadCount.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// WFCCUnreadCount.h -// WFChatClient -// -// Created by WF Chat on 2018/9/30. -// Copyright © 2018 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface WFCCUnreadCount : WFCCJsonSerializer -+(instancetype)countOf:(int)unread mention:(int)mention mentionAll:(int)mentionAll; -@property(nonatomic, assign)int unread; -@property(nonatomic, assign)int unreadMention; -@property(nonatomic, assign)int unreadMentionAll; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUserInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUserInfo.h deleted file mode 100644 index e4944ff6..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUserInfo.h +++ /dev/null @@ -1,104 +0,0 @@ -// -// WFCCUserInfo.h -// WFChatClient -// -// Created by heavyrain on 2017/9/29. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" -/** - 用户信息 - */ -@interface WFCCUserInfo : WFCCJsonSerializer - -/** - 用户ID - */ -@property (nonatomic, strong)NSString *userId; - -/** - 名称 - */ -@property (nonatomic, strong)NSString *name; - -/** - 显示的名称 - */ -@property (nonatomic, strong)NSString *displayName; - -/** - 性别 - */ -@property (nonatomic, assign)int gender; - -/** - 头像 - */ -@property (nonatomic, strong)NSString *portrait; - -/** - 手机号 - */ -@property (nonatomic, strong)NSString *mobile; - -/** - 邮箱 - */ -@property (nonatomic, strong)NSString *email; - -/** - 地址 - */ -@property (nonatomic, strong)NSString *address; - -/** - 公司信息 - */ -@property (nonatomic, strong)NSString *company; - -/** - 社交信息 - */ -@property (nonatomic, strong)NSString *social; - -/** - 扩展信息 - */ -@property (nonatomic, strong)NSString *extra; - -/** - 好友备注 - */ -@property (nonatomic, strong)NSString *friendAlias; - -/** - 群昵称 - */ -@property (nonatomic, strong)NSString *groupAlias; - -/** - 更新时间 - */ -@property (nonatomic, assign)long long updateDt; - -/** - 用户类型 - */ -@property (nonatomic, assign) int type; - -/** - 是否被删除用户 - */ -@property (nonatomic, assign) int deleted; - - -/** - 辅助方法,返回可读的名称,如果有备注返回备注,如果有群昵称,显示群昵称,如果都没有返回用户昵称。 - */ -@property(nonatomic, readonly)NSString *readableName; - -- (void)cloneFrom:(WFCCUserInfo *)other; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUserOnlineState.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUserOnlineState.h deleted file mode 100644 index 732bc7cf..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUserOnlineState.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// WFCCUserOnlineState.h -// WFChatClient -// -// Created by heavyrain on 2022/2/17. -// Copyright © 2022 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - -/* - int Platform_UNSET = 0; - int Platform_iOS = 1; - int Platform_Android = 2; - int Platform_Windows = 3; - int Platform_OSX = 4; - int Platform_WEB = 5; - int Platform_WX = 6; - int Platform_LINUX = 7; - int Platform_iPad = 8; - int Platform_APad = 9; - */ -@interface WFCCClientState : WFCCJsonSerializer -@property(nonatomic, assign)int platform; -@property(nonatomic, assign)int state; //设备的在线状态,0是在线,1是有session但不在线,其它不在线。 -@property(nonatomic, assign)long long lastSeen; //最后可见 -@end - -@interface WFCCUserCustomState : WFCCJsonSerializer -@property(nonatomic, assign)int state; //0,未设置,1 忙碌,2 离开(主动设置),3 离开(长时间不操作),4 隐身,其它可以自主扩展。 -@property(nonatomic, strong)NSString *text; -@end - -@interface WFCCUserOnlineState : WFCCJsonSerializer -@property(nonatomic, strong)NSString *userId; -@property(nonatomic, strong)WFCCUserCustomState *customState; -@property(nonatomic, strong)NSArray *clientStates; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUtilities.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUtilities.h deleted file mode 100644 index a7a5819a..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCUtilities.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// WFCCUtilities.h -// WFChatClient -// -// Created by heavyrain on 2017/9/7. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCIMService.h" -#import "WFCCEnums.h" - -@interface WFCCUtilities : NSObject - -/** - 生成缩略图 - - @param image 原图 - @param targetWidth 宽度 - @param targetHeight 高度 - @return 缩略图 - */ -+ (UIImage *)generateThumbnail:(UIImage *)image - withWidth:(CGFloat)targetWidth - withHeight:(CGFloat)targetHeight; - -/** - 缩小图片 - - @param image 原图 - @param size 宽度 - @return 缩小到size范围内的Image - */ -+ (UIImage *)image:(UIImage *)image scaleInSize:(CGSize)size; -/** - 获取对应的沙盒路径 - - @param localPath 文件路径 - @return 对应的沙盒路径 - */ -+ (NSString *)getSendBoxFilePath:(NSString *)localPath; - -/** - 获取资源路径 - - @param componentPath 相对路径 - @return 资源路径 - */ -+ (NSString *)getDocumentPathWithComponent:(NSString *)componentPath; - -+ (CGSize)imageScaleSize:(CGSize)imageSize targetSize:(CGSize)targetSize thumbnailPoint:(CGPoint *)thumbnailPoint; - - -+ (UIImage *)imageWithRightOrientation:(UIImage *)aImage; - -+ (BOOL)isExternalTarget:(NSString *)targetId; -+ (NSString *)getExternalDomain:(NSString *)targetId; -+ (NSString *)getTargetWithoutDomain:(NSString *)targetId; -+ (NSAttributedString *)getExternal:(NSString *)domainId withName:(NSString *)name withColor:(UIColor *)color; -+ (NSAttributedString *)getExternal:(NSString *)domainId withName:(NSString *)name withColor:(UIColor *)color withSize:(CGFloat)fontSize; - -//同步函数,只能在后台线程执行 -+ (NSString *)getGroupGridPortrait:(NSString *)groupId - width:(int)width - generateIfNotExist:(BOOL)generateIfNotExist - defaultUserPortrait:(UIImage *(^)(NSString *userId))defaultUserPortraitBlock; - -+ (NSString *)getGroupGridPortrait:(NSString *)groupId - memberPortraits:(NSArray*> *)groupMembers - width:(int)PortraitWidth - defaultUserPortrait:(UIImage *(^)(NSString *userId))defaultUserPortraitBlock; - - -+ (NSString *)getGroupMemberExtra:(WFCCGroupMemberSourceType)sourceType sourceTargetId:(NSString *)sourceTargetId; - -+ (WFCCGroupMemberSourceType)getGroupMemberSourceType:(NSString *)memberExtra sourceTargetId:(NSMutableString *)sourceTargetId; - -+ (NSString *)getUserDisplayName:(NSString *)userId inGroup:(NSString *)groupId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCVideoMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCVideoMessageContent.h deleted file mode 100644 index d9d6c14b..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCCVideoMessageContent.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// WFCCVideoMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/2. -// Copyright © 2017年 wildfire chat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" -#import - -/** - 图片消息 - */ -@interface WFCCVideoMessageContent : WFCCMediaMessageContent - -/** - 构造方法 - - @param image 图片 - @return 图片消息 - */ -+ (instancetype)contentPath:(NSString *)localPath thumbnail:(UIImage *)image; - -/** - 缩略图 - */ -@property (nonatomic, strong)UIImage *thumbnail; - -/** - 时长 -*/ -@property (nonatomic, assign)long duration; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCChatClient.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCChatClient.h deleted file mode 100644 index be18c6b2..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Headers/WFCChatClient.h +++ /dev/null @@ -1,109 +0,0 @@ -// -// WFChatClient.h -// WFChatClient -// -// Created by heavyrain on 2017/11/5. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import - -//! Project version number for WFChatClient. -FOUNDATION_EXPORT double WFChatClientVersionNumber; - -//! Project version string for WFChatClient. -FOUNDATION_EXPORT const unsigned char WFChatClientVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Info.plist b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Info.plist deleted file mode 100644 index 5ee20ab8..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/Info.plist and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/WFChatClient b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/WFChatClient deleted file mode 100644 index 1c1f6671..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/WFChatClient and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/_CodeSignature/CodeResources b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/_CodeSignature/CodeResources deleted file mode 100644 index b8f97521..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64/WFChatClient.framework/_CodeSignature/CodeResources +++ /dev/null @@ -1,1125 +0,0 @@ - - - - - files - - Headers/Common.h - - LNpNtEeIWFWNqfp83OzxnGqlCOk= - - Headers/WFCCAddGroupeMemberNotificationContent.h - - jvLO++pfRhcWd1SGd2Rl9MD72yI= - - Headers/WFCCArticlesMessageContent.h - - OCeFgvYBsjpkMD0TktQKQhsKhd4= - - Headers/WFCCCallAddParticipantMessageContent.h - - Gp2DUYZvy4oTOkc/ESfeRb7RiWE= - - Headers/WFCCCallByeMessageContent.h - - lLIN2Wba1CnarrOaKTCj0jdpAo4= - - Headers/WFCCCallStartMessageContent.h - - TkaXEIURlWRSAUSWH4JFT/k6lpo= - - Headers/WFCCCardMessageContent.h - - Hl6e1zMZnHARRV/0pP22uW0zNlc= - - Headers/WFCCChangeGroupNameNotificationContent.h - - sk8T7Vb28CU/13dFzOBH9oDMrac= - - Headers/WFCCChangeGroupPortraitNotificationContent.h - - RV7X/R5zu1nk7gWMG51Rau9bu18= - - Headers/WFCCChannelInfo.h - - J/5lIOlldCotTh7EdP/hQUDYzB4= - - Headers/WFCCChannelMenu.h - - 3Qvl119TweX+H7N+gpdmlNsk1pU= - - Headers/WFCCChannelMenuEventMessageContent.h - - KGX0HpyfUYU/+5LBf7Y7PWNyDf0= - - Headers/WFCCChatroomInfo.h - - D5lCwDH3GJCnM1X7Ug3CnX5RXsw= - - Headers/WFCCChatroomMemberInfo.h - - uAzguqEQAeOcOzpYPuX+FidG9dc= - - Headers/WFCCCompositeMessageContent.h - - ygnyDZtDTn9hq0Ar+RmKc95ysAQ= - - Headers/WFCCConferenceInviteMessageContent.h - - 7U7eIKenVwUFlrh6L5QWBsQm5os= - - Headers/WFCCConversation.h - - Xg2lkJiRwe5r5WjZQjOaY9wYaA4= - - Headers/WFCCConversationInfo.h - - ySFM+XEYbg8zv0Bn3psq1zV9T0k= - - Headers/WFCCConversationSearchInfo.h - - hojxK+qnxQcVKX2z8pVoB85zK/A= - - Headers/WFCCCreateGroupNotificationContent.h - - yKDBCXekBAKB97vuPrGqvQqz/Ls= - - Headers/WFCCDeleteMessageContent.h - - JgLZw5Iosxii47IRTkbYseNa010= - - Headers/WFCCDeliveryReport.h - - Mx9wvAK8IjC+EQwbZuqQBf12O3A= - - Headers/WFCCDictionary.h - - tyKSRT1vYkFUD8CKdLWQR+AayPk= - - Headers/WFCCDismissGroupNotificationContent.h - - 4OSaSDIkdb6xBrHm+MLR2oFBzKU= - - Headers/WFCCDomainInfo.h - - cW1JstDhOj1rfqEhqdBj71VYvKA= - - Headers/WFCCEnterChannelChatMessageContent.h - - oxI3DtPGppGSlY1l0JgHcU2eMF8= - - Headers/WFCCEnums.h - - qNHY+LulPY/c3tPfoonhObTr1r0= - - Headers/WFCCFileMessageContent.h - - 5wbl0fY5k0YAcEfHt+/grdcw+w0= - - Headers/WFCCFileRecord.h - - 4aIaA33n6bUCX8O6J0xxmsa1Pos= - - Headers/WFCCFriend.h - - 7KThvPXsIvxHuOLJPEinuIxJnt0= - - Headers/WFCCFriendAddedMessageContent.h - - 3iB08uqoiC7mBgsHek5V1uqUPcc= - - Headers/WFCCFriendGreetingMessageContent.h - - +nFxkjIxc004ir8x96f1ektvbrQ= - - Headers/WFCCFriendRequest.h - - c1jYJ4ka4ZInQuhTF6YyGMnqU74= - - Headers/WFCCGroupInfo.h - - 96/Vhp003W4SR9FKbeUw4RixYb4= - - Headers/WFCCGroupJoinTypeNotificationContent.h - - Qtr37R+sD09xV6fgIKZwO8rApSg= - - Headers/WFCCGroupMember.h - - hBtY1tjk9IiNXPU6TZHTOHhrhN8= - - Headers/WFCCGroupMemberAllowNotificationContent.h - - JyLiP6wWLIjkbcmVzri8+YDqUyA= - - Headers/WFCCGroupMemberMuteNotificationContent.h - - TivBTQtIvTtvcL2NdvqF74AapeQ= - - Headers/WFCCGroupMuteNotificationContent.h - - qLFbHvFV3B0PW18/X9IzTDyK+04= - - Headers/WFCCGroupPrivateChatNotificationContent.h - - 7sAJpuAG5CohYN3Is3k0A53OsF0= - - Headers/WFCCGroupSearchInfo.h - - 3p1LsaEdwpLPBTQdRKkGcrYKVOo= - - Headers/WFCCGroupSetManagerNotificationContent.h - - 77um+nAswlRD90DRTWYSNdQe1XY= - - Headers/WFCCGroupSettingsNotificationContent.h - - KjNqfUSKMt61fsrMugG2tnr0awo= - - Headers/WFCCIMService.h - - HVFbofdTKg6x10CH6ipDq7G1upw= - - Headers/WFCCImageMessageContent.h - - s3kEIc5J2OZUc4sRCNQ87Yt53n4= - - Headers/WFCCJoinCallRequestMessageContent.h - - xzAvi1X3CA9lt04ULjpeFB7daJA= - - Headers/WFCCJsonSerializer.h - - JyGwg9hovXqu5d48RAAU60KhStM= - - Headers/WFCCKickoffGroupMemberNotificationContent.h - - DvOzmLjA8M5RNq7pLEDD/nJmLTc= - - Headers/WFCCKickoffGroupMemberVisibleNotificationContent.h - - eH/rmf/flDrTAdqjgs3+WNZd5bE= - - Headers/WFCCLeaveChannelChatMessageContent.h - - DL8WjZgqYS9l/OvtU0AvYHPaMik= - - Headers/WFCCLinkMessageContent.h - - jOg9HYwkWXRPEXURI+GbDN5jCPU= - - Headers/WFCCLocationMessageContent.h - - 1Ly+2JUo9EsqAewScYTP5JKSu/A= - - Headers/WFCCMediaMessageContent.h - - dKL+vn0PcsLdH2KYp2FrEQjKVrE= - - Headers/WFCCMessage.h - - fAupfxwHH1mU/yWc9RxqVNcou3s= - - Headers/WFCCMessageContent.h - - ts0Q3p2wCt5/RGJYerWAVLLsMNg= - - Headers/WFCCModifyGroupAliasNotificationContent.h - - xEi8aY2nCX0jEEJfsGwz5knD7KA= - - Headers/WFCCModifyGroupExtraNotificationContent.h - - J11Ewm5umPZvVVeszmXP2g51NxU= - - Headers/WFCCModifyGroupMemberExtraNotificationContent.h - - rvJSIEXlU01q/ndzXoOgKR6dH1s= - - Headers/WFCCMultiCallOngoingMessageContent.h - - rPce0YbjYgHWcEDWp13gv00C7Gs= - - Headers/WFCCNetworkService.h - - hd+L+d6hS490ulG7MwVSl8ODyeg= - - Headers/WFCCNotDeliveredMessageContent.h - - oyuBhzo8KFD+LG1HZC7IqpKsAjk= - - Headers/WFCCNotificationMessageContent.h - - 23T1DmQe0mNYLQJRU0XeoKGklM0= - - Headers/WFCCPCLoginRequestMessageContent.h - - k/r3Yv0yVSbq6FU8T2CLxq6b6z4= - - Headers/WFCCPCOnlineInfo.h - - XHYyRIsilrjHZNVPPS4a7PxHNG4= - - Headers/WFCCPTTSoundMessageContent.h - - 7stUp2OKzIWTx4Ayf7A0r+XECrg= - - Headers/WFCCPTextMessageContent.h - - kEio/hGlyJShUFOyrmLfaDmW4W4= - - Headers/WFCCProtocol.h - - jPpd/6CLqGMng5+HetFH0QrZn6w= - - Headers/WFCCQuitGroupNotificationContent.h - - izkDAFN61r74fJuQzwzvb6WTrGs= - - Headers/WFCCQuitGroupVisibleNotificationContent.h - - MNjEZtRR3RODbTrJ1wN84iTWVi4= - - Headers/WFCCQuoteInfo.h - - ERBNbAyfOp3vf/yfH+xFXvRHVfE= - - Headers/WFCCRawMessageContent.h - - WXiU7KJa9MfydsGPUvEbQSkLbrw= - - Headers/WFCCReadReport.h - - RLnJXSMYZRuIrADwxk5m1TIhc2M= - - Headers/WFCCRecallMessageContent.h - - tf4uFEBvokiIXp5TyVpuJAFcLwU= - - Headers/WFCCRichNotificationMessageContent.h - - HpaBViVQ5Mr3Ar1gUKE0eiwkkqU= - - Headers/WFCCSecretChatInfo.h - - mBV4K2IicEM4D2l15yHmYUI+Nwc= - - Headers/WFCCSoundMessageContent.h - - 0HKp6UzDYPNtMEsF5Le0HHTdyCw= - - Headers/WFCCStartSecretChatMessageContent.h - - uy8dt0OafAkux/C2TQSRVlrC/Mo= - - Headers/WFCCStickerMessageContent.h - - RAl4w/bqWh+smqw9zyeBe9/c3H4= - - Headers/WFCCStreamingTextGeneratedMessageContent.h - - woFKNIgjsc8naNTMxv42sLuuYhg= - - Headers/WFCCStreamingTextGeneratingMessageContent.h - - 85FlvdNUDtADujETMUtI3O3xsTI= - - Headers/WFCCTextMessageContent.h - - uwVXSj/YvO4q1d6NgcSSoyKtEgU= - - Headers/WFCCThingsDataContent.h - - H0kbM+U+UuGJRdrAD80JPThvhEg= - - Headers/WFCCThingsLostEventContent.h - - dcQoEIqU6LrlKnTkods0HxE6IZo= - - Headers/WFCCTipNotificationMessageContent.h - - OUWpXw5oLCcRrZzKMinv4QWyeog= - - Headers/WFCCTransferGroupOwnerNotificationContent.h - - uPQxlwZhswwfQUa2jsCbTnS3GaI= - - Headers/WFCCTypingMessageContent.h - - V5jsf9t7lOaQcn4ZbE+Gs0z3RN8= - - Headers/WFCCUnknownMessageContent.h - - mp0JrMWcEog34JuOo8tTwVYxbOM= - - Headers/WFCCUnreadCount.h - - qQ9rtAub4TjppdUgobFrqZgF3S8= - - Headers/WFCCUserInfo.h - - hKbTUBb3e458uNUCvQfNsR/gIKc= - - Headers/WFCCUserOnlineState.h - - myA+bGrEbvSQvNI9uqAOakbK91w= - - Headers/WFCCUtilities.h - - u+c0kIEjg98+zbsS706mne3lYoQ= - - Headers/WFCCVideoMessageContent.h - - xqitZmCxwt/yGMV+5vCzjpLRiWQ= - - Headers/WFCChatClient.h - - YTmzHdMi4ejNPlcRcOgf3GlkmxI= - - Info.plist - - yC8caN5BiVGPmIFtm61zrvTAJXs= - - - files2 - - Headers/Common.h - - hash2 - - OUz6QgVKd+5TOOTzJbqUGALWGfkJndXC7brw3xJJ3pM= - - - Headers/WFCCAddGroupeMemberNotificationContent.h - - hash2 - - EpsJAfExMfDRxNnkv78FsRq19MxhZOOa7zAXkJWjhqc= - - - Headers/WFCCArticlesMessageContent.h - - hash2 - - eorX+dyEZxC/KyOBe/GEDyXrvHZZuhiwWYPaavCA2Lo= - - - Headers/WFCCCallAddParticipantMessageContent.h - - hash2 - - AlXCupdVJRWmVnjglrGyavED8Yz+sbIqoYS0GBu/vbI= - - - Headers/WFCCCallByeMessageContent.h - - hash2 - - 4mJFazKyranTM2fv8KTUwvpIaQmp3IE4H1Vd6yHGz7k= - - - Headers/WFCCCallStartMessageContent.h - - hash2 - - rsMetvs+P6KcPYwKQIE83DDG2zu1ydb0QMmEcvvfmpo= - - - Headers/WFCCCardMessageContent.h - - hash2 - - ZoU9cqNIFYZOPzL6ndiJPN2s7f+BhiB9xBaL4eXipKM= - - - Headers/WFCCChangeGroupNameNotificationContent.h - - hash2 - - 1EWF3W/5k+s0yQUIo+/STDR/vYjq7hCAPZs7haV/GxY= - - - Headers/WFCCChangeGroupPortraitNotificationContent.h - - hash2 - - VeQkDgvx4xzLQAUvHOZX+DP0pe5iFNa+W8tVeUHXBIg= - - - Headers/WFCCChannelInfo.h - - hash2 - - 6WeFt0dSRLGSnbn64ICrnGtZNphvudqH/V7qBn7feq8= - - - Headers/WFCCChannelMenu.h - - hash2 - - SkZwdrq3TA0/ZErc4eU/x4ym30IS7nxEdFxUl4CXjLg= - - - Headers/WFCCChannelMenuEventMessageContent.h - - hash2 - - kqR96xTnrwWJmDLxvCP1HsTHLjq9ABAJpUPhY1Ofxow= - - - Headers/WFCCChatroomInfo.h - - hash2 - - iGzH+D/CP1f+3wl2eHqSQ9bsMEdrhI/58jAUiFwDl3o= - - - Headers/WFCCChatroomMemberInfo.h - - hash2 - - zxOmgf7enEISucSuoB9IsV/o9VzSHNlp5Zmg/9/pPpY= - - - Headers/WFCCCompositeMessageContent.h - - hash2 - - CM2kbabygG2hCZmfD2Jk6Z99D1Yn8nRXo+K7m+eju1E= - - - Headers/WFCCConferenceInviteMessageContent.h - - hash2 - - i8Y2mtcByVLP4UMiRKgNlmQqCT7bykO4g0ktXi6pmcM= - - - Headers/WFCCConversation.h - - hash2 - - jd69mtim8Cq3R7mScjM5ryetKb/6+r0Jqk/i4dupGHE= - - - Headers/WFCCConversationInfo.h - - hash2 - - 3f+ILGU/FlBtVp22NTlznEAdS12YcE1WyJTFv7dq1V0= - - - Headers/WFCCConversationSearchInfo.h - - hash2 - - +2AEC1ivfDfqhL/uNJFq5bOOvu6Qadi3lGxt6CEvQYw= - - - Headers/WFCCCreateGroupNotificationContent.h - - hash2 - - pY7DoXVZyiYgFnGGEJb78fCgHMnUy1ObDFXeiAZof50= - - - Headers/WFCCDeleteMessageContent.h - - hash2 - - TpgwOudamzEDDSNDNggq0kwmq5Ekq/6GaYxWm9ZgOFs= - - - Headers/WFCCDeliveryReport.h - - hash2 - - OWY6aKmCkIe/yDO9vQaWTp/aV+Y7lbOLdxoykWcyeRY= - - - Headers/WFCCDictionary.h - - hash2 - - gW9qatoKB4pZEuLaDnanhd2YRA8GDovWdsUtbjHtSyo= - - - Headers/WFCCDismissGroupNotificationContent.h - - hash2 - - yaQ1yXmDH4B6pvTWMTMvD0f6MEioOBwVzOZS8cC93ug= - - - Headers/WFCCDomainInfo.h - - hash2 - - 9dTddUQIhN8t7WIrLra4TexL7x/tVyBLJDh9Hmz9Qy0= - - - Headers/WFCCEnterChannelChatMessageContent.h - - hash2 - - SVqeTZMQkETc7rzmwNlbMZhOVwV2HOcrrBW9VEWX4nw= - - - Headers/WFCCEnums.h - - hash2 - - YIv49UhmyEim+Jj4uTU0+9/bH88b7wdcSP4UiUwvo9s= - - - Headers/WFCCFileMessageContent.h - - hash2 - - Ke5naJ1rrOtdXPhmBi8Vs9tpTDUsZJxlzB7VcIg73AY= - - - Headers/WFCCFileRecord.h - - hash2 - - XwwSIhCpYldnFXUQc5XmQ/A1nR8leevRi5By0He+ECk= - - - Headers/WFCCFriend.h - - hash2 - - gHJ0WNEnSAHVNBZsBDweyX67wAwVb4+gl4kGrMDdp5A= - - - Headers/WFCCFriendAddedMessageContent.h - - hash2 - - VgBKXgCr2B3Sn6STGs8v9TrrI9SePwHkd0fj11L+JoI= - - - Headers/WFCCFriendGreetingMessageContent.h - - hash2 - - sdlJyHijoC7vh+e19I37KCEe8UrSHdSTsKyIMcplRmY= - - - Headers/WFCCFriendRequest.h - - hash2 - - 01sNgzdBzWU0dGsP/HexiSsqXQSkxYSD09Ie1sPwoJc= - - - Headers/WFCCGroupInfo.h - - hash2 - - yv3HF/PGRpX5iccbi0fiJG8mwChwQsKdgLzhVP8IdaE= - - - Headers/WFCCGroupJoinTypeNotificationContent.h - - hash2 - - UWXVAFchCctfR1zw4Z58MLM5ktwA3TVUziHrAkMz1BY= - - - Headers/WFCCGroupMember.h - - hash2 - - qjxJ2oQGZjuzDeywVker6TOv0ZWCiWCBXidQMW0FTKA= - - - Headers/WFCCGroupMemberAllowNotificationContent.h - - hash2 - - 2/m6Yd2/ZdGmiaQON/XjzuUTrcj/4o4Q18sKj7W48pE= - - - Headers/WFCCGroupMemberMuteNotificationContent.h - - hash2 - - XowKDr3PicQyindTuBp3s8Isf3m6toxGK8yo0DYVUvw= - - - Headers/WFCCGroupMuteNotificationContent.h - - hash2 - - I0vaBMST9PHfXlQ7n7THkN3IfD1q5orzXPvJD3Y/p5A= - - - Headers/WFCCGroupPrivateChatNotificationContent.h - - hash2 - - uaqdJhtVebaqAGbG6p4KxdgvyxAJLe4xfPslLpTYnLY= - - - Headers/WFCCGroupSearchInfo.h - - hash2 - - MbFwI4GeIC1sZHtxQuWRW1n/iw7C5fC9W8/vChToadU= - - - Headers/WFCCGroupSetManagerNotificationContent.h - - hash2 - - tijnFDgdln12dG2BqpOiWDVKuT4PjjRrVVNtY9ZIf+M= - - - Headers/WFCCGroupSettingsNotificationContent.h - - hash2 - - LRh2YozvXUyuyZfZDBx+KYZ5ALMg4IWrPF2uVAACBaA= - - - Headers/WFCCIMService.h - - hash2 - - mBkCL5a6IYUWcNarNs1Vg0ZksuzmRnNga1hfGrsDgvw= - - - Headers/WFCCImageMessageContent.h - - hash2 - - FOZ1hIIJG3HxNJkKL8cq64oulkGMDE01xaijw8l9yu4= - - - Headers/WFCCJoinCallRequestMessageContent.h - - hash2 - - zAu3dFjJzIl7b4I7P0EfZDoZqHbcZp4kaKlNTTHvGR0= - - - Headers/WFCCJsonSerializer.h - - hash2 - - KHLxniBuW1A6P/7NDiBSA33RF5FkBdUPjW3ILs3gdNg= - - - Headers/WFCCKickoffGroupMemberNotificationContent.h - - hash2 - - VLESbz/gJhDUmVs8OF992uc8EQ8ft8lQjN63t18TztE= - - - Headers/WFCCKickoffGroupMemberVisibleNotificationContent.h - - hash2 - - g3ZRN9hG636KMqyF7BuAl+peP3ryebf/LNfEPt3ZquA= - - - Headers/WFCCLeaveChannelChatMessageContent.h - - hash2 - - W1ziobFnL+1IGb7kMr/mJuaeAfbYb4JsVNsoxy2nNzM= - - - Headers/WFCCLinkMessageContent.h - - hash2 - - je04qlCJ87zmGhkaSwh+Y3mcZIWt8jDy233GgimsPQQ= - - - Headers/WFCCLocationMessageContent.h - - hash2 - - IMZf3SSoWodHaydvsD6VhKdTsqbEfZSFIH+6uyDYfPk= - - - Headers/WFCCMediaMessageContent.h - - hash2 - - ohbLG9MuRZtoapfSoVeBwmN8Q6N071RFZurZw+SgUEY= - - - Headers/WFCCMessage.h - - hash2 - - b32LtXrfugMv9vxXe/tA/rk41xt+e8ObTwX5OVIcw3Y= - - - Headers/WFCCMessageContent.h - - hash2 - - ZUosxN4ZrEZc5LvPK9LAXH0j6xRGHvXUiSuO7B7SP8I= - - - Headers/WFCCModifyGroupAliasNotificationContent.h - - hash2 - - 0EgehauC2ez48MrpabNN0yz2isB2ZIxFJGouIKcNMKE= - - - Headers/WFCCModifyGroupExtraNotificationContent.h - - hash2 - - wllrfca9rDDL+h5vY/49hXRSEkV6fkHjT1d+3t2mrqI= - - - Headers/WFCCModifyGroupMemberExtraNotificationContent.h - - hash2 - - vvdI3gmsn22GewXsrtCwLW8H/vprxgNdgsFRkBW601U= - - - Headers/WFCCMultiCallOngoingMessageContent.h - - hash2 - - FUXfJtGBWghjBX7GTYXvOE21kR3q4Ap1FbiyXkntgl4= - - - Headers/WFCCNetworkService.h - - hash2 - - u7/nKUxTVnTIJOvcoRo63P7OVmQ604HPdR9G4rcjlpo= - - - Headers/WFCCNotDeliveredMessageContent.h - - hash2 - - gHNvnH4GdODwGySG/8DFUw7aL9ab69LGBMuYqQ2YXks= - - - Headers/WFCCNotificationMessageContent.h - - hash2 - - YUZRfLun/R7I0bqHw4Mrl7KnnhfKaj0/wnbM0IDC9Pg= - - - Headers/WFCCPCLoginRequestMessageContent.h - - hash2 - - TAI09QlP7msC4SY0HrdIsyX1ootM+izGqQAdB3vRpqY= - - - Headers/WFCCPCOnlineInfo.h - - hash2 - - u41qwzHVYIrR+jZEvDimNA4YkNTwlYa6DGH8BaLK9ks= - - - Headers/WFCCPTTSoundMessageContent.h - - hash2 - - uzOi0HhJUOs0f4ktkgNc4xjCD1dTn8n5lEzoTc4jjSs= - - - Headers/WFCCPTextMessageContent.h - - hash2 - - XvZRKc8mf2/ZkoBHyDwnMLrng068LcZ13kzwSReKeOA= - - - Headers/WFCCProtocol.h - - hash2 - - 9o0gXvEi64Dd55DhgP6FPY/rZQg1vSIgfz3rXFnYHFg= - - - Headers/WFCCQuitGroupNotificationContent.h - - hash2 - - nmH0DF0aPGko6SbGYUf8+s+RFrQsJmvARGD34QAJxG8= - - - Headers/WFCCQuitGroupVisibleNotificationContent.h - - hash2 - - CuwdqTD5998kNuu0JcxS5Az+EmbfWjJReUuabz/Khas= - - - Headers/WFCCQuoteInfo.h - - hash2 - - HAwGIa4WqeAMr18p0GnQZlAtK7s9E3ihLD0Jaid98Vo= - - - Headers/WFCCRawMessageContent.h - - hash2 - - KIz5yhX9/j8m8xgWvw+ELYb4Ic+t52rEdDvg8i7jMqY= - - - Headers/WFCCReadReport.h - - hash2 - - rb7Q1EBA8r69zD0qiFTZn39sDs/oDiE441mqfdkiXh4= - - - Headers/WFCCRecallMessageContent.h - - hash2 - - 4R32Hfzp8TJRJ/Tk6B9zLNlUHExhecCwQWQnkFuEiiI= - - - Headers/WFCCRichNotificationMessageContent.h - - hash2 - - AWLzzGhyJma3YPMkATkkyqg5HlibEtPPGzwBDvPwZIU= - - - Headers/WFCCSecretChatInfo.h - - hash2 - - nI0vyOBAZvUzP0U37E9A9srzyBkpsjrTB2ATuVj7Kg0= - - - Headers/WFCCSoundMessageContent.h - - hash2 - - QcRbqxV27KMf/X8BQkrEn5jlEKg+5y5/wOzuxWAvS9w= - - - Headers/WFCCStartSecretChatMessageContent.h - - hash2 - - zVx5tl6i3NxpMLBX31K56SRqqeaytZORhC155BAReX0= - - - Headers/WFCCStickerMessageContent.h - - hash2 - - u+ZA58dpp4fGpgt9h83RjYiUjhMSYvcikS6w3S8O0co= - - - Headers/WFCCStreamingTextGeneratedMessageContent.h - - hash2 - - j4yUn7cF4oon36TRIsHKKtGVyfUaRWA4px3T3G2cf1I= - - - Headers/WFCCStreamingTextGeneratingMessageContent.h - - hash2 - - UItFJ9Sz9qIpBgv7yiyg/qqUecTV+QWquwxxpU8d9eg= - - - Headers/WFCCTextMessageContent.h - - hash2 - - 3eXlmFboM0t2OueHk+0BWwrcTz69Xm7kS4s4YVqHW+Y= - - - Headers/WFCCThingsDataContent.h - - hash2 - - YGvz8OLe1OD+lFQ17Y+uoAWaWx9KaiSEfPXtlZzobCk= - - - Headers/WFCCThingsLostEventContent.h - - hash2 - - AO38+ub8YBjHe/S3FcFXi6APYTBz1x1s7KpA+3PIXTA= - - - Headers/WFCCTipNotificationMessageContent.h - - hash2 - - 90RsFbgpcU6nG7UDzgXhe8VMRY4UDWpJbOLhyerU9pQ= - - - Headers/WFCCTransferGroupOwnerNotificationContent.h - - hash2 - - YGI11q4MRfksjgvqvIs6M7cOwRuQOimeTS4UtJ9BTKQ= - - - Headers/WFCCTypingMessageContent.h - - hash2 - - LkZ8mliAFqDgG1lgsFcc/956jRa+dWiMwfgkUzl/lnk= - - - Headers/WFCCUnknownMessageContent.h - - hash2 - - NpelLyOoJaPjiony8BiFENJKfUGX9/CmDoPkAxalSRw= - - - Headers/WFCCUnreadCount.h - - hash2 - - WXsnUNjKVv7ZLm292UKOidK0hrONKryavW9IZyJLUoQ= - - - Headers/WFCCUserInfo.h - - hash2 - - 3WCjD1cFMpZKuQCFJLf1y6zkEAba2E+SNp/g2GR/y4s= - - - Headers/WFCCUserOnlineState.h - - hash2 - - 4q1EGCs8+qY9p74Q4Tmib7ZisLHSjDkJ5kd4tlvKoXE= - - - Headers/WFCCUtilities.h - - hash2 - - DORRwQpFPlDe7v7nLakyPNjn5Q4wnncxMPctNDELjCM= - - - Headers/WFCCVideoMessageContent.h - - hash2 - - dAzsmak0E5VmmiaDL6mlrhniCf97j7d3ksK8KMHFwmU= - - - Headers/WFCChatClient.h - - hash2 - - SN/V2LZZOrL/mx0ZsSQ1aoO1aV8DmyBEVVjt+B9o4Wk= - - - - rules - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/Common.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/Common.h deleted file mode 100644 index 6ccc7127..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/Common.h +++ /dev/null @@ -1,177 +0,0 @@ -// -// Common.h -// WFChatClient -// -// Created by heavyrain on 2017/11/8. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#ifndef Common_h -#define Common_h - - -/* - * 说明:1000以下为系统保留类型,自定义消息请使用1000以上数值。 - * 系统消息类型中100以下为常用基本类型消息。100-199位群组消息类型。400-499为VoIP消息类型. - */ -//基本消息类型 -//未知类型的消息 -#define MESSAGE_CONTENT_TYPE_UNKNOWN 0 -//文本消息 -#define MESSAGE_CONTENT_TYPE_TEXT 1 -//语音消息 -#define MESSAGE_CONTENT_TYPE_SOUND 2 -//图片消息 -#define MESSAGE_CONTENT_TYPE_IMAGE 3 -//位置消息 -#define MESSAGE_CONTENT_TYPE_LOCATION 4 -//文件消息 -#define MESSAGE_CONTENT_TYPE_FILE 5 -//视频消息 -#define MESSAGE_CONTENT_TYPE_VIDEO 6 -//动态表情消息 -#define MESSAGE_CONTENT_TYPE_STICKER 7 -//链接消息 -#define MESSAGE_CONTENT_TYPE_LINK 8 -//存储不计数文本消息 -#define MESSAGE_CONTENT_TYPE_P_TEXT 9 -//名片消息 -#define MESSAGE_CONTENT_TYPE_CARD 10 -//组合消息 -#define MESSAGE_CONTENT_TYPE_COMPOSITE_MESSAGE 11 -//富通知消息 -#define MESSAGE_CONTENT_TYPE_RICH_NOTIFICATION 12 -//文章消息 -#define MESSAGE_CONTENT_TYPE_ARTICLES 13 -//流式文本正在生成消息 -#define MESSAGE_CONTENT_TYPE_STREAMING_TEXT_GENERATING 14 -//流式文本消息 -#define MESSAGE_CONTENT_TYPE_STREAMING_TEXT_GENERATED 15 - -//消息未能送达消息 -#define MESSAGE_CONTENT_NOT_DELIVERED 16 - -//Dumy1 -#define MESSAGE_CONTENT_TYPE_DUMY1 21 - -//Dumy2 -#define MESSAGE_CONTENT_TYPE_DUMY2 22 - -//Ptt sound -#define MESSAGE_CONTENT_TYPE_PTT_VOICE 23 - -//Dumy3 -#define MESSAGE_CONTENT_TYPE_DUMY3 24 - -//同步标记未读 -#define MESSAGE_CONTENT_TYPE_MARK_UNREAD_SYNC 31 - -#define MESSAGE_CONTENT_TYPE_CREATE_SECRET_CHAT 40 -#define MESSAGE_CONTENT_TYPE_ACCEPT_SECRET_CHAT 41 -#define MESSAGE_CONTENT_TYPE_DESTROY_SECRET_CHAT 42 -#define MESSAGE_CONTENT_TYPE_SECRET_CHAT_MESSAGE 43 -#define MESSAGE_CONTENT_TYPE_BURN_MSG_READED 46 -#define MESSAGE_CONTENT_TYPE_BURN_MSG_PLAYED 47 - -//频道进出消息 -#define MESSAGE_CONTENT_TYPE_ENTER_CHANNEL_CHAT 71 -#define MESSAGE_CONTENT_TYPE_LEAVE_CHANNEL_CHAT 72 -#define MESSAGE_CONTENT_TYPE_CHANNEL_MENU_EVENT 73 - -//撤回消息 -#define MESSAGE_CONTENT_TYPE_RECALL 80 -//删除消息,请勿直接发送此消息,此消息是服务器端删除时的同步消息 -#define MESSAGE_CONTENT_TYPE_DELETE 81 - -//提醒消息 -#define MESSAGE_CONTENT_TYPE_TIP 90 - -//正在输入消息 -#define MESSAGE_CONTENT_TYPE_TYPING 91 - -//以上是打招呼的内容 -#define MESSAGE_FRIEND_GREETING 92 -//您已经添加XXX为好友了,可以愉快地聊天了 -#define MESSAGE_FRIEND_ADDED_NOTIFICATION 93 - -//PC 端请求登录 -#define MESSAGE_PC_LOGIN_REQUSET 94 - - - -//通知消息类型 -//创建群的通知消息 -#define MESSAGE_CONTENT_TYPE_CREATE_GROUP 104 -//加群的通知消息 -#define MESSAGE_CONTENT_TYPE_ADD_GROUP_MEMBER 105 -//踢出群成员的通知消息 -#define MESSAGE_CONTENT_TYPE_KICKOF_GROUP_MEMBER 106 -//退群的通知消息 -#define MESSAGE_CONTENT_TYPE_QUIT_GROUP 107 -//解散群的通知消息 -#define MESSAGE_CONTENT_TYPE_DISMISS_GROUP 108 -//转让群主的通知消息 -#define MESSAGE_CONTENT_TYPE_TRANSFER_GROUP_OWNER 109 -//修改群名称的通知消息 -#define MESSAGE_CONTENT_TYPE_CHANGE_GROUP_NAME 110 -//修改群昵称的通知消息 -#define MESSAGE_CONTENT_TYPE_MODIFY_GROUP_ALIAS 111 -//修改群头像的通知消息 -#define MESSAGE_CONTENT_TYPE_CHANGE_GROUP_PORTRAIT 112 -//修改群全局禁言的通知消息 -#define MESSAGE_CONTENT_TYPE_CHANGE_MUTE 113 -//修改群加入权限的通知消息 -#define MESSAGE_CONTENT_TYPE_CHANGE_JOINTYPE 114 -//修改群群成员私聊的通知消息 -#define MESSAGE_CONTENT_TYPE_CHANGE_PRIVATECHAT 115 -//修改群是否可搜索的通知消息 -#define MESSAGE_CONTENT_TYPE_CHANGE_SEARCHABLE 116 -//修改群管理的通知消息 -#define MESSAGE_CONTENT_TYPE_SET_MANAGER 117 -//禁言/取消禁言群成员的通知消息 -#define MESSAGE_CONTENT_TYPE_MUTE_MEMBER 118 -//允许/取消允许群成员发言的通知消息 -#define MESSAGE_CONTENT_TYPE_ALLOW_MEMBER 119 - -//踢出群成员的可见通知消息 -#define MESSAGE_CONTENT_TYPE_KICKOF_GROUP_MEMBER_VISIBLE_NOTIFICATION 120 -//退群的可见通知消息 -#define MESSAGE_CONTENT_TYPE_QUIT_GROUP_VISIBLE_NOTIFICATION 121 -//修改群组Extra通知消息 -#define MESSAGE_CONTENT_TYPE_MODIFY_GROUP_EXTRA 122 -//修改群组成员Extra通知消息 -#define MESSAGE_CONTENT_TYPE_MODIFY_GROUP_MEMBER_EXTRA 123 -//修改群组设置通知消息 -#define MESSAGE_CONTENT_TYPE_MODIFY_GROUP_SETTINGS 124 - -//VoIP开始消息 -#define VOIP_CONTENT_TYPE_START 400 -//VoIP结束消息 -#define VOIP_CONTENT_TYPE_END 402 - -#define VOIP_CONTENT_TYPE_ACCEPT 401 -#define VOIP_CONTENT_TYPE_SIGNAL 403 -#define VOIP_CONTENT_TYPE_MODIFY 404 -#define VOIP_CONTENT_TYPE_ACCEPT_T 405 -#define VOIP_CONTENT_TYPE_ADD_PARTICIPANT 406 -#define VOIP_CONTENT_MUTE_VIDEO 407 - -#define VOIP_CONTENT_CONFERENCE_INVITE 408 -#define VOIP_CONTENT_CONFERENCE_CHANGE_MODE 410 -#define VOIP_CONTENT_CONFERENCE_KICKOFF_MEMBER 411 -#define VOIP_CONTENT_CONFERENCE_COMMAND 412 - -#define VOIP_CONTENT_MULTI_CALL_ONGOING 416 -#define VOIP_CONTENT_JOIN_CALL_REQUEST 417 - -#define VOIP_CONTENT_PTT_INVITE 420 - -#define MESSAGE_CONTENT_TYPE_FEED 501 -#define MESSAGE_CONTENT_TYPE_COMMENT 502 - -#define THINGS_CONTENT_TYPE_DATA 601 -#define THINGS_CONTENT_TYPE_LOST_EVENT 602 - - - -#endif /* Common_h */ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCAddGroupeMemberNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCAddGroupeMemberNotificationContent.h deleted file mode 100644 index f0505967..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCAddGroupeMemberNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCAddGroupeMemberNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群组加人的通知消息 - */ -@interface WFCCAddGroupeMemberNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 邀请者ID - */ -@property (nonatomic, strong)NSString *invitor; - -/** - 被邀请者ID列表 - */ -@property (nonatomic, strong)NSArray *invitees; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCArticlesMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCArticlesMessageContent.h deleted file mode 100644 index ebab29f6..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCArticlesMessageContent.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// WFCCArticlesMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -@class WFCCLinkMessageContent; -@interface WFCCArticle : NSObject -@property (nonatomic, strong)NSString *articleId; -@property (nonatomic, strong)NSString *cover; -@property (nonatomic, strong)NSString *title; -@property (nonatomic, strong)NSString *digest; -@property (nonatomic, strong)NSString *url; -@property (nonatomic, assign)BOOL readReport; -@end - -/** - 富通知消息 - */ -@interface WFCCArticlesMessageContent : WFCCMessageContent -@property (nonatomic, strong)WFCCArticle *topArticle; -@property (nonatomic, strong)NSArray *subArticles; - -- (NSArray *)toLinkMessageContent; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCallAddParticipantMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCallAddParticipantMessageContent.h deleted file mode 100644 index 72b09dcc..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCallAddParticipantMessageContent.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// WFCCCallAddParticipantMessageContent.h -// WFAVEngineKit -// -// Created by heavyrain on 17/9/27. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import - -@interface WFCCCallAddParticipantMessageContent : WFCCNotificationMessageContent -@property(nonatomic, strong)NSString *callId; -@property(nonatomic, strong)NSString *initiator; -@property(nonatomic, strong)NSString *pin; -@property(nonatomic, strong)NSArray *participants; -//[{"userId":"xxxx","acceptTime":13123123123,"joinTime":13123123123,"videoMuted":false}] -@property(nonatomic, strong)NSArray *existParticipants; -@property(nonatomic, assign)BOOL audioOnly; -@property(nonatomic, assign)BOOL autoAnswer; -//指定对方clientId -@property(nonatomic, strong)NSString *clientId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCallByeMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCallByeMessageContent.h deleted file mode 100644 index 5295cbc3..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCallByeMessageContent.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// WFCCCallByeMessageContent.h -// WFAVEngineKit -// -// Created by heavyrain on 17/9/27. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -@interface WFCCCallByeMessageContent : WFCCMessageContent -@property(nonatomic, strong)NSString *callId; -@property(nonatomic, assign)int/*WFAVCallEndReason*/ endReason; -@property(nonatomic, assign)long long inviteMsgUid; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCallStartMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCallStartMessageContent.h deleted file mode 100644 index f22d3c8f..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCallStartMessageContent.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// WFCCTextMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 电话总结消息 - */ -@interface WFCCCallStartMessageContent : WFCCMessageContent - - -/** - CallId - */ -@property (nonatomic, strong)NSString *callId; -/** - 对端用户Id - */ -@property (nonatomic, strong)NSArray *targetIds; -/** - * 开始时间 - */ -@property (nonatomic, assign)long long connectTime; -/** - * 结束时间 - */ -@property (nonatomic, assign)long long endTime; -/* 结束原因 -WFAVCallEndReason - 0: kWFAVCallEndReasonUnknown, - 1: kWFAVCallEndReasonBusy, - 2: kWFAVCallEndReasonSignalError, - 3: kWFAVCallEndReasonHangup, - 4: kWFAVCallEndReasonMediaError, - 5: kWFAVCallEndReasonRemoteHangup, - 6: kWFAVCallEndReasonOpenCameraFailure, - 7: kWFAVCallEndReasonTimeout, - 8: kWFAVCallEndReasonAcceptByOtherClient - */ -@property (nonatomic, assign)int status; - -/* - 0 未知;1 音视频免费版;2 音视频高级版 - */ -@property (nonatomic, assign)int type; - -/* - * 是否仅音频 - */ -@property (nonatomic, assign, getter=isAudioOnly)BOOL audioOnly; - -@property (nonatomic, strong)NSString *pin; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCardMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCardMessageContent.h deleted file mode 100644 index 831fe84f..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCardMessageContent.h +++ /dev/null @@ -1,62 +0,0 @@ -// -// WFCCTextMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - - -typedef NS_ENUM(NSInteger, WFCCCardType) { - CardType_User = 0, - CardType_Group = 1, - CardType_Channel = 3 -}; - -/** - 名片消息 - */ -@interface WFCCCardMessageContent : WFCCMessageContent - -/** - 构造方法 - - @param targetId 目标Id - @param type 类型,0 用户,1 群组, 3 频道。 - @param fromUser 分享用户。 - @return 名片消息 - */ -+ (instancetype)cardWithTarget:(NSString *)targetId type:(WFCCCardType)type from:(NSString *)fromUser; - -/** - 名片类型 - */ -@property (nonatomic, assign)WFCCCardType type; - -/** - 用户ID - */ -@property (nonatomic, strong)NSString *targetId; - -/** - 用户号 - */ -@property (nonatomic, strong)NSString *name; - -/** - 用户昵称 - */ -@property (nonatomic, strong)NSString *displayName; - -/** - 用户头像 - */ -@property (nonatomic, strong)NSString *portrait; - -/** -分享的用户ID - */ -@property (nonatomic, strong)NSString *fromUser; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChangeGroupNameNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChangeGroupNameNotificationContent.h deleted file mode 100644 index 341cd998..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChangeGroupNameNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCChangeGroupNameNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 修改群名的通知消息 - */ -@interface WFCCChangeGroupNameNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 群名 - */ -@property (nonatomic, strong)NSString *name; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChangeGroupPortraitNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChangeGroupPortraitNotificationContent.h deleted file mode 100644 index f0ab69c0..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChangeGroupPortraitNotificationContent.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// WFCCChangeGroupNameNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 修改群头像的通知消息 - */ -@interface WFCCChangeGroupPortraitNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operateUser; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChannelInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChannelInfo.h deleted file mode 100644 index 6164c963..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChannelInfo.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// WFCCChatroomInfo.h -// WFChatClient -// -// Created by heavyrain lee on 2018/8/24. -// Copyright © 2018 WildFireChat. All rights reserved. -// - -#import -#import "WFCCChannelMenu.h" -#import "WFCCJsonSerializer.h" - -@interface WFCCChannelInfo : WFCCJsonSerializer -@property(nonatomic, strong)NSString *channelId; -@property(nonatomic, strong)NSString *name; -@property(nonatomic, strong)NSString *portrait; -@property(nonatomic, strong)NSString *owner; -@property(nonatomic, strong)NSString *desc; -@property(nonatomic, strong)NSString *extra; -@property(nonatomic, strong)NSString *secret; -@property(nonatomic, strong)NSString *callback; - -//https://docs.wildfirechat.net/base_knowledge/channel.html##频道状态 -@property(nonatomic, assign)int status; -@property(nonatomic, assign)long long updateDt; - -@property(nonatomic, strong)NSArray *menus; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChannelMenu.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChannelMenu.h deleted file mode 100644 index 83168422..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChannelMenu.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// WFCCChannelMenu.h -// WFChatClient -// -// Created by Rain on 2022/8/11. -// Copyright © 2022 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - - -@interface WFCCChannelMenu : WFCCJsonSerializer -@property(nonatomic, strong)NSString *menuId; -@property(nonatomic, strong)NSString *type; -@property(nonatomic, strong)NSString *name; -@property(nonatomic, strong)NSString *key; -@property(nonatomic, strong)NSString *url; -@property(nonatomic, strong)NSString *mediaId; -@property(nonatomic, strong)NSString *articleId; -@property(nonatomic, strong)NSString *appId; -@property(nonatomic, strong)NSString *appPage; -@property(nonatomic, assign)NSString *extra; -@property(nonatomic, strong)NSArray *subMenus; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChannelMenuEventMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChannelMenuEventMessageContent.h deleted file mode 100644 index 66921556..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChannelMenuEventMessageContent.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// WFCCChannelMenuEventMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -@class WFCCChannelMenu; -@interface WFCCChannelMenuEventMessageContent : WFCCMessageContent -@property (nonatomic, strong)WFCCChannelMenu *menu; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChatroomInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChatroomInfo.h deleted file mode 100644 index 56ef53b2..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChatroomInfo.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// WFCCChatroomInfo.h -// WFChatClient -// -// Created by heavyrain lee on 2018/8/24. -// Copyright © 2018 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -@interface WFCCChatroomInfo : WFCCJsonSerializer -@property(nonatomic, strong)NSString *chatroomId; -@property(nonatomic, strong)NSString *title; -@property(nonatomic, strong)NSString *desc; -@property(nonatomic, strong)NSString *portrait; -@property(nonatomic, strong)NSString *extra; - -//0 normal; 1 not started; 2 end -@property(nonatomic, assign)int state; -@property(nonatomic, assign)int memberCount; -@property(nonatomic, assign)long long createDt; -@property(nonatomic, assign)long long updateDt; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChatroomMemberInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChatroomMemberInfo.h deleted file mode 100644 index 0ebd239c..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCChatroomMemberInfo.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// WFCCChatroomInfo.h -// WFChatClient -// -// Created by heavyrain lee on 2018/8/24. -// Copyright © 2018 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -@interface WFCCChatroomMemberInfo : WFCCJsonSerializer -@property(nonatomic, assign)int memberCount; -@property(nonatomic, strong)NSArray *members; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCompositeMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCompositeMessageContent.h deleted file mode 100644 index a405844d..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCompositeMessageContent.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// WFCCCompositeMessageContent.h -// WFChatClient -// -// Created by Tom Lee on 2020/10/4. -// Copyright © 2020 WildFireChat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" -@class WFCCMessage; - -NS_ASSUME_NONNULL_BEGIN - -@interface WFCCCompositeMessageContent : WFCCMediaMessageContent -@property (nonatomic, strong)NSString *title; -@property (nonatomic, strong)NSArray *messages; -@property(nonatomic, assign)BOOL loaded; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCConferenceInviteMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCConferenceInviteMessageContent.h deleted file mode 100644 index 822353db..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCConferenceInviteMessageContent.h +++ /dev/null @@ -1,69 +0,0 @@ -// -// WFCCConferenceInviteMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 电话总结消息 - */ -@interface WFCCConferenceInviteMessageContent : WFCCMessageContent - - -/** - CallId - */ -@property (nonatomic, strong)NSString *callId; - -/** - 会议主持人 -*/ -@property (nonatomic, strong)NSString *host; -/** - 会议标题 - */ -@property (nonatomic, strong)NSString *title; - -/** - 会议描述 - */ -@property (nonatomic, strong)NSString *desc; -/** - 会议开始时间 - */ -@property (nonatomic, assign)long long startTime; - -/* - 是否音频会议 - */ -@property (nonatomic, assign, getter=isAudioOnly)BOOL audioOnly; - -/* - 会议PIN -*/ -@property (nonatomic, strong)NSString *pin; - -/* - 会议密码 -*/ -@property (nonatomic, strong)NSString *password; - -/* - 是否是会议观众 -*/ -@property (nonatomic, assign)BOOL audience; - -/* - 是否是高级会议模式 -*/ -@property (nonatomic, assign)BOOL advanced; - -/* - 呼叫附加信息 -*/ -@property (nonatomic, strong)NSString *callExtra; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCConversation.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCConversation.h deleted file mode 100644 index a4f5372c..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCConversation.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// WFCCConversation.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" -#import "WFCCProtocol.h" -/** - 会话类型 - - - Single_Type: 单聊 - - Group_Type: 群组 - - Chatroom_Type: 聊天室 - - Channel_Type: 频道 - - Things_Type: 物联网 - - SecretChat_Type: 密聊 - */ -typedef NS_ENUM(NSInteger, WFCCConversationType) { - Single_Type, - Group_Type, - Chatroom_Type, - Channel_Type, - Things_Type, - SecretChat_Type, -}; - -/** - 会话 - */ -@interface WFCCConversation : WFCCJsonSerializer - -/** - 构造方法 - - @param type 会话类型 - @param target 目标会话ID - @param line 默认传0 - @return 会话 - */ -+(instancetype)conversationWithType:(WFCCConversationType)type - target:(NSString *)target - line:(int)line; - -/** - 构造方法 - - @param target 目标会话ID - @return 单聊会话 - */ -+(instancetype)singleConversation:(NSString *)target; - -/** - 构造方法 - - @param target 目标会话ID - @return 群组会话 - */ -+(instancetype)groupConversation:(NSString *)target; - -/** - 会话类型 - */ -@property (nonatomic, assign)WFCCConversationType type; - -/** - 目标会话ID,单聊为对方用户ID,群聊为群ID - */ -@property (nonatomic, strong)NSString *target; - -/** - 默认为0 - */ -@property (nonatomic, assign)int line; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCConversationInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCConversationInfo.h deleted file mode 100644 index e058f01e..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCConversationInfo.h +++ /dev/null @@ -1,57 +0,0 @@ -// -// WFCCConversationInfo.h -// WFChatClient -// -// Created by heavyrain on 2017/8/29. -// Copyright © 2017年 wildfire chat. All rights reserved. -// - -#import -#import "WFCCConversation.h" -#import "WFCCMessage.h" -#import "WFCCUnreadCount.h" -#import "WFCCJsonSerializer.h" - -/** - 会话信息 - */ -@interface WFCCConversationInfo : WFCCJsonSerializer - -/** - 会话 - */ -@property (nonatomic, strong)WFCCConversation *conversation; - -/** - 最后一条消息 - */ -@property (nonatomic, strong)WFCCMessage *lastMessage; - -/** - 草稿 - */ -@property (nonatomic, strong)NSString *draft; - -/** - 最后一条消息的时间戳 - */ -@property (nonatomic, assign)long long timestamp; - -/** - 未读数 - */ -@property (nonatomic, strong)WFCCUnreadCount *unreadCount; - -/** - 是否置顶 - */ -@property (nonatomic, assign)int isTop; - -/** - 是否设置了免打扰 - */ -@property (nonatomic, assign)BOOL isSilent; - -@end - - diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCConversationSearchInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCConversationSearchInfo.h deleted file mode 100644 index ec9e885e..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCConversationSearchInfo.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// WFCCConversationSearchInfo.h -// WFChatClient -// -// Created by heavyrain on 2017/10/22. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCConversation.h" -#import "WFCCMessage.h" -#import "WFCCJsonSerializer.h" -/** - 会话搜索信息 - */ -@interface WFCCConversationSearchInfo : WFCCJsonSerializer - -/** - 会话 - */ -@property (nonatomic, strong)WFCCConversation *conversation; - -/** - 命中的消息 - */ -@property (nonatomic, strong)WFCCMessage *marchedMessage; - -/** - 命中数量 - */ -@property (nonatomic, assign)int marchedCount; - -/** - 搜索关键字 - */ -@property (nonatomic, strong)NSString *keyword; - -/** - 会话时间 - */ -@property (nonatomic, assign)int64_t timestamp; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCreateGroupNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCreateGroupNotificationContent.h deleted file mode 100644 index 6adfe2b4..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCCreateGroupNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 建群的通知消息 - */ -@interface WFCCCreateGroupNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 创建者ID - */ -@property (nonatomic, strong)NSString *creator; - -/** - 群名 - */ -@property (nonatomic, strong)NSString *groupName; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDeleteMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDeleteMessageContent.h deleted file mode 100644 index 34b73b8a..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDeleteMessageContent.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// WFCCDeleteMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 文本消息 - */ -@interface WFCCDeleteMessageContent : WFCCMessageContent - -/** - 被删除消息的Uid - */ -@property (nonatomic, assign)long long messageUid; - -/** - 撤回用户Id - */ -@property (nonatomic, strong)NSString *operatorId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDeliveryReport.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDeliveryReport.h deleted file mode 100644 index 52446303..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDeliveryReport.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// WFCCConversation.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" -/** - 会话 - */ -@interface WFCCDeliveryReport : WFCCJsonSerializer - -+(instancetype)delivered:(NSString *)userId - timestamp:(long long)timestamp; - -@property (nonatomic, strong)NSString *userId; -@property (nonatomic, assign)long long timestamp; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDictionary.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDictionary.h deleted file mode 100644 index 3c758bc7..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDictionary.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// WFCCDictionary.h -// WFChatClient -// -// Created by Rain on 26/5/2025. -// Copyright © 2025 WildFireChat. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface WFCCDictionary : NSObject -+ (WFCCDictionary *)fromData:(NSData *)data error:(NSError **)error; -+ (WFCCDictionary *)fromString:(NSString *)str error:(NSError **)error; -+ (WFCCDictionary *)fromDictionary:(NSDictionary *)dictionary; - -- (id)objectForKeyedSubscript:(id)key; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDismissGroupNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDismissGroupNotificationContent.h deleted file mode 100644 index 97803499..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDismissGroupNotificationContent.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// WFCCDismissGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群解散的通知消息 - */ -@interface WFCCDismissGroupNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operateUser; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDomainInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDomainInfo.h deleted file mode 100644 index 8ca2d465..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCDomainInfo.h +++ /dev/null @@ -1,56 +0,0 @@ -// -// WFCCDomainInfo.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -/** - 域信息 - */ -@interface WFCCDomainInfo : WFCCJsonSerializer - -/** - 域ID - */ -@property (nonatomic, strong)NSString *domainId; - -/** - 域的名称 - */ -@property (nonatomic, strong)NSString *name; - -/** - 域的描述 - */ -@property (nonatomic, strong)NSString *desc; - -/** - 域的邮件地址 - */ -@property (nonatomic, strong)NSString *email; - -/** - 域的电话 - */ -@property (nonatomic, strong)NSString *tel; - -/** - 域的地址 - */ -@property (nonatomic, strong)NSString *address; - -/** - 群的额外信息 - */ -@property (nonatomic, strong)NSString *extra; - -/** - 域的最后更新日期 - */ -@property (nonatomic, assign)long long updateDt; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCEnterChannelChatMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCEnterChannelChatMessageContent.h deleted file mode 100644 index 74e85b6b..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCEnterChannelChatMessageContent.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// WFCCEnterChannelChatMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - - -/** - 进入频道会话消息 - */ -@interface WFCCEnterChannelChatMessageContent : WFCCMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCEnums.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCEnums.h deleted file mode 100644 index e4612ebc..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCEnums.h +++ /dev/null @@ -1,141 +0,0 @@ -// -// WFCCEnums.h -// WFChatClient -// -// Created by Heavyrian Lee on 2020/6/25. -// Copyright © 2020 WildFireChat. All rights reserved. -// - -#ifndef WFCCEnums_h -#define WFCCEnums_h - -typedef NS_ENUM(NSInteger, WFCCErrorCode) { - //0~255 server error - ERROR_CODE_SUCCESS = 0, // //"success"), - ERROR_CODE_SECRECT_KEY_MISMATCH = 1, //"secrect key mismatch"), - ERROR_CODE_INVALID_DATA = 2, //"invalid data"), - ERROR_CODE_NODE_NOT_EXIST = 3, //"node not exist"), - ERROR_CODE_SERVER_ERROR = 4, //"server error"), - ERROR_CODE_NOT_MODIFIED = 5, //"not modified"), - - //Auth error - ERROR_CODE_TOKEN_ERROR = 6, //"token error"), - ERROR_CODE_USER_FORBIDDEN = 8, //"user forbidden"), - - //Message error - ERROR_CODE_NOT_IN_GROUP = 9, //"not in group"), - ERROR_CODE_INVALID_MESSAGE = 10, //"invalid message"), - - //Group error - ERROR_CODE_GROUP_ALREADY_EXIST = 11, //"group aleady exist"), - - - //user error - ERROR_CODE_PASSWORD_INCORRECT = 15, //"password incorrect"), - - //user error - ERROR_CODE_FRIEND_ALREADY_REQUEST = 16, //"already send request"), - ERROR_CODE_FRIEND_REQUEST_BLOCKED = 18, //"friend request blocked"), - ERROR_CODE_FRIEND_REQUEST_EXPIRED = 19, //"friend request expired"), - - ERROR_CODE_NOT_IN_CHATROOM = 20, //"not in chatroom"), - - ERROR_CODE_NOT_IN_CHANNEL = 21, //"not in channel"), - - ERROR_CODE_NOT_LICENSED = 22, //"not licensed"), - ERROR_CODE_ALREADY_FRIENDS = 23, //"already friends"), - - ERROR_CODE_GROUP_EXCEED_MAX_MEMBER_COUNT = 240, //"group exceed max member count"), - ERROR_CODE_GROUP_MUTED = 241, //"group is muted"), - ERROR_CODE_SENSITIVE_MATCHED = 242, //"sensitive matched"), - ERROR_CODE_SIGN_EXPIRED = 243, //"sign expired"), - ERROR_CODE_AUTH_FAILURE = 244, //"auth failure"), - ERROR_CODE_CLIENT_COUNT_OUT_OF_LIMIT = 245, //"client count out of limit"), - ERROR_CODE_IN_BLACK_LIST = 246, //"user in balck list"), - ERROR_CODE_FORBIDDEN_SEND_MSG = 247, //"forbidden send msg globally"), - ERROR_CODE_NOT_RIGHT = 248, //"no right to operate"), - ERROR_CODE_TIMEOUT = 249, //"timeout"), - ERROR_CODE_OVER_FREQUENCY = 250, //"over frequency"), - ERROR_CODE_INVALID_PARAMETER = 251, //"Invalid parameter"), - ERROR_CODE_NOT_EXIST = 253, //"not exist"), - ERROR_CODE_NOT_IMPLEMENT = 254, //"not implement"), - - //负值为mars返回错误 - ERROR_CODE_Local_TaskTimeout = -1, - ERROR_CODE_Local_TaskRetry = -2, - ERROR_CODE_Local_StartTaskFail = -3, - ERROR_CODE_Local_AntiAvalanche = -4, - ERROR_CODE_Local_ChannelSelect = -5, - ERROR_CODE_Local_NoNet = -6, - ERROR_CODE_Local_Cancel = -7, - ERROR_CODE_Local_Clear = -8, - ERROR_CODE_Local_Reset = -9, - ERROR_CODE_Local_TaskParam = -12, - ERROR_CODE_Local_CgiFrequcencyLimit = -13, - ERROR_CODE_Local_ChannelID = -14, - - ERROR_CODE_Long_FirstPkgTimeout = -500, - ERROR_CODE_Long_PkgPkgTimeout = -501, - ERROR_CODE_Long_ReadWriteTimeout = -502, - ERROR_CODE_Long_TaskTimeout = -503, - - ERROR_CODE_Socket_NetworkChange = -10086, - ERROR_CODE_Socket_MakeSocketPrepared = -10087, - ERROR_CODE_Socket_WritenWithNonBlock = -10088, - ERROR_CODE_Socket_ReadOnce = -10089, - ERROR_CODE_Socket_RecvErr = -10091, - ERROR_CODE_Socket_SendErr = -10092, - ERROR_CODE_Socket_NoopTimeout = -10093, - ERROR_CODE_Socket_NoopAlarmTooLate = -10094, - ERROR_CODE_Http_SplitHttpHeadAndBody = -10194, - ERROR_CODE_Http_ParseStatusLine = -10195, - ERROR_CODE_Net_MsgXPHandleBufferErr = -10504, - ERROR_CODE_Dns_MakeSocketPrepared = -10606, - - //proto error code - ERROR_CODE_Proto_CorruptData = -100001, - ERROR_CODE_Proto_InvalideParameter = -100002, - //消息内容超过最大值,最大值为200KB,建议不超过15KB。 - ERROR_CODE_Proto_Content_Exceed_Max_Size = -100003, - //媒体内容超过最大值,最大值为100MB - ERROR_CODE_Proto_Media_Exceed_Max_Size = -100004, -}; - - -/** - 添加好友来源 - - - FriendSource_Unknown: 未知 - - FriendSource_Search: 搜索 - - FriendSource_Group: 群组,targetId为群主ID - - FriendSource_QrCode: 二维码,targetId为分享二维码的用户Id - - FriendSource_Card: 用户名片,targetId为分享名片的用户Id - - FriendSource_Org: 组织通讯录查看 - */ -typedef NS_ENUM(NSInteger, WFCCFriendSourceType) { - FriendSource_Unknown, - FriendSource_Search, - FriendSource_Group, - FriendSource_QrCode, - FriendSource_Card, - FriendSource_Org -}; - -/** - 群成员来源 - - - GroupMemberSource_Unknown: 搜索 - - GroupMemberSource_Search: 搜索 - - GroupMemberSource_Invite: 邀请,targetId为邀请人的用户id - - GroupMemberSource_QrCode: 二维码,targetId为分享群二维码的用户id - - GroupMemberSource_Card: 群名片,targetId为分享群名片的用户Id - */ -typedef NS_ENUM(NSInteger, WFCCGroupMemberSourceType) { - GroupMemberSource_Unknown, - GroupMemberSource_Search, - GroupMemberSource_Invite, - GroupMemberSource_QrCode, - GroupMemberSource_Card, -}; - -#endif /* WFCCEnums_h */ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFileMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFileMessageContent.h deleted file mode 100644 index 2234767b..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFileMessageContent.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// WFCCSoundMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/9. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" - -/** - 语音消息 - */ -@interface WFCCFileMessageContent : WFCCMediaMessageContent - -/** - 构造方法 - - @param filePath 文件路径 - @return 语音消息 - */ -+ (instancetype)fileMessageContentFromPath:(NSString *)filePath; - -/** - 文件名 - */ -@property (nonatomic, strong)NSString *name; - -/** - 文件名 - */ -@property (nonatomic, assign)NSUInteger size; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFileRecord.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFileRecord.h deleted file mode 100644 index 1fdbc089..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFileRecord.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// WFCCFileRecord.h -// WFChatClient -// -// Created by dali on 2020/8/2. -// Copyright © 2020 WildFireChat. All rights reserved. -// - -#import -#import "WFCCConversation.h" -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface WFCCFileRecord : WFCCJsonSerializer -@property (nonatomic, strong)WFCCConversation *conversation; -@property (nonatomic, assign)long long messageUid; -@property (nonatomic, strong)NSString *userId; -@property (nonatomic, strong)NSString *name; -@property (nonatomic, strong)NSString *url; -@property (nonatomic, assign)int size; -@property (nonatomic, assign)int downloadCount; -@property (nonatomic, assign)long long timestamp; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFriend.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFriend.h deleted file mode 100644 index 1a23ee32..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFriend.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// WFCCFriend.h -// WFChatClient -// -// Created by heavyrain on 2021/5/16. -// Copyright © 2021 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface WFCCFriend : WFCCJsonSerializer -/* - 好友ID - */ -@property(nonatomic, strong)NSString *userId; - -/* - 好友昵称 - */ -@property(nonatomic, strong)NSString *alias; - -/* - 扩展信息,添加方式等 - */ -@property(nonatomic, strong)NSString *extra; - -/* - 添加好友时间 - */ -@property(nonatomic, assign)long long timestamp; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFriendAddedMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFriendAddedMessageContent.h deleted file mode 100644 index 75316d2a..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFriendAddedMessageContent.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// WFCCFriendAddedMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 好友添加成功的通知。一般可以显示为你已添加XXX为好友了,可以开始聊天了。本消息和WFCCFriendGreetingMessageContent为后添加的,之前服务器端是直接发送了2个tip消息,这样就没有办法做多语言化了。但现在还不能直接使用这两个消息,因为有历史兼容问题,可以先加上这两个功能,等您的应用的SDK都更新支持这两个消息以后,再在服务器端加上。 - */ -@interface WFCCFriendAddedMessageContent : WFCCNotificationMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFriendGreetingMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFriendGreetingMessageContent.h deleted file mode 100644 index 42cb0b7e..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFriendGreetingMessageContent.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// WFCCFriendGreetingMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** -好友打招呼的提示。一般可以显示为以上是打招呼信息。更多信息请阅读WFCCFriendAddedMessageContent的注释 -*/ -@interface WFCCFriendGreetingMessageContent : WFCCNotificationMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFriendRequest.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFriendRequest.h deleted file mode 100644 index 882d8376..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCFriendRequest.h +++ /dev/null @@ -1,51 +0,0 @@ -// -// WFCCFriendRequest.h -// WFChatClient -// -// Created by heavyrain on 2017/10/17. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" -/** - 好友请求 - */ -@interface WFCCFriendRequest : WFCCJsonSerializer - -/** - 方向 - */ -@property(nonatomic, assign)int direction; - -/** - ID - */ -@property(nonatomic, strong)NSString *target; - -/** - 请求说明 - */ -@property(nonatomic, strong)NSString *reason; - -/** - 请求扩展信息 - */ -@property(nonatomic, strong)NSString *extra; - -/** - 接受状态 - */ -@property(nonatomic, assign)int status; - -/** - 已读 - */ -@property(nonatomic, assign)int readStatus; - -/** - 发起时间 - */ -@property(nonatomic, assign)long long timestamp; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupInfo.h deleted file mode 100644 index b772a936..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupInfo.h +++ /dev/null @@ -1,125 +0,0 @@ -// -// WFCCGroupInfo.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" -/** - 群类型 - - - GroupType_Normal: 管理员和群主才能加人和退群,修改群信息。 - - GroupType_Free: 所有人都能加人、退群和修改群信息 - - GroupType_Restricted: 带有群管理功能 - - GroupType_Organization: 组织群,只能通过API操作,群主和管理员可以禁言、撤回等操作 - */ -typedef NS_ENUM(NSInteger, WFCCGroupType) { - GroupType_Normal = 0, - GroupType_Free = 1, - GroupType_Restricted = 2, - GroupType_Organization = 3, -} ; - -/** - 群信息 - */ -@interface WFCCGroupInfo : WFCCJsonSerializer - -/** - 群类型 - */ -@property (nonatomic, assign)WFCCGroupType type; - -/** - 群ID - */ -@property (nonatomic, strong)NSString *target; - -/** - 群名 - */ -@property (nonatomic, strong)NSString *name; - -/** - 群头像 - */ -@property (nonatomic, strong)NSString *portrait; - -/** - 成员数 - */ -@property (nonatomic, assign)NSUInteger memberCount; - -/** - 群主 - */ -@property (nonatomic, strong)NSString *owner; - -/** - 扩展信息 - */ -@property (nonatomic, strong)NSString *extra; - -/** - 群备注 - */ -@property (nonatomic, strong)NSString *remark; - -/** - 群禁言状态,0 关闭群禁言;1 开启群禁言 - */ -@property (nonatomic, assign)int mute; - -/** - 加群申请状态,0 不限制加入(用户可以自己加群或被普通群成员拉入);1 普通群成员可以拉人进群;2 只有群管理才能拉人 - */ -@property (nonatomic, assign)int joinType; - -/** - 群成员私聊状态,0 允许私聊;1 不允许私聊 - */ -@property (nonatomic, assign)int privateChat; - -/** - 群搜索状态,0 群可以被搜索到;1 群不会被搜索到 - */ -@property (nonatomic, assign)int searchable; - -/** - 群成员是否可以加载加入之前的历史消息,0不可以;1可以 - */ -@property (nonatomic, assign)int historyMessage; - -/** - 群的最大成员数,可以通过server api来修改 - */ -@property (nonatomic, assign)int maxMemberCount; - -/** - 群成员私聊状态,0 普通群组;1 超级群组。超级群组不支持服务器端删除。 - */ -@property (nonatomic, assign)int superGroup; - -/** - 是否被解散,0 没有解散;1 已经被解散。在2024.3.30日以后的IM服务支持群组标记删除,默认为关,需要IM服务打开群组标记删除的开关。 - */ -@property (nonatomic, assign)int deleted; - -/** - 群的最后更新日期 - */ -@property (nonatomic, assign)long long updateDt; - -/** - 群成员的最后更新日期,一般是没有什么作用,唯一的作用就是当用户退出群组后,再获取群组信息,memberDt会为负数。 - */ -@property (nonatomic, assign)long long memberDt; - -/** - 群显示名称,如果有群备注返回群备注,没有群备注返回群名称 - */ -@property (nonatomic, strong, readonly)NSString *displayName; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupJoinTypeNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupJoinTypeNotificationContent.h deleted file mode 100644 index 35896206..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupJoinTypeNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 建群的通知消息 - */ -@interface WFCCGroupJoinTypeNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operatorId; - -/** - 操作 - */ -@property (nonatomic, strong)NSString *type; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupMember.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupMember.h deleted file mode 100644 index 3e774f1c..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupMember.h +++ /dev/null @@ -1,66 +0,0 @@ -// -// WFCCGroupMember.h -// WFChatClient -// -// Created by heavyrain on 2017/10/30. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -/** - 群成员类型 - - - Member_Type_Normal: 普通成员 - - Member_Type_Manager: 管理员 - - Member_Type_Owner: 群主 - - Member_Type_Muted: 被禁言 - - Member_Type_Deleted: 已删除成员,仅在群成员变动回调中存在。 - - Member_Type_Allowed: 被允许发言 - */ -typedef NS_ENUM(NSInteger, WFCCGroupMemberType) { - Member_Type_Normal = 0, - Member_Type_Manager, - Member_Type_Owner, - Member_Type_Muted, - Member_Type_Deleted, - Member_Type_Allowed = 5 -} ; - -/** - 群成员信息 - */ -@interface WFCCGroupMember : WFCCJsonSerializer - -/** - 群ID - */ -@property(nonatomic, strong)NSString *groupId; - -/** - 群成员ID - */ -@property(nonatomic, strong)NSString *memberId; - -/** - 群昵称 - */ -@property(nonatomic, strong)NSString *alias; - -/** - 群成员扩展信息 - */ -@property(nonatomic, strong)NSString *extra; - -/** - 群成员类型 - */ -@property(nonatomic, assign)WFCCGroupMemberType type; - -/** - 群成员加入时间戳 -*/ -@property(nonatomic, assign)long long createTime; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupMemberAllowNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupMemberAllowNotificationContent.h deleted file mode 100644 index 63b52e37..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupMemberAllowNotificationContent.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群成员禁言的通知消息 - */ -@interface WFCCGroupMemberAllowNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *creator; - -/** - 操作 - */ -@property (nonatomic, strong)NSString *type; - -/** - 被禁言/取消禁言者ID列表 - */ -@property (nonatomic, strong)NSArray *targetIds; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupMemberMuteNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupMemberMuteNotificationContent.h deleted file mode 100644 index def006ec..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupMemberMuteNotificationContent.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群成员禁言的通知消息 - */ -@interface WFCCGroupMemberMuteNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *creator; - -/** - 操作 - */ -@property (nonatomic, strong)NSString *type; - -/** - 被禁言/取消禁言者ID列表 - */ -@property (nonatomic, strong)NSArray *targetIds; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupMuteNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupMuteNotificationContent.h deleted file mode 100644 index 71a4633c..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupMuteNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 建群的通知消息 - */ -@interface WFCCGroupMuteNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 创建者ID - */ -@property (nonatomic, strong)NSString *creator; - -/** - 操作 - */ -@property (nonatomic, strong)NSString *type; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupPrivateChatNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupPrivateChatNotificationContent.h deleted file mode 100644 index 1b6d4fe3..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupPrivateChatNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 建群的通知消息 - */ -@interface WFCCGroupPrivateChatNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operatorId; - -/** - 操作 - */ -@property (nonatomic, strong)NSString *type; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupSearchInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupSearchInfo.h deleted file mode 100644 index fd13458d..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupSearchInfo.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// WFCCGroupSearchInfo.h -// WFChatClient -// -// Created by heavyrain on 2017/10/22. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCGroupInfo.h" -#import "WFCCJsonSerializer.h" - -/** - 搜索群组匹配类型mask - - - GroupSearchMarchTypeMask_Group_Name: 匹配群组名称 - - GroupSearchMarchTypeMask_Member_Name: 匹配群成员昵称 - - GroupSearchMarchTypeMask_Member_Alias: 匹配群成员群昵称 - - GroupSearchMarchTypeMask_Group_Remark: 匹配群组remark - */ -typedef NS_ENUM(NSInteger, WFCCGroupSearchMarchTypeMask) { - GroupSearchMarchTypeMask_Group_Name = 0x01, - GroupSearchMarchTypeMask_Member_Name = 0x02, - GroupSearchMarchTypeMask_Member_Alias = 0x04, - GroupSearchMarchTypeMask_Group_Remark = 0x08 -}; - -/** - 群组搜索信息 - */ -@interface WFCCGroupSearchInfo : WFCCJsonSerializer - -/** - 命中的群组 - */ -@property (nonatomic, strong)WFCCGroupInfo *groupInfo; - -/** - 命中的类型,请参考WFCCGroupSearchMarchTypeMask - */ -@property (nonatomic, assign)int marchType; - -/** - 命中群成员名称 - */ -@property (nonatomic, strong)NSArray *marchedMemberNames; - -/** - 搜索的关键字 - */ -@property (nonatomic, strong)NSString *keyword; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupSetManagerNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupSetManagerNotificationContent.h deleted file mode 100644 index 3187cfd4..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupSetManagerNotificationContent.h +++ /dev/null @@ -1,35 +0,0 @@ -// -// WFCCCreateGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 设置/取消群管理员通知消息 - */ -@interface WFCCGroupSetManagerNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operatorId; - -/** - 操作,0取消管理员,1设置为管理员。 - */ -@property (nonatomic, strong)NSString *type; - -/** - Member ID - */ -@property (nonatomic, strong)NSArray *memberIds; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupSettingsNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupSettingsNotificationContent.h deleted file mode 100644 index cfa1c08e..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCGroupSettingsNotificationContent.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// WFCCGroupSettingsNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 建群的通知消息 - */ -@interface WFCCGroupSettingsNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operatorId; - -/** - 修改设置类型。7为修改是否查看历史消息;8为修改群最大成员数,9为修改是否为超级群 - */ -@property (nonatomic, assign)int type; - -/** - 修改后的数据 - */ -@property (nonatomic, assign)int value; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCIMService.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCIMService.h deleted file mode 100644 index 31083a87..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCIMService.h +++ /dev/null @@ -1,2862 +0,0 @@ -// -// WFCCIMService.h -// WFChatClient -// -// Created by heavyrain on 2017/11/5. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCMessage.h" -#import "WFCCGroupInfo.h" -#import "WFCCConversationInfo.h" -#import "WFCCUserInfo.h" -#import "WFCCFriendRequest.h" -#import "WFCCConversationSearchInfo.h" -#import "WFCCGroupMember.h" -#import "WFCCGroupSearchInfo.h" -#import "WFCCChatroomInfo.h" -#import "WFCCChatroomMemberInfo.h" -#import "WFCCUnreadCount.h" -#import "WFCCChannelInfo.h" -#import "WFCCPCOnlineInfo.h" -#import "WFCCFileRecord.h" -#import "WFCCFriend.h" -#import "WFCCSecretChatInfo.h" -#import "WFCCNetworkService.h" -#import "WFCCDomainInfo.h" - -#pragma mark - 频道通知定义 -//发送消息状态通知 -extern NSString *kSendingMessageStatusUpdated; -extern NSString *kUploadMediaMessageProgresse; -extern NSString *kConnectionStatusChanged; -extern NSString *kReceiveMessages; -extern NSString *kRecallMessages; -extern NSString *kDeleteMessages; -extern NSString *kMessageDelivered; -extern NSString *kMessageReaded; -extern NSString *kMessageUpdated; - -#pragma mark - 枚举值定义 -/** - 修改个人信息的内容 - - - Modify_DisplayName: 修改显示名 - - Modify_Portrait: 修改头像 - - Modify_Gender: 修改性别 - - Modify_Mobile: 修改手机号 - - Modify_Email: 修改邮箱 - - Modify_Address: 修改地址 - - Modify_Company: 修改公司信息 - - Modify_Social: 修改社交信息 - - Modify_Extra: 修改扩展信息 - */ -typedef NS_ENUM(NSInteger, ModifyMyInfoType) { - Modify_DisplayName = 0, - Modify_Portrait = 1, - Modify_Gender = 2, - Modify_Mobile = 3, - Modify_Email = 4, - Modify_Address = 5, - Modify_Company = 6, - Modify_Social = 7, - Modify_Extra = 8 -}; - -typedef NS_ENUM(NSInteger, ModifyGroupInfoType) { - Modify_Group_Name = 0, - Modify_Group_Portrait = 1, - Modify_Group_Extra = 2, - Modify_Group_Mute = 3, - Modify_Group_JoinType = 4, - Modify_Group_PrivateChat = 5, - Modify_Group_Searchable = 6, - Modify_Group_History_Message = 7, - Modify_Group_Max_Member_Count = 8 -}; - - -typedef NS_ENUM(NSInteger, ModifyChannelInfoType) { - Modify_Channel_Name = 0, - Modify_Channel_Portrait = 1, - Modify_Channel_Desc = 2, - Modify_Channel_Extra = 3, - Modify_Channel_Secret = 4, - Modify_Channel_Callback = 5 -}; - -/** - 个人设置Scope - - @discussion 用户设置,1000以内被系统保留。应用不应该直接使用系统预制的范围。应用可以使用1000以上的值。 - */ -typedef NS_ENUM(NSInteger, UserSettingScope) { - //不能直接使用,调用setConversation:silent:方法会使用到此值。 - UserSettingScope_Conversation_Silent = 1, - //不能直接使用 - UserSettingScope_Global_Silent = 2, - - //不能直接使用,调用setConversation:top:方法会使用到此值。 - UserSettingScope_Conversation_Top = 3, - //不能直接使用 - UserSettingScope_Hidden_Notification_Detail = 4, - //不能直接使用 - UserSettingScope_Group_Hide_Nickname = 5, - //不能直接使用 - UserSettingScope_Favourite_Group = 6, - - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Conversation_Sync = 7, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_My_Channel = 8, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Listened_Channel = 9, - - //不能直接使用,协议栈内会使用此值 - UserSettingScope_PC_Online = 10, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Conversation_Readed = 11, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_WebOnline = 12, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_DisableRecipt = 13, - //不能直接使用 - UserSettingScope_Favourite_User = 14, - //不能直接使用 - UserSettingScope_Mute_When_PC_Online = 15, - //不能直接使用 - UserSettingScope_Lines_Readed = 16, - //不能直接使用 - UserSettingScope_No_Disturbing = 17, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Conversation_Clear_Message = 18, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Conversation_Draft = 19, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Disable_Sync_Draft = 20, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Voip_Silent = 21, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_PTT_Reserved = 22, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Custom_State = 23, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Disable_Secret_Chat = 24, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Ptt_Silent = 25, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Group_Remark = 26, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_Privacy_Searchable = 27, - //不能直接使用,协议栈内会使用此值 - UserSettingScope_AddFriend_NoVerify = 28, - - //自定义用户设置,请使用1000以上的key - UserSettingScope_Custom_Begin = 1000 -} ; - - -/** - 搜索用户类型 - - - SearchUserType_General: 模糊搜索diaplayName,精确匹配name或电话或用户ID - - SearchUserType_Name_Mobile: 精确匹配name或电话 - - SearchUserType_Name: 精确匹配name - - SearchUserType_Mobile: 精确匹配电话 - - SearchUserType_UserId: 精确匹配用户ID - - SearchUserType_Name_Mobile_UserId: 精确匹配name或电话或用户ID - */ -typedef NS_ENUM(NSInteger, WFCCSearchUserType) { - SearchUserType_General, - SearchUserType_Name_Mobile, - SearchUserType_Name, - SearchUserType_Mobile, - SearchUserType_UserId, - SearchUserType_Name_Mobile_UserId -}; - -/** - 搜索用户的用户类型 - - - UserSearchUserType_All: 搜索普通用户和机器人 - - UserSearchUserType_Only_User: 只搜索普通用户 - - UserSearchUserType_Only_Robot: 只搜索机器人 - */ -typedef NS_ENUM(NSInteger, WFCCUserSearchUserType) { - UserSearchUserType_All, - UserSearchUserType_Only_User, - UserSearchUserType_Only_Robot -}; - -/** - 禁止搜索当前用户的掩码。 - - - DisableSearch_DisplayName_Mask: 第1位是是否禁止搜索昵称 - - DisableSearch_Name_Mask: 第2位是否禁止搜索账户 - - DisableSearch_Mobile_Mask: 第3位是否禁止搜索电话号码 - - DisableSearch_UserId_Mask: 第4位是否禁止搜索用户ID - */ -typedef NS_ENUM(NSInteger, WFCCDisableSearchMask) { - DisableSearch_DisplayName_Mask = 1, - DisableSearch_Name_Mask = 2, - DisableSearch_Mobile_Mask = 4, - DisableSearch_UserId_Mask = 8, -}; - - -typedef NS_ENUM(NSInteger, WFCCPlatformType) { - PlatformType_UNSET = 0, - PlatformType_iOS = 1, - PlatformType_Android = 2, - PlatformType_Windows = 3, - PlatformType_OSX = 4, - PlatformType_WEB = 5, - PlatformType_WX = 6, - PlatformType_Linux = 7, - PlatformType_iPad = 8, - //Android pad - PlatformType_APad = 9, - PlatformType_Harmony = 10, - PlatformType_HarmonyPad = 11, - PlatformType_HarmonyPC = 12 -} ; - -typedef NS_ENUM(NSInteger, WFCCFileRecordOrder) { - FileRecordOrder_TIME_DESC = 0, - FileRecordOrder_TIME_ASC = 1, - FileRecordOrder_SIZE_DESC = 2, - FileRecordOrder_SIZE_ASC = 3, -} ; - -#pragma mark - 用户源 -/* - * ChatClient内置支持用户信息托管,但对于很多应用来说都已经拥有自己的用户信息。此时可以实现用户源并设置到IMServer中去。这样ChatClient会从源中读取信息,从而ChatUIKit不用修改代码。 - * 对于好友关系,由于页面简单。如果客户有自己的好友关系,建议客户自己修改相关UI。 - * 对于群组建议使用我们的托管。 - */ -@protocol WFCCUserSource -- (WFCCUserInfo *)getUserInfo:(NSString *)userId - refresh:(BOOL)refresh; - -- (WFCCUserInfo *)getUserInfo:(NSString *)userId inGroup:(NSString *)groupId refresh:(BOOL)refresh; - -- (NSArray *)getUserInfos:(NSArray *)userIds inGroup:(NSString *)groupId; - -- (void)getUserInfo:(NSString *)userId - refresh:(BOOL)refresh - success:(void(^)(WFCCUserInfo *userInfo))successBlock - error:(void(^)(int errorCode))errorBlock; - -- (void)getUserInfo:(NSString *)userId - groupId:(NSString *)groupId - refresh:(BOOL)refresh - success:(void(^)(WFCCUserInfo *userInfo))successBlock - error:(void(^)(int errorCode))errorBlock; - -- (void)getUserInfos:(NSArray *)userIds - groupId:(NSString *)groupId - success:(void(^)(NSArray *userInfos))successBlock - error:(void(^)(int errorCode))errorBlock; - -- (void)searchUser:(NSString *)keyword - searchType:(WFCCSearchUserType)searchType - page:(int)page - success:(void(^)(NSArray *machedUsers))successBlock - error:(void(^)(int errorCode))errorBlock; - -- (void)searchUser:(NSString *)keyword - domain:(NSString *)domainId - searchType:(WFCCSearchUserType)searchType - page:(int)page - success:(void(^)(NSArray *machedUsers))successBlock - error:(void(^)(int errorCode))errorBlock; - -- (void)searchUser:(NSString *)keyword - domain:(NSString *)domainId - searchType:(WFCCSearchUserType)searchType - userType:(WFCCUserSearchUserType)userType - page:(int)page - success:(void(^)(NSArray *machedUsers))successBlock - error:(void(^)(int errorCode))errorBlock; - - --(void)modifyMyInfo:(NSDictionary *)values - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; -@end - -@protocol ReceiveMessageFilter; -@class WFCCUserOnlineState; -@class WFCCUserCustomState; -@class UIImage; -#pragma mark - IM服务 - -/** - IM服务 - */ -@interface WFCCIMService : NSObject - -/** - IM服务单例 - - @return IM服务单例 - */ -+ (WFCCIMService*)sharedWFCIMService; - - -/* - 使用raw消息。当client用于uniapp时,messagePayload没有必要decode为messagecontent,使用raw消息,收发消息都是WFCCRawMessageContent。不要调用这个函数,仅仅当client用在uniapp时。 - */ -- (void)useRawMessage; - - -/** - 外部用户源 - */ -@property(nonatomic, weak)id userSource; - - -/** - 默认图片,当图片消息或者其他类型需要缩略图消息没有缩略图时,使用次默认图片 - */ -@property(nonatomic, strong)UIImage *defaultThumbnailImage; - -#pragma mark - 会话相关 -/** - 获取会话信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @return 会话信息 - */ -- (NSArray *)getConversationInfos:(NSArray *)conversationTypes - lines:(NSArray *)lines; - -/** - 获取会话信息 - - @param conversation 会话 - @return 会话信息 - */ -- (WFCCConversationInfo *)getConversationInfo:(WFCCConversation *)conversation; - -/** - 搜索会话 - - @param keyword 关键词 - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @return 会话搜索结果信息 - */ -- (NSArray *)searchConversation:(NSString *)keyword inConversation:(NSArray *)conversationTypes lines:(NSArray *)lines; - -/** - 搜索会话 - - @param keyword 关键词 - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param startTime 开始时间,如果不限制开始时间请使用0 - @param endTime 结束时间,如果不限制开始时间请使用0 - @param desc 是否逆序 - @param limit limit - @param offset offset - @return 会话搜索结果信息 - */ -- (NSArray *)searchConversation:(NSString *)keyword inConversation:(NSArray *)conversationTypes lines:(NSArray *)lines startTime:(int64_t)startTime endTime:(int64_t)endTime desc:(BOOL)desc limit:(int)limit offset:(int)offset; - -/** - 搜索会话 - - @param keyword 关键词 - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param cntTypes 消息内容类型 - @param startTime 开始时间,如果不限制开始时间请使用0 - @param endTime 结束时间,如果不限制开始时间请使用0 - @param desc 是否逆序 - @param limit limit - @param offset offset - @param onlyMentionedMsg 是否只搜索提醒消息 - @return 会话搜索结果信息 - */ -- (NSArray *)searchConversation:(NSString *)keyword - inConversation:(NSArray *)conversationTypes - lines:(NSArray *)lines - cntTypes:(NSArray *)cntTypes - startTime:(int64_t)startTime - endTime:(int64_t)endTime - desc:(BOOL)desc - limit:(int)limit - offset:(int)offset - onlyMentionedMsg:(BOOL)onlyMentionedMsg; - -/** - 删除会话 - - @param conversation 会话 - @param clearMessage 是否删除会话中的消息 - */ -- (void)removeConversation:(WFCCConversation *)conversation - clearMessage:(BOOL)clearMessage; - -/** - 设置或取消会话置顶 - - @param conversation 会话 - @param top 置顶优先级 - */ -- (void)setConversation:(WFCCConversation *)conversation - top:(int)top - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 设置会话免打扰 - - @param conversation 会话 - @param silent 是否免打扰 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setConversation:(WFCCConversation *)conversation - silent:(BOOL)silent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取会话是否免打扰状态 - - @param conversation 会话 - @return 会话是否免打扰 - */ -- (BOOL)isConversationSilent:(WFCCConversation *)conversation; -/** - 设置会话草稿 - - @param conversation 会话 - @param draft 草稿 - */ -- (void)setConversation:(WFCCConversation *)conversation - draft:(NSString *)draft; - -/** - 更新会话的时间 - - @param conversation 会话 - @param timestamp 时间戳 - */ -- (void)setConversation:(WFCCConversation *)conversation - timestamp:(long long)timestamp; - -/** - 获取会话列表第一条未读消息Id - - @param conversation 会话 - - @return 会话中最早一条未读消息Id - */ -- (long)getFirstUnreadMessageId:(WFCCConversation *)conversation; - -/** - 清除远端会话消息,仅专业版支持。 - - @param conversation 会话 - @param successBlock 删除成功 - @param errorBlock 删除失败 - */ -- (void)clearRemoteConversationMessage:(WFCCConversation *)conversation - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -#pragma mark - 未读数相关 -/** - 获取指定类型会话的未读数 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @return 未读数 - */ -- (WFCCUnreadCount *)getUnreadCount:(NSArray *)conversationTypes - lines:(NSArray *)lines; - -/** - 获取某个会话的未读数 - - @param conversation 会话 - @return 未读数 - */ -- (WFCCUnreadCount *)getUnreadCount:(WFCCConversation *)conversation; - -/** - 清空会话未读数。 - - @param conversation 会话 - */ -- (void)clearUnreadStatus:(WFCCConversation *)conversation; - -/** -清空会话未读数 - -@param conversationTypes 会话类型 -@param lines 线路 -*/ -- (void)clearUnreadStatus:(NSArray *)conversationTypes - lines:(NSArray *)lines; - -/** - 清空所有会话的未读数。仅清理本地消息的未读数,没有同步到其他端,如果多端使用,请避免使用此方法 - */ -- (void)clearAllUnreadStatus DEPRECATED_MSG_ATTRIBUTE("use clearUnreadStatus:lines: instead"); - -/** - 清空消息未读。 - - @param messageId 消息ID - @discuss 这个函数只能清除本地的状态,不能同步到服务器或者其他端。建议一般情况下不要用这个接口。 - */ -- (void)clearMessageUnreadStatus:(long)messageId; - -/** - 清空某条消息之前(包含)所有消息的未读状态。 - - @param messageId 消息ID - @param conversation 消息所属会话 - */ -- (void)clearMessageUnreadStatusBefore:(long)messageId conversation:(WFCCConversation *)conversation; - -/** - 设置会话的最后一条接收消息为未读状态。 - - @param conversation 会话 - @param sync 是否同步到其它客户端 - @return YES设置成功,NO消息不存在或已经存在未读。 - */ -- (BOOL)markAsUnRead:(WFCCConversation *)conversation syncToOtherClient:(BOOL)sync; - -/** - 设置媒体消息已播放(已经放开限制,所有消息都可以设置为已读状态) - - @param messageId 消息ID - */ -- (void)setMediaMessagePlayed:(long)messageId; - -/** - 设置消息的本地附加信息,注意信息不在多端之间同步。 - - @param messageId 消息ID - @param extra 附加信息 - - @return YES更新成功,NO消息不存在 - */ -- (BOOL)setMessage:(long)messageId localExtra:(NSString *)extra; -/** -获取会话内已读状态 - -@param conversation 会话 -@return 会话的每个用户的已读时间 -*/ -- (NSMutableDictionary *)getConversationRead:(WFCCConversation *)conversation; - -/** -获取会话内已送达状态 - -@param conversation 会话 -@return 会话的每个用户的已送达时间 -*/ -- (NSMutableDictionary *)getMessageDelivery:(WFCCConversation *)conversation; - -#pragma mark - 消息相关 -/** - 获取消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @return 消息实体 - */ -- (NSArray *)getMessages:(WFCCConversation *)conversation - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMessagesV2:(WFCCConversation *)conversation - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取提醒消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param fromIndex 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMentionedMessages:(WFCCConversation *)conversation - from:(NSUInteger)fromIndex - count:(NSInteger)count - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param messageStatus 消息状态WFCCMessageStatus - @param fromIndex 起始index - @param count 总数 - @return 消息实体 - */ -- (NSArray *)getMessages:(WFCCConversation *)conversation - messageStatus:(NSArray *)messageStatus - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param messageStatus 消息状态WFCCMessageStatus - @param fromIndex 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMessagesV2:(WFCCConversation *)conversation - messageStatus:(NSArray *)messageStatus - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取某类会话信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @return 消息实体 - */ -- (NSArray *)getMessages:(NSArray *)conversationTypes - lines:(NSArray *)lines - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取某类会话信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMessagesV2:(NSArray *)conversationTypes - lines:(NSArray *)lines - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; -/** - 获取某类会话信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param messageStatus 消息状态 - @param fromIndex 起始index - @param count 总数 - @param user 对话用户 - @return 消息实体 - */ -- (NSArray *)getMessages:(NSArray *)conversationTypes - lines:(NSArray *)lines - messageStatus:(NSArray *)messageStatus - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取某类会话信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param messageStatus 消息状态 - @param fromIndex 起始index - @param count 总数 - @param user 对话用户 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMessagesV2:(NSArray *)conversationTypes - lines:(NSArray *)lines - messageStatus:(NSArray *)messageStatus - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)user - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取消息 - @discuss 获取从fromTime起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param contentTypes 消息类型 - @param fromTime 起始index - @param count 总数 - @return 消息实体 - */ -- (NSArray *)getMessages:(WFCCConversation *)conversation - contentTypes:(NSArray *)contentTypes - fromTime:(NSUInteger)fromTime - count:(NSInteger)count - withUser:(NSString *)user DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取消息 - @discuss 获取从fromTime起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param conversation 会话 - @param contentTypes 消息类型 - @param fromTime 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMessagesV2:(WFCCConversation *)conversation - contentTypes:(NSArray *)contentTypes - fromTime:(NSUInteger)fromTime - count:(NSInteger)count - withUser:(NSString *)user - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取用户会话消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param userId 用户ID - @param conversation 会话 - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @return 消息实体 - */ -- (NSArray *)getUserMessages:(NSString *)userId - conversation:(WFCCConversation *)conversation - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取用户会话消息 - @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。 - - @param userId 用户ID - @param conversation 会话 - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getUserMessagesV2:(NSString *)userId - conversation:(WFCCConversation *)conversation - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取用户某类会话信息 - - @param userId 用户ID - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @return 消息实体 - */ -- (NSArray *)getUserMessages:(NSString *)userId - conversationTypes:(NSArray *)conversationTypes - lines:(NSArray *)lines - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count DEPRECATED_MSG_ATTRIBUTE("use v2 API instead"); - -/** - 获取用户某类会话信息 - - @param userId 用户ID - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param contentTypes 消息类型 - @param fromIndex 起始index - @param count 总数 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getUserMessagesV2:(NSString *)userId - conversationTypes:(NSArray *)conversationTypes - lines:(NSArray *)lines - contentTypes:(NSArray *)contentTypes - from:(NSUInteger)fromIndex - count:(NSInteger)count - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取服务器消息 - @discussion 获取得到的消息数目有可能少于指定的count数,如果count不为0就意味着还有更多的消息可以获取,只有获取到的消息数为0才表示没有更多的消息了。 - - @param conversation 会话 - @param beforeMessageUid 起始index - @param count 总数 - @param successBlock 返回消息 - @param errorBlock 返回错误码 - */ -- (void)getRemoteMessages:(WFCCConversation *)conversation - before:(long long)beforeMessageUid - count:(NSUInteger)count - contentTypes:(NSArray *)contentTypes - success:(void(^)(NSArray *messages))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取一条远端消息,消息不会存储在数据库中 - - @param messageUid 消息ID - @param successBlock 返回消息 - @param errorBlock 返回错误码 - */ -- (void)getRemoteMessage:(long long)messageUid - success:(void(^)(WFCCMessage *message))successBlock - error:(void(^)(int error_code))errorBlock; -/** - 获取消息 - - @param messageId 消息ID - @return 消息实体 - */ -- (WFCCMessage *)getMessage:(long)messageId; - -/** - 获取消息 - - @param messageUid 消息UID - @return 消息实体 - */ -- (WFCCMessage *)getMessageByUid:(long long)messageUid; - -/** - 搜索消息 - - @param conversation 会话,如果为空将搜索所有会话 - @param keyword 关键词 - @param desc order - @param limit limit - @param offset offset - @param withUser 用户ID - @return 命中的消息 - */ -- (NSArray *)searchMessage:(WFCCConversation *)conversation - keyword:(NSString *)keyword - order:(BOOL)desc - limit:(int)limit - offset:(int)offset - withUser:(NSString *)withUser; - -/** - 搜索消息 - - @param conversation 会话,如果为空将搜索所有会话 - @param keyword 关键词 - @param contentTypes 过滤的消息类型 - @param desc order - @param offset offset - @param limit limit - @param withUser 用户ID - @return 命中的消息 - */ -- (NSArray *)searchMessage:(WFCCConversation *)conversation - keyword:(NSString *)keyword - contentTypes:(NSArray *)contentTypes - order:(BOOL)desc - limit:(int)limit - offset:(int)offset - withUser:(NSString *)withUser; - -/** - 搜索消息 - - @param conversation 会话,如果为空将搜索所有会话 - @param keyword 关键词 - @param contentTypes 过滤的消息类型 - @param startTime 消息的开始时间,单位为毫秒,如果不需要开始时间请用0。 - @param endTime 消息的结束时间,单位为毫秒,如果不需要结束时间请用0.。 - @param desc order - @param offset offset - @param limit limit - @param withUser 用户ID - @return 命中的消息 - */ -- (NSArray *)searchMessage:(WFCCConversation *)conversation - keyword:(NSString *)keyword - contentTypes:(NSArray *)contentTypes - startTime:(int64_t)startTime - endTime:(int64_t)endTime - order:(BOOL)desc - limit:(int)limit - offset:(int)offset - withUser:(NSString *)withUser; - -/** - 搜索提醒消息 - - @param conversation 会话,如果为空将搜索所有会话 - @param keyword 关键词 - @param desc order - @param offset offset - @param limit limit - @return 命中的消息 - */ -- (NSArray *)searchMentionedMessages:(WFCCConversation *)conversation - keyword:(NSString *)keyword - order:(BOOL)desc - limit:(int)limit - offset:(int)offset; - -/** - 获取某类会话信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param contentTypes 消息类型 - @param keyword 关键字 - @param fromIndex 起始index - @param count 总数 - @param withUser 用户ID - @return 消息实体 - */ -- (NSArray *)searchMessage:(NSArray *)conversationTypes - lines:(NSArray *)lines - contentTypes:(NSArray *)contentTypes - keyword:(NSString *)keyword - from:(NSUInteger)fromIndex - count:(NSInteger)count - withUser:(NSString *)withUser; - -/** - 获取某类会话提醒信息 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @param keyword 关键字 - @param desc order - @param offset offset - @param limit limit - @return 消息实体 - */ -- (NSArray *)searchMentionedMessage:(NSArray *)conversationTypes - lines:(NSArray *)lines - keyword:(NSString *)keyword - order:(BOOL)desc - limit:(int)limit - offset:(int)offset; -/** - 发送消息 - - @param conversation 会话 - @param content 消息内容 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)send:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - success:(void(^)(long long messageUid, long long timestamp))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送媒体消息 - - @param conversation 会话 - @param content 消息内容 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)sendMedia:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - success:(void(^)(long long messageUid, long long timestamp))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送消息 - - @param conversation 会话 - @param content 消息内容 - @param expireDuration 消息的有效期,0不限期,单位秒 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)send:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - expireDuration:(int)expireDuration - success:(void(^)(long long messageUid, long long timestamp))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送消息 - - @param conversation 会话 - @param content 消息内容 - @param toUsers 在会话中只发给该用户,如果为空则发到会话中 - @param expireDuration 消息的有效期,0不限期,单位秒 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)send:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - toUsers:(NSArray *)toUsers - expireDuration:(int)expireDuration - success:(void(^)(long long messageUid, long long timestamp))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送媒体消息 - - @param conversation 会话 - @param content 消息内容 - @param expireDuration 消息的有效期,0不限期,单位秒 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)sendMedia:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - expireDuration:(int)expireDuration - success:(void(^)(long long messageUid, long long timestamp))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - error:(void(^)(int error_code))errorBlock; - - -/** - 发送媒体消息 - - @param conversation 会话 - @param content 消息内容 - @param toUsers 在会话中只发给该用户,如果为空则发到会话中 - @param expireDuration 消息的有效期,0不限期,单位秒 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)sendMedia:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - toUsers:(NSArray *)toUsers - expireDuration:(int)expireDuration - success:(void(^)(long long messageUid, long long timestamp))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送媒体消息 - - @param conversation 会话 - @param content 消息内容 - @param toUsers 在会话中只发给该用户,如果为空则发到会话中 - @param expireDuration 消息的有效期,0不限期,单位秒 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param mediaUploadedBlock 上传成功的回调 - @param errorBlock 失败的回调 - @return 消息实体 - */ -- (WFCCMessage *)sendMedia:(WFCCConversation *)conversation - content:(WFCCMessageContent *)content - toUsers:(NSArray *)toUsers - expireDuration:(int)expireDuration - success:(void(^)(long long messageUid, long long timestamp))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - mediaUploaded:(void(^)(NSString *remoteUrl))mediaUploadedBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送已保存消息,消息状态必须是发送中或者发送失败 - - @param message 已经存储在本地待发送的消息 - @param expireDuration 消息的有效期,0不限期,单位秒 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - @return 协议栈是否可以发送 - */ -- (BOOL)sendSavedMessage:(WFCCMessage *)message - expireDuration:(int)expireDuration - success:(void(^)(long long messageUid, long long timestamp))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 取消发送消息,只有发送媒体类消息才可以取消 - - @param messageId 消息Id - @return 是否取消成功 - */ -- (BOOL)cancelSendingMessage:(long)messageId; -/** - 撤回消息 - - @param message 待撤回的消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - @discuss 服务器不检查可撤回时间,应用逻辑来处理。 - */ -- (void)recall:(WFCCMessage *)message - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 上传媒体(图片、语音、文件等)数据 - - @param fileName 文件名,可为空 - @param mediaData 媒体信息 - @param mediaType 媒体类型 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param errorBlock 失败的回调 - */ -- (void)uploadMedia:(NSString *)fileName - mediaData:(NSData *)mediaData - mediaType:(WFCCMediaType)mediaType - success:(void(^)(NSString *remoteUrl))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - error:(void(^)(int error_code))errorBlock; - -/** - 上传媒体(图片、语音、文件等)文件 - - @param filePath 文件名,可为空 - @param mediaType 媒体类型 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param errorBlock 失败的回调 - */ -- (void)uploadMediaFile:(NSString *)filePath - mediaType:(WFCCMediaType)mediaType - success:(void(^)(NSString *remoteUrl))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - error:(void(^)(int error_code))errorBlock; - -/** - 同步上传媒体(图片、语音、文件等),成功或者失败之后才会返回 - - @param fileName 文件名,可为空 - @param mediaData 媒体信息 - @param mediaType 媒体类型 - @param successBlock 成功的回调 - @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调 - @param errorBlock 失败的回调 - - @return 是否上传成功 - */ -- (BOOL)syncUploadMedia:(NSString *)fileName - mediaData:(NSData *)mediaData - mediaType:(WFCCMediaType)mediaType - success:(void(^)(NSString *remoteUrl))successBlock - progress:(void(^)(long uploaded, long total))progressBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取上传接口,用来上传大文件。只有专业版才支持,使用前先调用isSupportBigFilesUpload检查是否支持 - - @param fileName 文件名 - @param mediaType 媒体类型 - @param contentType Http的ContentType header,为空时默认为"application/octet-stream" - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getUploadUrl:(NSString *)fileName - mediaType:(WFCCMediaType)mediaType - contentType:(NSString *)contentType - success:(void(^)(NSString *uploadUrl, NSString *downloadUrl, NSString *backupUploadUrl, int type))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 是否支持大文件上传 - - @return YES支持大文件上传,调用getUploadUrl:getUploadUrl:success:error:方法获取到上传url,然后再在应用层上传。 - */ -- (BOOL)isSupportBigFilesUpload; - -/** - 删除本地消息 - - @param messageId 消息ID - @return 是否删除成功 - */ -- (BOOL)deleteMessage:(long)messageId; - - -/** - 批量删除本地消息 - - @param messageUids 消息UID列表 - @return 是否删除成功 - */ -- (BOOL)batchDeleteMessages:(NSArray *)messageUids; - -/** - 删除远端消息,仅专业版支持。 - - @param messageUid 消息UID - @param successBlock 删除成功 - @param errorBlock 删除失败 - */ -- (void)deleteRemoteMessage:(long long)messageUid - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 更新远端消息,仅专业版支持。 - - @discussion 客户端仅能更新自己发送的消息,更新的消息类型不能变,更新的消息类型是服务配置允许更新的内容。Server API更新则没有限制。 - - @param messageUid 消息UID - @param content 更新消息内容 - @param distribute 是否分发到其他客户端 - @param updateLocal 是否更新本地消息内容 - @param successBlock 删除成功 - @param errorBlock 删除失败 - */ -- (void)updateRemoteMessage:(long long)messageUid - content:(WFCCMessageContent *)content - distribute:(BOOL)distribute - updateLocal:(BOOL)updateLocal - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 删除会话中的消息 - - @param conversation 会话 - */ -- (void)clearMessages:(WFCCConversation *)conversation; - -/** - 删除会话中的before之前的旧消息。 - - @param conversation 会话,如果conversation为nil,则清除所有会话的消息。 - @param before 时间点,单位是毫秒 - */ -- (void)clearMessages:(WFCCConversation *)conversation before:(int64_t)before; - -/** - 删除会话中的消息,只保留最近指定条数的消息。 - - @param conversation 会话,如果conversation为nil,则清除所有会话的消息。 - @param keepCount 保留的条数 - */ -- (void)clearMessages:(WFCCConversation *)conversation keepLatest:(int)keepCount; - -/** - 删除指定用户指定时间段的消息 - - @param userId 指定用户 - @param start 消息开始时间,如果为0忽略开始时间 - @param end 消息结束时间,如果为0忽略结束时间 - */ -- (void)clearMessages:(NSString *)userId start:(int64_t)start end:(int64_t)end; - -/** - 删除所有消息。 - - @param removeConversation 是否同时删除会话信息 - */ -- (void)clearAllMessages:(BOOL)removeConversation; - -/** - 注册自定义消息类型 - - @param contentClass 自定义消息 - */ -- (void)registerMessageContent:(Class)contentClass; - -/** - 注册自定义消息flag。此方法仅供给uniapp使用。 - - @param contentType 自定义消息类型 - @param contentFlag 自定义消息flag - */ -- (void)registerMessageFlag:(int)contentType flag:(int)contentFlag; - -/** - 消息解码 - - @param payload 消息Payload - @return 消息内容 - */ -- (WFCCMessageContent *)messageContentFromPayload:(WFCCMessagePayload *)payload; - - -/** - 插入消息 - - @param conversation 会话 - @param content 消息内容 - @param status 消息状态,注意消息状态会影响消息方向 - @param serverTime 时间,0为当前时间 - @return 消息实体 - */ -- (WFCCMessage *)insert:(WFCCConversation *)conversation - sender:(NSString *)sender - content:(WFCCMessageContent *)content - status:(WFCCMessageStatus)status - notify:(BOOL)notify - toUsers:(NSArray *)toUsers - serverTime:(long long)serverTime; - -/** - 更新消息内容。只更新本地消息内容,无法更新服务器和远端。不支持聊天室消息,因为聊天室消息本地不存储。 - - @param messageId 消息ID - @param content 消息内容 - */ -- (void)updateMessage:(long)messageId - content:(WFCCMessageContent *)content; - -/** - 更新消息内容及时间。只更新本地消息内容,无法更新服务器和远端。不支持聊天室消息,因为聊天室消息本地不存储。 - - @param messageId 消息ID - @param content 消息内容 - @param timestamp 消息时间戳 - */ -- (void)updateMessage:(long)messageId - content:(WFCCMessageContent *)content - timestamp:(long long)timestamp; - -/** -更新消息状态,需要确保状态跟消息的方向相对应。一般情况下协议栈会自动处理好,不建议客户手动操作状态。。只更新本地消息内容,无法更新服务器和远端。 - -@param messageId 消息ID -@param status 消息状态 - -@return YES 更新成功。NO 消息不存在,或者状态与消息方向不匹配 -*/ -- (BOOL)updateMessage:(long)messageId status:(WFCCMessageStatus)status; - -/** - 插入消息。只插入到本地,无法更新服务器和远端。 - - @param message 待插入的消息 - @return 插入消息的id - */ -- (long)insertMessage:(WFCCMessage *)message; - -/** - 获取会话的消息数 - - @param conversation 会话。 - @return 会话的消息数。 - */ -- (int)getMessageCount:(WFCCConversation *)conversation; - -/** - 获取会话消息数量 - - @param conversationTypes 会话类型 - @param lines 默认传 @[@(0)] - @return 会话信息 - */ -- (int)getConversationMessageCount:(NSArray *)conversationTypes - lines:(NSArray *)lines; -#pragma mark - 用户相关 -/** - 获取用户信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的单聊会话中时或者此人的用户信息页面使用一次true。 - - @param userId 用户ID - @param refresh 是否强制从服务器更新,如果本地没有或者强制,会从服务器刷新,然后发出通知kUserInfoUpdated。 - @return 本地的用户信息,可能为空 - */ -- (WFCCUserInfo *)getUserInfo:(NSString *)userId - refresh:(BOOL)refresh; - -/** - 获取用户信息 - @discussion 获取用户信息,如果在群中有群昵称也一并返回 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的单聊会话中时或者此人的用户信息页面使用一次true。 - - @param userId 用户ID - @param groupId 群组ID - @param refresh 是否强制从服务器更新,如果本地没有或者强制,会从服务器刷新,然后发出通知kUserInfoUpdated。 - @return 本地的用户信息,可能为空 - */ -- (WFCCUserInfo *)getUserInfo:(NSString *)userId inGroup:(NSString *)groupId refresh:(BOOL)refresh; - -/** - 批量获取用户信息 - - @param userIds 用户ID列表 - @param groupId 群组ID - @return 本地的用户信息列表。本地不存在的用户会返回只有id的用户信息,同时会拉取。 - */ -- (NSArray *)getUserInfos:(NSArray *)userIds inGroup:(NSString *)groupId; - -/** - 搜索用户 - - @param keyword 关键词 - @param searchType 搜索类型 - @param page page - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)searchUser:(NSString *)keyword - searchType:(WFCCSearchUserType)searchType - page:(int)page - success:(void(^)(NSArray *machedUsers))successBlock - error:(void(^)(int errorCode))errorBlock; - -/** - 搜索用户 - - @param keyword 关键词 - @param domainId 域ID - @param searchType 搜索类型 - @param page page - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)searchUser:(NSString *)keyword - domain:(NSString *)domainId - searchType:(WFCCSearchUserType)searchType - page:(int)page - success:(void(^)(NSArray *machedUsers))successBlock - error:(void(^)(int errorCode))errorBlock; - -/** - 搜索用户 - - @param keyword 关键词 - @param domainId 域ID - @param searchType 搜索类型 - @param userType 用户类型 - @param page page - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)searchUser:(NSString *)keyword - domain:(NSString *)domainId - searchType:(WFCCSearchUserType)searchType - userType:(WFCCUserSearchUserType)userType - page:(int)page - success:(void(^)(NSArray *machedUsers))successBlock - error:(void(^)(int errorCode))errorBlock; - -/** - 获取用户信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的单聊会话中时或者此人的用户信息页面使用true - - @param userId 用户ID - @param refresh 是否强制从服务器更新,如果本地没有或者强制,会从服务器刷新,然后发出通知kUserInfoUpdated。 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getUserInfo:(NSString *)userId - refresh:(BOOL)refresh - success:(void(^)(WFCCUserInfo *userInfo))successBlock - error:(void(^)(int errorCode))errorBlock; - -/** - 获取用户信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的单聊会话中时或者此人的用户信息页面使用true - - @param userId 用户ID - @param groupId 群组ID,可以为nil - @param refresh 是否强制从服务器更新,如果本地没有或者强制,会从服务器刷新,然后发出通知kUserInfoUpdated。 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getUserInfo:(NSString *)userId - groupId:(NSString *)groupId - refresh:(BOOL)refresh - success:(void(^)(WFCCUserInfo *userInfo))successBlock - error:(void(^)(int errorCode))errorBlock; - -/** - 批量获取用户信息 - @discussion 当本地有部分或者全部不存在时,会从服务器加载这些缺失的用户信息。 - - @param userIds 用户ID列表 - @param groupId 群组ID,可以为nil - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getUserInfos:(NSArray *)userIds - groupId:(NSString *)groupId - success:(void(^)(NSArray *userInfo))successBlock - error:(void(^)(int errorCode))errorBlock; -#pragma mark - 好友相关 -/** - 查询用户和当前用户是否是好友关系 - - @param userId 用户ID - @return 是否是好友 - */ -- (BOOL)isMyFriend:(NSString *)userId; - -/** - 获取当前用户的好友列表 - - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 好友列表的用户ID - */ -- (NSArray *)getMyFriendList:(BOOL)refresh; - -/** - 获取当前用户的好友列表 - - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 好友列表 - */ -- (NSArray *)getFriendList:(BOOL)refresh; - -/** - 搜索好友 - @param keyword 关键词 - @return 好友用户信息 - */ -- (NSArray *)searchFriends:(NSString *)keyword; - -/** - 搜索群组 - @param keyword 关键词 - @return 群组搜索结果 - */ -- (NSArray *)searchGroups:(NSString *)keyword; - -/** - 获取收到的好友请求 - - @return 好友请求 - */ -- (NSArray *)getIncommingFriendRequest; - -/** - 获取发出的好友请求 - - @return 好友请求 - */ -- (NSArray *)getOutgoingFriendRequest; - -/** - 获取所有的好友请求 - - @return 好友请求 - */ -- (NSArray *)getAllFriendRequest; - -/** - 获取某一条好友请求记录 - @param uerId 对方用户ID - @param direction 0 发送的好友请求;1 收到的好友请求。 - - @return 好友请求 - */ -- (WFCCFriendRequest *)getFriendRequest:(NSString *)uerId direction:(int)direction; - -/** - 清理好友请求 - @param direction 好友请求的方向,0发送;1收到。 - @param beforeTime 清理时间之前的请求,单位是毫秒。如果清理所有用0 - - @return 返回true表示清理成功,返回false表示没有符合条件的请求 - */ -- (BOOL)clearFriendRequest:(int)direction beforeTime:(int64_t)beforeTime; - -/** - 删除好友请求 - @param direction 好友请求的方向,0发送;1收到。 - @param userId 用户ID - - @return 返回true表示删除成功,返回false表示找到请求 - */ -- (BOOL)deleteFriendRequest:(NSString *)userId direction:(int)direction; - -/** - 从服务器更新好友请求 - */ -- (void)loadFriendRequestFromRemote; - -/** - 获取未读的好友请求数 - - @return 未读的好友请求数 - */ -- (int)getUnreadFriendRequestStatus; - -/** - 清除好友请求的未读数 - */ -- (void)clearUnreadFriendRequestStatus; - -/** - 删除好友 - - @param userId 用户ID - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)deleteFriend:(NSString *)userId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 发送好友请求 - - @param userId 用户ID - @param reason 请求说明 - @param extra 扩展信息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)sendFriendRequest:(NSString *)userId - reason:(NSString *)reason - extra:(NSString *)extra - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 处理好友请求 - - @param userId 用户ID - @param accpet 是否接受 - @param extra 附加信息,如果接受,附加信息会添加到好友附加信息中 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)handleFriendRequest:(NSString *)userId - accept:(BOOL)accpet - extra:(NSString *)extra - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (NSString *)getFriendAlias:(NSString *)friendId; - -- (void)setFriend:(NSString *)friendId - alias:(NSString *)alias - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (NSString *)getFriendExtra:(NSString *)friendId; -/** - 查询用户是否被加入黑名单 - - @param userId 用户ID - @return 是否被加入黑名单 - */ -- (BOOL)isBlackListed:(NSString *)userId; - -/** - 获取当前用户的黑名单列表 - - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 黑名单列表的用户ID - */ -- (NSArray *)getBlackList:(BOOL)refresh; - -/** - 设置黑名单 - - @param userId 用户ID - @param isBlackListed YES 加入黑名单; NO 取消黑名单 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setBlackList:(NSString *)userId - isBlackListed:(BOOL)isBlackListed - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -#pragma mark - 群相关 -/** - 获取群成员信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的群聊会话详情中时使用一次true。 - - @param groupId 群ID - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 群成员信息列表 - */ -- (NSArray *)getGroupMembers:(NSString *)groupId - forceUpdate:(BOOL)refresh; - -/** - 根据成员类型获取群成员信息 - - @param groupId 群ID - @param memberType 群成员类型 - @return 群成员信息列表 - */ -- (NSArray *)getGroupMembers:(NSString *)groupId - type:(WFCCGroupMemberType)memberType; - -/** - 获取指定数目群成员信息 - - @param groupId 群ID - @param count 群成员类型个数 - @return 群成员信息列表 - */ -- (NSArray *)getGroupMembers:(NSString *)groupId - count:(int)count; -/** - 获取群成员信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的群聊会话详情中时使用一次true。 - - @param groupId 群ID - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getGroupMembers:(NSString *)groupId - refresh:(BOOL)refresh - success:(void(^)(NSString *groupId, NSArray *))successBlock - error:(void(^)(int errorCode))errorBlock; - -/** - 获取群信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的群聊会话中时使用一次true。 - - @param groupId 群ID - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 群信息 - */ -- (WFCCGroupInfo *)getGroupInfo:(NSString *)groupId - refresh:(BOOL)refresh; - -/** - 批量获取群信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的群聊会话中时使用一次true。 - - @param groupIds 群ID列表 - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 群信息 - */ -- (NSArray *)getGroupInfos:(NSArray *)groupIds - refresh:(BOOL)refresh; -/** - 获取群信息 - @discussion refresh 为true会导致一次网络同步,代价特别大,应该尽量避免使用true,仅当在进入此人的群聊会话中时使用一次true。 - - @param groupId 群ID - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getGroupInfo:(NSString *)groupId - refresh:(BOOL)refresh - success:(void(^)(WFCCGroupInfo *groupInfo))successBlock - error:(void(^)(int errorCode))errorBlock; -/** - 获取群成员信息 - - @param groupId 群ID - @param memberId 群成员ID - @return 群成员信息 - */ -- (WFCCGroupMember *)getGroupMember:(NSString *)groupId - memberId:(NSString *)memberId; - -/** - 创建群 - - @param groupId 群ID - @param groupName 群名称 - @param groupPortrait 群头像 - @param groupMembers 群成员 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)createGroup:(NSString *)groupId - name:(NSString *)groupName - portrait:(NSString *)groupPortrait - type:(WFCCGroupType)type - groupExtra:(NSString *)groupExtra - members:(NSArray *)groupMembers - memberExtra:(NSString *)memberExtra - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(NSString *groupId))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 添加群成员 - - @param members 成员的用户ID列表 - @param groupId 群ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)addMembers:(NSArray *)members - toGroup:(NSString *)groupId - memberExtra:(NSString *)memberExtra - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 踢出群成员 - - @param members 成员的用户ID列表 - @param groupId 群ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)kickoffMembers:(NSArray *)members - fromGroup:(NSString *)groupId - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 退群 - - @param groupId 群ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)quitGroup:(NSString *)groupId - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 退群 - - @param groupId 群ID - @param keepMessage 是否保留消息 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)quitGroup:(NSString *)groupId - keepMessage:(BOOL)keepMessage - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 解散群 - - @param groupId 群ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)dismissGroup:(NSString *)groupId - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 修改群信息 - - @param groupId 群ID - @param type 要修改的群属性 - @param newValue 要修改的群属性值 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)modifyGroupInfo:(NSString *)groupId - type:(ModifyGroupInfoType)type - newValue:(NSString *)newValue - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 修改自己的群昵称 - - @param groupId 群ID - @param newAlias 昵称 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)modifyGroupAlias:(NSString *)groupId - alias:(NSString *)newAlias - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 修改群成员的昵称,群主可以修改所有人,群管理员可以修改普通成员的群昵称 - - @param groupId 群ID - @param newAlias 昵称 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)modifyGroupMemberAlias:(NSString *)groupId - memberId:(NSString *)memberId - alias:(NSString *)newAlias - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 修改自己的群成员附加信息 - - @param groupId 群ID - @param extra 附加信息 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)modifyGroupMemberExtra:(NSString *)groupId - extra:(NSString *)extra - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 修改群成员的附加信息,群主可以修改所有人,群管理员可以修改普通成员的附加信息 - - @param groupId 群ID - @param extra 附加信息 - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)modifyGroupMemberExtra:(NSString *)groupId - memberId:(NSString *)memberId - extra:(NSString *)extra - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; -/** - 转移群主 - - @param groupId 群ID - @param newOwner 群主的用户ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)transferGroup:(NSString *)groupId - to:(NSString *)newOwner - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 设置群管理 - - @param groupId 群ID - @param isSet 设置或取消 - @param memberIds 成员ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setGroupManager:(NSString *)groupId - isSet:(BOOL)isSet - memberIds:(NSArray *)memberIds - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 设置群成员禁言,仅专业版支持 - - @param groupId 群ID - @param isSet 设置或取消 - @param memberIds 成员ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)muteGroupMember:(NSString *)groupId - isSet:(BOOL)isSet - memberIds:(NSArray *)memberIds - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 设置群成员允许名单,当设置群全局禁言时,仅群主/群管理/运行名单成员可以发言,仅专业版支持 - - @param groupId 群ID - @param isSet 设置或取消 - @param memberIds 成员ID - @param notifyLines 默认传 @[@(0)] - @param notifyContent 通知消息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)allowGroupMember:(NSString *)groupId - isSet:(BOOL)isSet - memberIds:(NSArray *)memberIds - notifyLines:(NSArray *)notifyLines - notifyContent:(WFCCMessageContent *)notifyContent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取群备注 - - @param groupId 群ID - @return 群备注 - */ -- (NSString *)getGroupRemark:(NSString *)groupId; - -/** - 设置群备注 - - @param groupId 群ID - @param remark 群备注 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setGroup:(NSString *)groupId - remark:(NSString *)remark - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; -/** - 获取当前用户收藏的群组 - - @return 当前用户收藏的群组ID - */ -- (NSArray *)getFavGroups; - -/** - 是否是当前用户收藏的群组 - - @return 是否是当前用户收藏的群组 - */ -- (BOOL)isFavGroup:(NSString *)groupId; - -/** - 设置群组收藏状态 - - @param groupId 群组ID - @param fav 是否收藏 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setFavGroup:(NSString *)groupId fav:(BOOL)fav success:(void(^)(void))successBlock error:(void(^)(int errorCode))errorBlock; -#pragma mark - 个人设置相关 -/** - 获取个人设置 - - @param scope 设置项的scope - @param key 设置项的key - @return 设置值 - */ -- (NSString *)getUserSetting:(UserSettingScope)scope - key:(NSString *)key; - -/** - 获取个人一类设置 - - @param scope 设置项的scope - @return scope对应的所有设置值 - */ -- (NSDictionary *)getUserSettings:(UserSettingScope)scope; - -/** - 设置个人设置项 - - @param scope 设置项的scope - @param key 设置项的key - @param value 值 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setUserSetting:(UserSettingScope)scope - key:(NSString *)key - value:(NSString *)value - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 修改个人信息 - - @param values 信息 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - @discuss 性别属性是int类型,修改时需要转为字符串类型 - */ --(void)modifyMyInfo:(NSDictionary *)values - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - - - -/** -是否全局静音 - -@return YES,当前用户全局静音;NO,没有全局静音 -*/ -- (BOOL)isGlobalSilent; - -/** -修改全局静音状态 - -@param silent 是否静音 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setGlobalSilent:(BOOL)silent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -是否实时音视频通知面打扰。服务器端2021.9.20后支持分别设置通知免打扰和实时音视频免打扰 - -@return YES,当前用户音视频不通知;NO,当前用户音视频通知 -*/ -- (BOOL)isVoipNotificationSilent; - -/** -修改实时音视频通知面打扰。服务器端2021.9.20后支持分别设置通知免打扰和实时音视频免打扰 - -@param silent 是否静音 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setVoipNotificationSilent:(BOOL)silent - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -是否开启草稿同步 - -@return YES,同步;NO,不同步 -*/ -- (BOOL)isEnableSyncDraft; - -/** -修改是否开启草稿同步 - -@param enable 是否同步 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setEnableSyncDraft:(BOOL)enable - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -获取免打扰时间 - - @param resultBlock 免打扰时间回调,时间为UTC 0点开始的分钟数,需要转换成当地时间。 - @param errorBlock 不存在时调用,error_code为-1 -*/ -- (void)getNoDisturbingTimes:(void(^)(int startMins, int endMins))resultBlock - error:(void(^)(int error_code))errorBlock; - -/** -修改免打扰时间 - -@param startMins 起始时间,一天中的分钟数,时间为UTC,需要转换成当地时间。 -@param endMins 结束时间,一天中的分钟数。可以小于startMins,如果小于表示隔夜。 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setNoDisturbingTimes:(int)startMins - endMins:(int)endMins - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -取消免打扰时间 - -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)clearNoDisturbingTimes:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 当前时间是否是免打扰 - */ -- (BOOL)isNoDisturbing; - -/** -是否隐藏推送详情 - -@return YES,隐藏推送详情,提示“您收到一条消息”;NO,推送显示消息摘要 -*/ -- (BOOL)isHiddenNotificationDetail; - -/** -修改全局静音状态 - -@param hidden 是否静音 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setHiddenNotificationDetail:(BOOL)hidden - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -是否隐藏群组会话中群成员昵称显示 - -@return YES,群组会话中不显示群成员昵称;NO,显示 -*/ -- (BOOL)isHiddenGroupMemberName:(NSString *)groupId; - -/** -修改隐藏群组会话中群成员昵称显示状态 - -@param hidden 是否隐藏 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setHiddenGroupMemberName:(BOOL)hidden - group:(NSString *)groupId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取当前用户的所有群组,注意这个方法的代价比较大,不建议高频使用 - - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ --(void)getMyGroups:(void(^)(NSArray *groupIds))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取某个用户的共同群组,注意这个方法的代价比较大,不建议高频使用 - - @param userId 用户ID - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getCommonGroups:(NSString *)userId - success:(void(^)(NSArray *groupIds))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -当前用户是否启用消息回执功能,仅专业版有效 - -@return YES,开启消息回执功能;NO,关闭个人的消息回执功能。 -@disscussion 仅当服务器开启这个功能才有效 -*/ -- (BOOL)isUserEnableReceipt; -/** -修改当前用户是否启用消息回执功能,仅专业版有效 - -@param enable 是否开启 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 - @disscussion 仅当服务器开启这个功能才有效 -*/ -- (void)setUserEnableReceipt:(BOOL)enable - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取当前用户星标用户 - - @return 当前用户星标用户 - */ -- (NSArray *)getFavUsers; - -/** - 是否是星标用户 - - @return 是否是星标用户 - */ -- (BOOL)isFavUser:(NSString *)userId; - -/** - 设置星标用户 - - @param userId 用户ID - @param fav 是否星标 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)setFavUser:(NSString *)userId fav:(BOOL)fav success:(void(^)(void))successBlock error:(void(^)(int errorCode))errorBlock; -#pragma mark - 聊天室相关 -- (void)joinChatroom:(NSString *)chatroomId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)quitChatroom:(NSString *)chatroomId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)getChatroomInfo:(NSString *)chatroomId - upateDt:(long long)updateDt - success:(void(^)(WFCCChatroomInfo *chatroomInfo))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)getChatroomMemberInfo:(NSString *)chatroomId - maxCount:(int)maxCount - success:(void(^)(WFCCChatroomMemberInfo *memberInfo))successBlock - error:(void(^)(int error_code))errorBlock; - -- (NSString *)getJoinedChatroomId; - -#pragma mark - 频道相关 -- (void)createChannel:(NSString *)channelName - portrait:(NSString *)channelPortrait - desc:(NSString *)desc - extra:(NSString *)extra - success:(void(^)(WFCCChannelInfo *channelInfo))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取频道信息 - - @param channelId 频道ID - @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - @return 群信息 - */ -- (WFCCChannelInfo *)getChannelInfo:(NSString *)channelId - refresh:(BOOL)refresh; - -/** - 修改频道信息 - - @param channelId 群ID - @param type 要修改的群属性 - @param newValue 要修改的群属性值 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)modifyChannelInfo:(NSString *)channelId - type:(ModifyChannelInfoType)type - newValue:(NSString *)newValue - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 搜索频道 - - @param keyword 关键词 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)searchChannel:(NSString *)keyword success:(void(^)(NSArray *machedChannels))successBlock error:(void(^)(int errorCode))errorBlock; - -/** - 是否收听频道 - - @param channelId 频道ID - @return YES,收听;NO,未收听 - */ -- (BOOL)isListenedChannel:(NSString *)channelId; - -/** - 收听或者取消收听频道 - - @param channelId 频道ID - @param listen 是否收听 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)listenChannel:(NSString *)channelId listen:(BOOL)listen success:(void(^)(void))successBlock error:(void(^)(int errorCode))errorBlock; - -/** - 获取当前用户创建的频道 - - @return 当前用户创建的频道ID - */ -- (NSArray *)getMyChannels; - -/** - 获取当前用户收听的频道 - - @return 当前用户收听的频道ID - */ -- (NSArray *)getListenedChannels DEPRECATED_MSG_ATTRIBUTE("use getRemoteListenedChannels: instead"); - -/** - 获取当前用户收听的频道 - - @param successBlock 成功返回关注的频道id列表 - @param errorBlock 失败 - */ -- (void)getRemoteListenedChannels:(void(^)(NSArray *))successBlock error:(void(^)(int errorCode))errorBlock; - -/** - 销毁频道 - - @param channelId 频道ID - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)destoryChannel:(NSString *)channelId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - - -#pragma mark - Mesh 接口 -/** - 获取域信息 - - @param domainId 域ID - @param refresh 是否从服务器刷新 - - @return 域信息 - */ -- (WFCCDomainInfo *)getDomainInfo:(NSString *)domainId refresh:(BOOL)refresh; -/** - 获取所有的域 - - @param successBlock 成功回调 - @param errorBlock 错误回调 - */ -- (void)getRemoteDomains:(void (^)(NSArray *))successBlock error:(void (^)(int))errorBlock; - -#pragma mark - Secret Chat 接口 -/** - 发起密聊 - - @param userId 对方用户ID - @param successBlock 成功的回调,回调返回密聊ID - @param errorBlock 失败的回调 - */ -- (void)createSecretChat:(NSString *)userId - success:(void(^)(NSString *targetId, int line))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 销毁密聊 - - @param targetId 密聊ID - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)destroySecretChat:(NSString *)targetId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取密聊用户ID - - @param targetId 密聊ID - @return 密聊对方用户ID - */ -- (WFCCSecretChatInfo *)getSecretChatInfo:(NSString *)targetId; - -/** - 解密密聊会话中加密的媒体数据 - - @param targetId 密聊会话 - @param encryptData 密聊中的加密过的媒体数据,需要下载下来本地保存。 - - @return 解密过的数据,注意只放到内存中,不要保存。 - */ -- (NSData *)decodeSecretChat:(NSString *)targetId mediaData:(NSData *)encryptData; - -/** - 设置密聊会话阅后即焚时间 - - @param targetId 密聊会话 - @param millisecond 时间 - */ -- (void)setSecretChat:(NSString *)targetId burnTime:(int)millisecond; - - -/** - 当前系统是否支持密聊。 - - @return t是否支持密聊 - */ -- (BOOL)isEnableSecretChat; - -/** -当前用户是否启用密聊 - -@return YES,开启密聊功能;NO,关闭密聊功能。 -@disscussion 仅影响密聊的创建,已经创建的密聊不受影响 -*/ -- (BOOL)isUserEnableSecretChat; -/** -修改当前用户是否启用密聊功能 - -@param enable 是否开启 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -@disscussion 仅影响密聊的创建,已经创建的密聊不受影响 -*/ -- (void)setUserEnableSecretChat:(BOOL)enable - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -当前用户是否开启添加好友需要验证,默认为开启 - -@return YES,需要验证;NO,不需验证 -*/ -- (BOOL)isAddFriendNeedVerify; -/** -修改当前用户是否开启添加好友需要验证功能 - -@param enable 是否开启 -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)setAddFriendNeedVerify:(BOOL)enable - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; -#pragma mark - 其它接口 -/** -获取PC在线信息 - -@return PC端在线状态 -*/ -- (NSArray *)getPCOnlineInfos; - -/** -踢掉PC或者Web - -@param pcClientId PC或Web端的clientId -@param successBlock 成功的回调 -@param errorBlock 失败的回调 -*/ -- (void)kickoffPCClient:(NSString *)pcClientId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - PC/Web在线时,是否停止通知 - - @return 是否停止通知 - */ -- (BOOL)isMuteNotificationWhenPcOnline; - -/** - 设置PC/Web在线时,手机是否默认静音。缺省值为YES,只有在IM服务配置server.mobile_default_silent_when_pc_online 为false时,才需要调用此函数设置为NO,此时静音状态意义翻转。其它请求千万不要调用此函数,否则会引起状态错乱。 - 设置当PC在线时是否通知的方法是 muteNotificationWhenPcOnline:success:error - - @param defaultSilent 缺省值是否为静音。 - */ -- (void)setDefaultSilentWhenPcOnline:(BOOL)defaultSilent; - -/** - 设置PC/Web在线时,是否发送通知 - - @param isMute 是否通知 - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)muteNotificationWhenPcOnline:(BOOL)isMute - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取会话文件。conversation不为空时,获取该会话内的文件记录;当conversation为空时,获取用户收到的所有文件记录。 - - @param conversation 会话 - @param fromUser 该用户发送的文件,如果为空返回所有文件 - @param messageUid 起始记录的UID - @param order 文件列表排序 - @param count count - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getConversationFiles:(WFCCConversation *)conversation - fromUser:(NSString *)fromUser - beforeMessageUid:(long long)messageUid - order:(WFCCFileRecordOrder)order - count:(int)count - success:(void(^)(NSArray *files))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 获取当前用户发送的文件。 - - @param beforeMessageUid 起始记录的UID - @param order 文件列表排序 - @param count count - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)getMyFiles:(long long)beforeMessageUid - order:(WFCCFileRecordOrder)order - count:(int)count - success:(void(^)(NSArray *files))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 删除文件记录。发送者可以删除,另外如果在群里,群主和管理员也可以删除。 - - @param messageUid 起始记录的UID - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)deleteFileRecord:(long long)messageUid - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 搜索文件。conversation不为空时,搜索该会话内的文件记录;当conversation为空时,搜索用户收到的所有文件记录。 - - @param keyword 关键字 - @param conversation 会话 - @param fromUser 该用户发送的文件,如果为空返回所有文件 - @param messageUid 起始记录的UID - @param order 文件列表排序 - @param count count - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)searchFiles:(NSString *)keyword - conversation:(WFCCConversation *)conversation - fromUser:(NSString *)fromUser - beforeMessageUid:(long long)messageUid - order:(WFCCFileRecordOrder)order - count:(int)count - success:(void(^)(NSArray *files))successBlock - error:(void(^)(int error_code))errorBlock; - -/** - 搜索当前用户发送的文件。 - - @param keyword 关键字 - @param beforeMessageUid 起始记录的UID - @param order 文件列表排序 - @param count count - @param successBlock 成功的回调 - @param errorBlock 失败的回调 - */ -- (void)searchMyFiles:(NSString *)keyword - beforeMessageUid:(long long)beforeMessageUid - order:(WFCCFileRecordOrder)order - count:(int)count - success:(void(^)(NSArray *files))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -获取媒体文件授权访问地址 - -@param messageUid 消息Uid -@param mediaType 媒体类型 -@param mediaPath 媒体Path -@param successBlock 成功的回调,backupAuthorizedUrl仅当支持双网环境才有意义 -@param errorBlock 失败的回调 -*/ -- (void)getAuthorizedMediaUrl:(long long)messageUid - mediaType:(WFCCMediaType)mediaType - mediaPath:(NSString *)mediaPath - success:(void(^)(NSString *authorizedUrl, NSString *backupAuthorizedUrl))successBlock - error:(void(^)(int error_code))errorBlock; - - -/** -获取应用的auth code,用于应用的免密登录 - */ -- (void)getAuthCode:(NSString *)applicationId - type:(int)type - host:(NSString *)host - success:(void(^)(NSString *authCode))successBlock - error:(void(^)(int error_code))errorBlock; - -/** -config应用 - */ -- (void)configApplication:(NSString *)applicationId - type:(int)type - timestamp:(int64_t)timestamp - nonce:(NSString *)nonce - signature:(NSString *)signature - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; -/** -amr文件转成wav数据 - -@param amrPath amr文件路径 -@return wav数据 -*/ -- (NSData *)getWavData:(NSString *)amrPath; - -/** - 获取图片缩略图参数 - - @return 图片缩略图参数 - */ -- (NSString *)imageThumbPara; - - -/** - 开启数据库事务。注意:该方法仅仅在做数据迁移时使用,其它情况不要使用;另外开启成功后一定要注意commit,需要配对使用. - - @return 是否开启成功。 - */ -- (BOOL)beginTransaction; - -/** -提交数据库事务。注意:该方法仅仅在做数据迁移时使用,其它情况不要使用;需要跟beginTransaction配对使用 - -*/ -- (BOOL)commitTransaction; - -/** -回滚数据库事务。注意:该方法仅仅在做数据迁移时使用,其它情况不要使用;需要跟beginTransaction配对使用 - -*/ -- (BOOL)rollbackTransaction; - -/** - 是否是商业版IM服务。 - */ -- (BOOL)isCommercialServer; - -/** -是否支持已阅读报告 -*/ -- (BOOL)isReceiptEnabled; - -/** -群组是否支持已阅读报告 -*/ -- (BOOL)isGroupReceiptEnabled; - -/* - 是否应用关闭草稿同步功能 - */ -- (BOOL)isGlobalDisableSyncDraft; - -/* - 是否应用开启了Mesh功能 - */ -- (BOOL)isMeshEnabled; - -/* - 获取用户的在线状态 - */ -- (WFCCUserOnlineState *)getUserOnlineState:(NSString *)userId; - -- (WFCCUserCustomState *)getMyCustomState; - -- (void)setMyCustomState:(WFCCUserCustomState *)state - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)watchOnlineState:(WFCCConversationType)conversationType - targets:(NSArray *)targets - duration:(int)watchDuration - success:(void(^)(NSArray *states))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)unwatchOnlineState:(WFCCConversationType)conversationType - targets:(NSArray *)targets - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (BOOL)isEnableUserOnlineState; - -/* - 音视频会议相关 - */ -- (void)sendConferenceRequest:(long long)sessionId - room:(NSString *)roomId - request:(NSString *)request - data:(NSString *)data - success:(void(^)(NSString *authorizedUrl))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)sendConferenceRequest:(long long)sessionId - room:(NSString *)roomId - request:(NSString *)request - advanced:(BOOL)advanced - data:(NSString *)data - success:(void(^)(NSString *authorizedUrl))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)requireLock:(NSString *)lockId - duration:(NSUInteger)duration - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)releaseLock:(NSString *)lockId - success:(void(^)(void))successBlock - error:(void(^)(int error_code))errorBlock; - -- (void)postMomentsRequest:(NSString *)path data:(NSData *)data success:(void(^)(NSData *responseData))successBlock error:(void(^)(int error_code))errorBlock; -//内部调用,请勿使用 -- (void)putUseOnlineStates:(NSArray *)states; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCImageMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCImageMessageContent.h deleted file mode 100644 index 0f8f998f..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCImageMessageContent.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// WFCCImageMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/2. -// Copyright © 2017年 wildfire chat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" -#import - -/** - 图片消息 - */ -@interface WFCCImageMessageContent : WFCCMediaMessageContent - -/** - 构造方法,会把Image存储到path中。 - - @param image 图片 - @param path 图片存储路径 - - @return 图片消息 - */ -+ (instancetype)contentFrom:(UIImage *)image cachePath:(NSString *)path; - -/** - 构造方法,会把Image存储到path中。 - - @param image 图片 - @param path 图片存储路径 - @param fullImage 是否发送原图 - - @return 图片消息 - */ -+ (instancetype)contentFrom:(UIImage *)image cachePath:(NSString *)path fullImage:(BOOL)fullImage; - -/** - 缩略图,自动生成 - */ -@property (nonatomic, strong)UIImage *thumbnail; - -/** - 图片尺寸 - */ -@property (nonatomic, assign)CGSize size; - -/** - 图片缩略图参数 - */ -@property (nonatomic, strong)NSString *thumbParameter; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCJoinCallRequestMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCJoinCallRequestMessageContent.h deleted file mode 100644 index 3fad1dcd..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCJoinCallRequestMessageContent.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// WFCCJoinCallRequestMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 通话正在进行消息 - */ -@interface WFCCJoinCallRequestMessageContent : WFCCMessageContent -@property (nonatomic, strong)NSString *callId; -@property (nonatomic, strong)NSString *clientId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCJsonSerializer.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCJsonSerializer.h deleted file mode 100644 index 388dcaba..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCJsonSerializer.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// WFCCJsonSerializer.h -// WFChatClient -// -// Created by Rain on 2022/5/31. -// Copyright © 2022 WildFireChat. All rights reserved. -// - -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface WFCCJsonSerializer : NSObject -//子类需要实现此方法 -- (id)toJsonObj; - -//子类不要实现此方法 -- (NSString *)toJsonStr; -- (void)setDict:(NSMutableDictionary *)dict key:(NSString *)key longlongValue:(long long)longValue; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCKickoffGroupMemberNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCKickoffGroupMemberNotificationContent.h deleted file mode 100644 index 78e3d2f6..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCKickoffGroupMemberNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCKickoffGroupMemberNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群组踢人的通知消息 - */ -@interface WFCCKickoffGroupMemberNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 被踢成员的ID列表 - */ -@property (nonatomic, strong)NSArray *kickedMembers; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCKickoffGroupMemberVisibleNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCKickoffGroupMemberVisibleNotificationContent.h deleted file mode 100644 index 620230f0..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCKickoffGroupMemberVisibleNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCKickoffGroupMemberNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群组踢人的通知消息 - */ -@interface WFCCKickoffGroupMemberVisibleNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 被踢成员的ID列表 - */ -@property (nonatomic, strong)NSArray *kickedMembers; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCLeaveChannelChatMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCLeaveChannelChatMessageContent.h deleted file mode 100644 index b4784d5b..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCLeaveChannelChatMessageContent.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// WFCCLeaveChannelChatMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - - -/** - 进入频道会话消息 - */ -@interface WFCCLeaveChannelChatMessageContent : WFCCMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCLinkMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCLinkMessageContent.h deleted file mode 100644 index 5c162235..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCLinkMessageContent.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// WFCCLinkMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 链接消息 - */ -@interface WFCCLinkMessageContent : WFCCMessageContent - -/** - 链接标题 - */ -@property (nonatomic, strong)NSString *title; - -/** - 内容摘要 - */ -@property (nonatomic, strong)NSString *contentDigest; - -/** - 链接地址 - */ -@property (nonatomic, strong)NSString *url; - -/** - 链接图片地址 - */ -@property (nonatomic, strong)NSString *thumbnailUrl; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCLocationMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCLocationMessageContent.h deleted file mode 100644 index 26451cd3..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCLocationMessageContent.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// WFCCTextMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" -#import -#import - -/** - 位置消息 - */ -@interface WFCCLocationMessageContent : WFCCMessageContent - -/** - 构造消息 - - @param coordinate 坐标值 - @param title 位置信息 - @param thumbnail 缩略图 - @return 位置消息 - */ -+ (instancetype)contentWith:(CLLocationCoordinate2D) coordinate - title:(NSString *)title - thumbnail:(UIImage *)thumbnail; - -/** - 位置坐标 - */ -@property (nonatomic, assign)CLLocationCoordinate2D coordinate; - -/** - 位置信息 - */ -@property (nonatomic, strong)NSString *title; - -/** - 缩略图 - */ -@property (nonatomic, strong)UIImage *thumbnail; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCMediaMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCMediaMessageContent.h deleted file mode 100644 index 9b419bc9..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCMediaMessageContent.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// WFCCMediaMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/6. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 媒体消息 - */ -@interface WFCCMediaMessageContent : WFCCMessageContent - -/** - 媒体内容的本地存储路径 - */ -@property (nonatomic, strong)NSString *localPath; - -/** - 媒体内容的服务器路径 - */ -@property (nonatomic, strong)NSString *remoteUrl; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCMessage.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCMessage.h deleted file mode 100644 index 0c60ddd9..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCMessage.h +++ /dev/null @@ -1,103 +0,0 @@ -// -// WFCCMessage.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCConversation.h" -#import "WFCCMessageContent.h" -#import "WFCCJsonSerializer.h" -#import "WFCCProtocol.h" -/** - 消息方向 - - - MessageDirection_Send: 发送 - - MessageDirection_Receive: 接收 - */ -typedef NS_ENUM(NSInteger, WFCCMessageDirection) { - MessageDirection_Send, - MessageDirection_Receive -}; - -/** - 消息状态 - - - Message_Status_Sending: 发送中 - - Message_Status_Sent: 发送成功 - - Message_Status_Send_Failure: 发送失败 - - Message_Status_Unread: 未读 - - Message_Status_Readed: 已读 - - Message_Status_Played: 已播放(媒体消息) - */ -typedef NS_ENUM(NSInteger, WFCCMessageStatus) { - Message_Status_Sending, - Message_Status_Sent, - Message_Status_Send_Failure, - Message_Status_Mentioned, - Message_Status_AllMentioned, - Message_Status_Unread, - Message_Status_Readed, - Message_Status_Played -}; - -/** - 消息实体 - */ -@interface WFCCMessage : WFCCJsonSerializer - -/** - 消息ID,当前用户本地唯一 - */ -@property (nonatomic, assign)long messageId; - -/** - 消息UID,所有用户全局唯一 - */ -@property (nonatomic, assign)long long messageUid; - -/** - 消息所属的会话 - */ -@property (nonatomic, strong)WFCCConversation *conversation; - -/** - 消息发送者的用户ID - */ -@property (nonatomic, strong)NSString * fromUser; - -/** - 消息在会话中定向发送给该用户的 - */ -@property (nonatomic, strong)NSArray *toUsers; - -/** - 消息内容 - */ -@property (nonatomic, strong)WFCCMessageContent *content; - -/** - 消息方向 - */ -@property (nonatomic, assign)WFCCMessageDirection direction; - -/** - 消息状态 - */ -@property (nonatomic, assign)WFCCMessageStatus status; - -/** - 消息的发送时间 - */ -@property (nonatomic, assign)long long serverTime; - -/** - 消息本地附加信息 - */ -@property (nonatomic, strong)NSString * localExtra; - -- (NSString *)digest; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCMessageContent.h deleted file mode 100644 index 242fd434..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCMessageContent.h +++ /dev/null @@ -1,193 +0,0 @@ -// -// WFCCMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/15. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" -/** - 媒体类型 - - - Media_Type_GENERAL: 一般 - - Media_Type_IMAGE: 图片 - - Media_Type_VOICE: 语音 - - Media_Type_VIDEO: 视频 - - Media_Type_File: 文件 - - Media_Type_PORTRAIT: 头像 - - Media_Type_FAVORITE: 收藏 - - Media_Type_STICKER:动态表情 - - Media_Type_MOMENTS:朋友圈 - */ -typedef NS_ENUM(NSInteger, WFCCMediaType) { - Media_Type_GENERAL = 0, - Media_Type_IMAGE = 1, - Media_Type_VOICE = 2, - Media_Type_VIDEO = 3, - Media_Type_FILE = 4, - Media_Type_PORTRAIT = 5, - Media_Type_FAVORITE = 6, - Media_Type_STICKER = 7, - Media_Type_MOMENTS = 8 -}; - - -/** - 消息存储类型 - - - NOT_PERSIST: 本地不存储 - - PERSIST: 本地存储 - - PERSIST_AND_COUNT: 本地存储,并计入未读计数 - - TRANSPARENT: 透传消息,不多端同步,如果对端不在线,消息会丢弃 - */ -typedef NS_ENUM(NSInteger, WFCCPersistFlag) { - WFCCPersistFlag_NOT_PERSIST = 0, - WFCCPersistFlag_PERSIST = 1, - WFCCPersistFlag_PERSIST_AND_COUNT = 3, - WFCCPersistFlag_TRANSPARENT = 4, -}; - -/** - 普通消息的持久化内容 - */ -@interface WFCCMessagePayload : WFCCJsonSerializer - -/** - 消息类型 - */ -@property (nonatomic, assign)int contentType; - -/** - 搜索内容 - */ -@property (nonatomic, strong)NSString *searchableContent; - -/** - 推送内容 -*/ -@property (nonatomic, strong)NSString *pushContent; -/** - 推送数据 -*/ -@property (nonatomic, strong)NSString *pushData; - -/** - 内容 - */ -@property (nonatomic, strong)NSString *content; - -/** - 内容流 - */ -@property (nonatomic, strong)NSData *binaryContent; - -/** - 只存储在客户端本地的内容 - */ -@property (nonatomic, strong)NSString *localContent; - -/** - 提醒类型,1,提醒部分对象(mentinedTarget)。2,提醒全部。其他不提醒 - */ -@property (nonatomic, assign)int mentionedType; - -/** - 提醒对象,mentionedType 1时有效 - */ -@property (nonatomic, strong)NSArray *mentionedTargets; - -/** - 附加信息 - */ -@property (nonatomic, strong)NSString *extra; - -/** - 本地信息,用于消息未从服务器下载下来。 - */ -@property (nonatomic, assign)BOOL notLoaded; -@end - -/** - 媒体消息的持久化内容 - */ -@interface WFCCMediaMessagePayload : WFCCMessagePayload - -/** - 媒体类型 - */ -@property (nonatomic, assign)WFCCMediaType mediaType; - -/** - 媒体内容的服务器URL - */ -@property (nonatomic, strong)NSString *remoteMediaUrl; - -/** - 媒体内容的本地URL,发送消息时不会携带,用于缓存加速显示 - */ -@property (nonatomic, strong)NSString *localMediaPath; - -@end - -@class WFCCMessage; -@class WFCCDictionary; -/** - 消息协议,所有消息(包括自定义消息均需要实现此协议) - */ -@protocol WFCCMessageContent - -/** - 消息编码 - - @return 消息的持久化内容 - */ -- (WFCCMessagePayload *)encode; - -/** - 消息解码 - - @param payload 消息的持久化内容 - */ -- (void)decode:(WFCCMessagePayload *)payload; - -/** - 消息类型,必须全局唯一。1000及以下为系统内置类型,自定义消息需要使用1000以上。 - - @return 消息类型的唯一值 - */ -+ (int)getContentType; - -/** - 消息的存储策略 - - @return 存储策略 - */ -+ (int)getContentFlags; - -/** - 消息的简短信息 - - @return 消息的简短信息,主要用于通知提示和会话列表等需要简略信息的地方。 - */ -- (NSString *)digest:(WFCCMessage *)message; -@end - -/** - 消息内容,自定义消息可以继承此类 - */ -@interface WFCCMessageContent : NSObject - -/** - 附加信息 - */ -@property (nonatomic, strong)NSString *extra; - -/** - 本地信息,用于消息未从服务器下载下来。 - */ -@property (nonatomic, assign)BOOL notLoaded; - -- (NSArray *)getArray:(WFCCDictionary *)dict ofKey:(NSString *)key; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCModifyGroupAliasNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCModifyGroupAliasNotificationContent.h deleted file mode 100644 index d645b490..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCModifyGroupAliasNotificationContent.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// WFCCModifyGroupAliasNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群成员修改群昵称的通知消息 - */ -@interface WFCCModifyGroupAliasNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者用户ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 群昵称 - */ -@property (nonatomic, strong)NSString *alias; - -/** - 被修改昵称的用户,如果为空为修改operator的群昵称。 - */ -@property (nonatomic, strong)NSString *memberId; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCModifyGroupExtraNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCModifyGroupExtraNotificationContent.h deleted file mode 100644 index 9023b929..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCModifyGroupExtraNotificationContent.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// WFCCModifyGroupExtraNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群成员修改群附加信息的通知消息 - */ -@interface WFCCModifyGroupExtraNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者用户ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 群成员附加信息 - */ -@property (nonatomic, strong)NSString *groupExtra; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCModifyGroupMemberExtraNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCModifyGroupMemberExtraNotificationContent.h deleted file mode 100644 index 0f55321b..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCModifyGroupMemberExtraNotificationContent.h +++ /dev/null @@ -1,36 +0,0 @@ -// -// WFCCModifyGroupMemberExtraNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 群成员修改群附加信息的通知消息 - */ -@interface WFCCModifyGroupMemberExtraNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者用户ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 群成员附加信息 - */ -@property (nonatomic, strong)NSString *groupMemberExtra; - -/** - 被修改昵称的用户,如果为空为修改operator的群昵称。 - */ -@property (nonatomic, strong)NSString *memberId; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCMultiCallOngoingMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCMultiCallOngoingMessageContent.h deleted file mode 100644 index 647fdb59..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCMultiCallOngoingMessageContent.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// WFCCMultiCallOngoingMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 通话正在进行消息 - */ -@interface WFCCMultiCallOngoingMessageContent : WFCCMessageContent -@property (nonatomic, strong)NSString *callId; -@property (nonatomic, strong)NSString *initiator; -@property (nonatomic, assign)BOOL audioOnly; -@property (nonatomic, strong)NSArray *targetIds; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCNetworkService.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCNetworkService.h deleted file mode 100644 index d4700d78..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCNetworkService.h +++ /dev/null @@ -1,519 +0,0 @@ -// -// WFCCNetworkService.h -// WFChatClient -// -// Created by heavyrain on 2017/11/5. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#ifndef WFCCNetworkService_h -#define WFCCNetworkService_h - -#import -#import "WFCCMessage.h" -#import "WFCCReadReport.h" -#import "WFCCDeliveryReport.h" - -extern const NSString *SDKVERSION; -#pragma mark - 通知定义 -//群组信息更新通知 -extern NSString *kGroupInfoUpdated; -//群组成员更新通知 -extern NSString *kGroupMemberUpdated; -//用户信息更新通知 -extern NSString *kUserInfoUpdated; -//好友列表更新通知 -extern NSString *kFriendListUpdated; -//好友请求信息更新通知 -extern NSString *kFriendRequestUpdated; -//设置更新通知 -extern NSString *kSettingUpdated; -//频道信息更新通知 -extern NSString *kChannelInfoUpdated; -//用户在线状态更新通知 -extern NSString *kUserOnlineStateUpdated; -//密聊状态更新通知 -extern NSString *kSecretChatStateUpdated; -//密聊消息阅后即焚开始计时 -extern NSString *kSecretMessageStartBurning; -//密聊消息阅后即焚完成 -extern NSString *kSecretMessageBurned; -//域信息更新通知 -extern NSString *kDomainInfoUpdated; - -#pragma mark - 枚举值定义 -/** - 连接状态 - - - kConnectionStatusTimeInconsistent 服务器和客户端时间相差太大 - - kConnectionStatusNotLicensed 专业版IM服务没有授权或者授权过期,社区版不会有此状态 - - kConnectionStatusKickedoff 多端登录被迫下线。 - - kConnectionStatusSecretKeyMismatch 密钥错误 - - kConnectionStatusTokenIncorrect Token错误 - - kConnectionStatusServerDown 服务器关闭 - - kConnectionStatusRejected: 被拒绝 - - kConnectionStatusLogout: 退出登录 - - kConnectionStatusUnconnected: 未连接 - - kConnectionStatusConnecting: 连接中 - - kConnectionStatusConnected: 已连接 - - kConnectionStatusReceiving: 正在与服务同步数据中 - */ -typedef NS_ENUM(NSInteger, ConnectionStatus) { - kConnectionStatusTimeInconsistent = -9, - kConnectionStatusNotLicensed = -8, - //错误码kConnectionStatusKickedoff是IM服务2021.9.15之后的版本才支持,并且打开服务器端开关server.client_support_kickoff_event - kConnectionStatusKickedoff = -7, - kConnectionStatusSecretKeyMismatch = -6, - kConnectionStatusTokenIncorrect = -5, - kConnectionStatusServerDown = -4, - kConnectionStatusRejected = -3, - kConnectionStatusLogout = -2, - kConnectionStatusUnconnected = -1, - kConnectionStatusConnecting = 0, - kConnectionStatusConnected = 1, - kConnectionStatusReceiving = 2 -}; - - -/** - 在双网环境中,获取当前连接的网络类型。仅当长连接建立时是准确的。如果长连接未建立,此值为上一次长连接建立时的值 - - - kConnectedNetworkType_Main 连接到主网络 - - kConnectedNetworkType_Backup 连接到备网络 - - kConnectedNetworkType_Unknown 未知 - - */ -typedef NS_ENUM(NSInteger, ConnectedNetworkType) { - kConnectedNetworkType_Main = 1, - kConnectedNetworkType_Unknown = 0, - kConnectedNetworkType_Backup = -1, -}; - -/** -平台枚举值 - - //Platform_Android = 2, - //Platform_Windows = 3, - //Platform_OSX = 4, - //Platform_WEB = 5, - //Platform_WX = 6, - //Platform_Linux = 7, - //Platform_iPad = 8, - //Platform_APad = 9, -*/ -#define Platform_iOS 1 -#define Platform_iPad 8 - - -#pragma mark - 连接状态&消息监听 -/** - 连接状态的监听 - */ -@protocol ConnectionStatusDelegate - -/** - 连接状态变化的回调 - - @param status 连接状态 - */ -- (void)onConnectionStatusChanged:(ConnectionStatus)status; - -@end - -/** - 连接状态的监听 - */ -@protocol ConnectToServerDelegate - -/** - 开始连接到服务器的回调 - - @param host 服务Host - @param ip 服务ip - @param port 服务端口 - */ -- (void)onConnectToServer:(NSString *)host ip:(NSString *)ip port:(int)port; - -/** - 成功连接到服务器的回调 - - @param host 服务Host - @param ip 服务ip - @param port 服务端口 - @param mainNw 是否是主网 - */ -- (void)onConnected:(NSString *)host ip:(NSString *)ip port:(int)port mainNw:(BOOL)mainNw; - -@end - -/** - 网络流量使用监听 - */ -@protocol TrafficDataDelegate - -/** - 网络产生流量的回调 - - @param send 发送的字节数 - @param recv 收到的字节数 - */ -- (void)onTrafficData:(int64_t)send recv:(int64_t)recv; - -@end - -/** - 消息接收的监听 - */ -@protocol ReceiveMessageDelegate - -/** - 接收消息的回调 - - @param messages 收到的消息 - @param hasMore 是否还有待接受的消息,UI可以根据此参数决定刷新的时机 - */ -- (void)onReceiveMessage:(NSArray *)messages hasMore:(BOOL)hasMore; - -@optional -- (void)onRecallMessage:(long long)messageUid; -- (void)onDeleteMessage:(long long)messageUid; - -/** -消息已送达到目标用户的回调 - -@param delivereds 送达报告 -*/ - -- (void)onMessageDelivered:(NSArray *)delivereds; - -/** -消息已读的监听 -*/ -- (void)onMessageReaded:(NSArray *)readeds; -@end - -/** - 接收消息前的拦截Filter - */ -@protocol ReceiveMessageFilter - -/** - 是否拦截收到的消息 - - @param message 消息 - @return 是否拦截,如果拦截该消息,则ReceiveMessageDelegate回调不会再收到此消息 - */ -- (BOOL)onReceiveMessage:(WFCCMessage *)message; -@end - -/** - 会议事件的监听 - */ -@protocol ConferenceEventDelegate - -/** - 会议事件的回调 - - @param event 事件 - */ -- (void)onConferenceEvent:(NSString *)event; -@end - -@class WFCCUserOnlineState; -/** - 在线事件的监听 - */ -@protocol OnlineEventDelegate - -/** - 在线事件的回调 - - @param events 事件 - */ -- (void)onOnlineEvent:(NSArray *)events; -@end - -@class WFCCUserInfo; -@class WFCCGroupInfo; -/** - 默认头像提供者 - */ -@protocol WFCCDefaultPortraitProvider -/** - 获取用户的默认头像链接 - - @param userInfo 用户信息 - @return 返回此用户的默认头像 - */ -- (NSString *)userDefaultPortrait:(WFCCUserInfo *)userInfo; - -/** - 获取群组的默认头像链接 - - @param groupInfo 群组信息 - @param memberInfos 群成员用户信息,只用前9名,可以只传入9名成员 - @return 返回此用户的默认头像 - */ -- (NSString *)groupDefaultPortrait:(WFCCGroupInfo *)groupInfo memberInfos:(NSArray *)memberInfos; -@end - -/** - 链接地址转换器,用于双网环境下媒体资源和头像等在不同网络下的转换 - */ -@protocol WFCCUrlRedirector -- (NSString *)redirect:(NSString *)originalUrl; -@end - - -#pragma mark - 连接服务 -/** - 连接服务 - */ -@interface WFCCNetworkService : NSObject - -/** - 连接服务单例 - - @return 连接服务单例 - */ -+ (WFCCNetworkService *)sharedInstance; - -/** - 连接状态监听 - */ -@property(nonatomic, weak) id connectionStatusDelegate; - -/** - 连接到服务监听 - */ -@property(nonatomic, weak) id connectToServerDelegate; - -/** - 网络流量监听 - */ -@property(nonatomic, weak) id trafficDataDelegate; - -/** - 消息接收监听 - */ -@property(nonatomic, weak) id receiveMessageDelegate; - -/** -会议事件监听 -*/ -@property(nonatomic, weak) id conferenceEventDelegate; - -/** -在线事件监听 -*/ -@property(nonatomic, weak) id onlineEventDelegate; - -/** - 默认头像提供者 - */ -@property(nonatomic, weak)id defaultPortraitProvider; - -/** - 双网地址转换器 - */ -@property(nonatomic, strong)id urlRedirector; - -/** - 当前是否处于登录状态 - */ -@property(nonatomic, assign, getter=isLogined, readonly)BOOL logined; - -/** - 当前的连接状态 - */ -@property(nonatomic, assign, readonly)ConnectionStatus currentConnectionStatus; - -/** - 当前登录的用户ID - */ -@property (nonatomic, strong, readonly)NSString *userId; - -/** - 服务器时间与本地时间的差值 - */ -@property(nonatomic, assign, readonly)long long serverDeltaTime; - -/** - 当前服务是否连接到了主网络 - */ -@property (nonatomic, assign, readonly)BOOL connectedToMainNetwork; - -/** - 发送日志命令 - */ -@property (nonatomic, strong)NSString *sendLogCommand; - -/** - 开启Log - */ -+ (void)startLog; - -/** - 停止Log - */ -+ (void)stopLog; - -/** -获取日志文件路径 -*/ -+ (NSArray *)getLogFilesPath; - -/* - 使用国密加密。注意必须和服务器同时配置,否则无法连接。 - */ -- (void)useSM4; - -/* - 使用AES256加密。注意必须和服务器同时配置,否则无法连接。 - */ -- (void)useAES256; - -/* - 使用TCP的短连接。需要专业版IM服务支持。 - */ -- (void)useTcpShortLink; - -/* - 是否使用TCP的短连接。需要专业版IM服务支持。 - */ -- (BOOL)isTcpShortLink; - -/* - 不使用FTS搜索。仅在connect之前调用有效。 - */ -- (void)noUseFts; -/** - 设置Lite模式。 - Lite模式下,协议栈不存储数据库,不同步所有信息,只能收发消息,接收消息只接收连接以后发送的消息。 - 此函数只能在connect之前调用。 - - @param isLiteMode 是否Lite模式 - */ -- (void)setLiteMode:(BOOL)isLiteMode; - -/** - 设置心跳时间,默认为270秒,可以设置为30-300之间的秒数。 - */ -- (void)setHeartBeatInterval:(int)second; - -/** - 获取客户端id - - @return 客户端ID - */ -- (NSString *)getClientId; - -/** - 连接服务器,需要注意token跟clientId是强依赖的,一定要调用getClientId获取到clientId,然后用这个clientId获取token,这样connect才能成功,如果随便使用一个clientId获取到的token将无法链接成功。另外不能多次connect,如果需要切换用户请先disconnect,然后3秒钟之后再connect(如果是用户手动登录可以不用等,因为用户操作很难3秒完成,如果程序自动切换请等3秒) - - @param userId 用户Id - @param token 密码 - - @return 返回上一次活动时间。如果间隔时间较长,可以加个第一次登录的等待提示界面,在等待时同步所有的用户信息/群组信息/频道信息等。 - */ -- (int64_t)connect:(NSString *)userId token:(NSString *)token; - -/** - 断开连接 - - @param disablePush 是否停止推送,clearSession为YES时无意义。如果为true,session会变成disable状态,token会失效,必须重新获取token才能登录。 - @param clearSession 是否清除Session信息,如果清除本地历史消息将全部清除,且token失效无法再次登录,必须重新获取token才能进行登录。 - */ -- (void)disconnect:(BOOL)disablePush clearSession:(BOOL)clearSession; - -/** - 设置服务器地址信息。host可以是IP,可以是域名。如果IM服务是专业版IM服务,需要设置为IM服务绑定的地址。 - - @param host 服务器地址 - */ -- (void)setServerAddress:(NSString *)host; - -/** - 设置当前设备的device token - - @param token 苹果APNs Device Token - */ -- (void)setDeviceToken:(NSString *)token; - -/** - 设置当前设备的device token,可以指定推送类型,用来对接个推、极光等第三方推送。 - - @param token 苹果APNs Device Token - @param pushType 推送类型 - */ -- (void)setDeviceToken:(NSString *)token pushType:(int)pushType; - -/** - 设置当前设备的Voip device token - - @param token 苹果APNs Device Token - */ -- (void)setVoipDeviceToken:(NSString *)token; - -/** - 添加消息拦截Filter - - @param filter 消息拦截Filter - */ -- (void)addReceiveMessageFilter:(id)filter; - -/** - 移除消息拦截Filter - - @param filter 消息拦截Filter - */ -- (void)removeReceiveMessageFilter:(id)filter; - -/** - 应用已经login且在后台的情况下,强制进行连接,确保后台连接5秒钟,用于voip推送后台刷新等场景。 - 应用在前台情况下,此方法无效。 - */ -- (void)forceConnect:(NSUInteger)second; - -- (void)cancelForceConnect; - -/* - 设置备选服务地址,仅专业版支持,一般用于政企单位内外网两种网络环境。请参考:https://docs.wildfirechat.cn/blogs/政企内外双网解决方案.html - */ -- (void)setBackupAddressStrategy:(int)strategy; -- (void)setBackupAddress:(NSString *)host port:(int)port; -- (ConnectedNetworkType)getConnectedNetworkType; - -/* - 设置协议栈短连接User agent。 - - @param userAgent User agent - */ -- (void)setProtoUserAgent:(NSString *)userAgent; - -/* - 添加协议栈短连接自定义header,value为空时清除该header。 - - @param header header - @param value value - */ -- (void)addHttpHeader:(NSString *)header value:(NSString *)value; - -/* - 设置代理,注意只能支持socks5代理,http代理无法支持,只有专业版支持次功能。 - - @param host 代理服务域名,host和ip至少要有一个有效值。 - @param ip 代理服务IP地址,host和ip至少要有一个有效值。 - @param port 代理服务端口 - @param username 账户 - @param password 密码 - */ -- (void)setProxyInfo:(NSString *)host ip:(NSString *)ip port:(int)port username:(NSString *)username password:(NSString *)password; - -/** - 获取协议栈版本 - */ -- (NSString *)getProtoRevision; -@end - -#endif diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCNotDeliveredMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCNotDeliveredMessageContent.h deleted file mode 100644 index 7ef1aaab..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCNotDeliveredMessageContent.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// WFCCNotDeliveredMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - - -/** - 没有送达消息 - */ -@interface WFCCNotDeliveredMessageContent : WFCCNotificationMessageContent -/** - 请求的类型,1是发送消息,2撤回消息,3 - */ -@property(nonatomic, assign)int type; -/** - 发送的消息ID - */ -@property(nonatomic, assign)int64_t messageUid; - -/** - 是全部失败,还是部分失败 - */ -@property(nonatomic, assign)BOOL allFailure; - -/** - 当部分失败时,失败的用户id列表 - */ -@property(nonatomic, strong)NSArray *userIds; - -/** - 归属IM服务请求桥接服务出现的错误,有可能是桥接服务没有配置,或者不可用。 - */ -@property(nonatomic, assign)int localImErrorCode; - -/** - 归属桥接服务出现的错误 - */ -@property(nonatomic, assign)int localBridgeErrorCode; - -/** - 远端桥接服务出现的错误 - */ -@property(nonatomic, assign)int remoteBridgeErrorCode; - -/** - 远端IM服务出现的错误 - */ -@property(nonatomic, assign)int remoteServerErrorCode; - -/** - 错误提示信息 - */ -@property(nonatomic, strong)NSString* errorMessage; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCNotificationMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCNotificationMessageContent.h deleted file mode 100644 index d65b33b1..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCNotificationMessageContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCNotificationMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - - -@class WFCCMessage; -/** - 通知消息的协议 - */ -@protocol WFCCNotificationMessageContent - -/** - 获取通知的提示内容 - - @return 提示内容 - */ -- (NSString *)formatNotification:(WFCCMessage *)message; -@end - -/** - 通知消息 - */ -@interface WFCCNotificationMessageContent : WFCCMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCPCLoginRequestMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCPCLoginRequestMessageContent.h deleted file mode 100644 index 6fa6975f..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCPCLoginRequestMessageContent.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// WFCCPCLoginRequestMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" -#import "WFCCIMService.h" - -/** - 建群的通知消息 - */ -@interface WFCCPCLoginRequestMessageContent : WFCCMessageContent - -/** - PC登录SessionID - */ -@property (nonatomic, strong)NSString *sessionId; - -/** - PC登录类型 - */ -@property (nonatomic, assign)WFCCPlatformType platform; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCPCOnlineInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCPCOnlineInfo.h deleted file mode 100644 index 4e0448c3..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCPCOnlineInfo.h +++ /dev/null @@ -1,40 +0,0 @@ -// -// WFCCPCOnlineInfo.h -// WFChatClient -// -// Created by Tom Lee on 2020/4/6. -// Copyright © 2020 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - PC在线类型 - - - PC_Online: PC客户端在线 - - Web_Online: Web客户端在线 - - WX_Online: WX小程序客户端在线 - - Pad_Online: Pad客户端在线 - */ -typedef NS_ENUM(NSInteger, WFCCPCOnlineType) { - PC_Online, - Web_Online, - WX_Online, - Pad_Online -}; - - -@interface WFCCPCOnlineInfo : WFCCJsonSerializer -+ (instancetype)infoFromStr:(NSString *)strInfo withType:(WFCCPCOnlineType)type; -@property(nonatomic, assign)WFCCPCOnlineType type; -@property(nonatomic, assign)BOOL isOnline; -@property(nonatomic, assign)int/*WFCCPlatformType*/ platform; -@property(nonatomic, strong)NSString *clientId; -@property(nonatomic, strong)NSString *clientName; -@property(nonatomic, assign)long long timestamp; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCPTTSoundMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCPTTSoundMessageContent.h deleted file mode 100644 index 8e9615c9..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCPTTSoundMessageContent.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// WFCCPTTSoundMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/9. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCSoundMessageContent.h" - -/** - 语音消息 - */ -@interface WFCCPTTSoundMessageContent : WFCCSoundMessageContent - -/** - 构造方法 - - @param wavPath 文件路径 - @param amrPath 转化为amr的存储路径 - @param duration 时间 - @return 语音消息 - */ -+ (instancetype)soundMessageContentForWav:(NSString *)wavPath - destinationAmrPath:(NSString *)amrPath - duration:(long)duration; - - -/** - 构造方法 - - @param amrPath amr的存储路径 - @param duration 时间 - @return 语音消息 - */ -+ (instancetype)soundMessageContentForAmr:(NSString *)amrPath - duration:(long)duration; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCPTextMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCPTextMessageContent.h deleted file mode 100644 index b7cd90d5..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCPTextMessageContent.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// WFCCPTextMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCTextMessageContent.h" - -/** - 存储文本消息,与普通文本消息的区别是,普通文本消息存储切计未读数,本消息只存储不计数。 - */ -@interface WFCCPTextMessageContent : WFCCTextMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCProtocol.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCProtocol.h deleted file mode 100644 index 0e617f05..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCProtocol.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// WFCCProtocol.h -// WFChatClient -// -// Created by Rain on 2022/9/20. -// Copyright © 2022 WildFireChat. All rights reserved. -// - -#ifndef WFCCProtocol_h -#define WFCCProtocol_h - -@protocol WFCCDuplicatable - -- (instancetype)duplicate; - -@end - -#endif /* WFCCProtocol_h */ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCQuitGroupNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCQuitGroupNotificationContent.h deleted file mode 100644 index 92dbf1af..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCQuitGroupNotificationContent.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// WFCCQuitGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 退群的通知消息 - */ -@interface WFCCQuitGroupNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 退群成员的ID - */ -@property (nonatomic, strong)NSString *quitMember; - -/** - 退群成员的ID - */ -@property (nonatomic, assign)BOOL keepMessage; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCQuitGroupVisibleNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCQuitGroupVisibleNotificationContent.h deleted file mode 100644 index 0f4cc945..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCQuitGroupVisibleNotificationContent.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// WFCCQuitGroupNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 退群的通知消息 - */ -@interface WFCCQuitGroupVisibleNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 退群成员的ID - */ -@property (nonatomic, strong)NSString *quitMember; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCQuoteInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCQuoteInfo.h deleted file mode 100644 index 8864ee74..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCQuoteInfo.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// WFCCQuoteInfo.h -// WFChatClient -// -// Created by dali on 2020/10/4. -// Copyright © 2020 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN -@class WFCCMessage; -@interface WFCCQuoteInfo : WFCCJsonSerializer -- (instancetype)initWithMessage:(WFCCMessage *)message; -@property (nonatomic, assign)long long messageUid; -@property (nonatomic, strong)NSString *userId; -@property (nonatomic, strong)NSString *userDisplayName; -@property (nonatomic, strong)NSString *messageDigest; - -- (NSDictionary *)encode; -- (void)decode:(NSDictionary *)dictData; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCRawMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCRawMessageContent.h deleted file mode 100644 index f3d05e10..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCRawMessageContent.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// WFCCRawMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" - -/** - Raw消息内容,消息没有经过decode,只包含payload. - */ -@interface WFCCRawMessageContent : WFCCMediaMessageContent - -+ (instancetype)contentOfPayload:(WFCCMessagePayload *)payload; -/** - 消息Payload - */ -@property (nonatomic, strong)WFCCMessagePayload *payload; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCReadReport.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCReadReport.h deleted file mode 100644 index 0a55ba95..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCReadReport.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// WFCCConversation.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCConversation.h" -/** - 会话 - */ -@interface WFCCReadReport : WFCCJsonSerializer - -+(instancetype)readed:(WFCCConversation *)conversation - userId:(NSString *)userId - timestamp:(long long)timestamp; - -@property (nonatomic, strong)WFCCConversation *conversation; -@property (nonatomic, strong)NSString *userId; -@property (nonatomic, assign)long long timestamp; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCRecallMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCRecallMessageContent.h deleted file mode 100644 index 472b8612..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCRecallMessageContent.h +++ /dev/null @@ -1,55 +0,0 @@ -// -// WFCCRecallMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 文本消息 - */ -@interface WFCCRecallMessageContent : WFCCNotificationMessageContent - -/** - 被撤回消息的Uid - */ -@property (nonatomic, assign)long long messageUid; - -/** - 撤回用户Id - */ -@property (nonatomic, strong)NSString *operatorId; - -/** -被撤回消息的发送者用户Id -*/ -@property (nonatomic, strong)NSString *originalSender; - -/** -撤回消息的内容类型 -*/ -@property (nonatomic, assign)int originalContentType; - -/** -撤回消息的可搜索内容类型 -*/ -@property (nonatomic, strong)NSString *originalSearchableContent; - -/** -撤回消息的内容 -*/ -@property (nonatomic, strong)NSString *originalContent; - -/** -撤回消息的Extra内容 -*/ -@property (nonatomic, strong)NSString *originalExtra; - -/** -撤回消息的时间戳 -*/ -@property (nonatomic, assign)long long originalMessageTimestamp; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCRichNotificationMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCRichNotificationMessageContent.h deleted file mode 100644 index 22ee4bf6..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCRichNotificationMessageContent.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// WFCCRichNotificationMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 富通知消息 - */ -@interface WFCCRichNotificationMessageContent : WFCCMessageContent -@property (nonatomic, strong)NSString *title; -@property (nonatomic, strong)NSString *desc; -@property (nonatomic, strong)NSString *remark; - -//@[@{@"key":@"登录账户", @"value":@"野火IM", @"color":@"#173155"}, @{@"key":@"登录地点", @"value":@"北京", @"color":@"#173155"}] -@property (nonatomic, strong)NSArray *> *datas; - -//附加信息 -@property (nonatomic, strong)NSString *exName; -@property (nonatomic, strong)NSString *exPortrait; -@property (nonatomic, strong)NSString *exUrl; - -//应用信息 -@property (nonatomic, strong)NSString *appId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCSecretChatInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCSecretChatInfo.h deleted file mode 100644 index 66941823..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCSecretChatInfo.h +++ /dev/null @@ -1,56 +0,0 @@ -// -// WFCCSecretChatInfo.h -// WFChatClient -// -// Created by heavyrain on 2021/5/16. -// Copyright © 2021 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - 密聊状态 - - - SecretChatState_Starting: 密聊会话建立中 - - SecretChatState_Accepting: 密聊会话接受中 - - SecretChatState_Established: 密聊会话已建立 - - SecretChatState_Canceled: 密聊会话已取消 - */ -typedef NS_ENUM(NSInteger, WFCCSecretChatState) { - SecretChatState_Starting, - SecretChatState_Accepting, - SecretChatState_Established, - SecretChatState_Canceled -}; - -@interface WFCCSecretChatInfo : WFCCJsonSerializer -/* - 密聊ID - */ -@property(nonatomic, strong)NSString *targetId; - -/* - 用户ID - */ -@property(nonatomic, strong)NSString *userId; - -/* - 密聊状态 - */ -@property(nonatomic, assign)WFCCSecretChatState state; - -/* - 阅后即焚时间 - */ -@property(nonatomic, assign)int burnTime; - -/* - 创建时间 - */ -@property(nonatomic, assign)long long createTime; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCSoundMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCSoundMessageContent.h deleted file mode 100644 index de2b097d..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCSoundMessageContent.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// WFCCSoundMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/9. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" - -/** - 语音消息 - */ -@interface WFCCSoundMessageContent : WFCCMediaMessageContent - -/** - 构造方法 - - @param wavPath 文件路径 - @param amrPath 转化为amr的存储路径 - @param duration 时间 - @return 语音消息 - */ -+ (instancetype)soundMessageContentForWav:(NSString *)wavPath - destinationAmrPath:(NSString *)amrPath - duration:(long)duration; - - -/** - 构造方法 - - @param amrPath amr的存储路径 - @param duration 时间 - @return 语音消息 - */ -+ (instancetype)soundMessageContentForAmr:(NSString *)amrPath - duration:(long)duration; - -/** - 时间 - */ -@property (nonatomic, assign)long duration; - -/** - 获取语音消息的wav数据 - - @return wav数据 - */ -- (NSData *)getWavData; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCStartSecretChatMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCStartSecretChatMessageContent.h deleted file mode 100644 index 103e0ec4..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCStartSecretChatMessageContent.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// WFCCMarkUnreadMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - - -/** - 标记未读同步消息 - */ -@interface WFCCStartSecretChatMessageContent : WFCCMessageContent - - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCStickerMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCStickerMessageContent.h deleted file mode 100644 index 6f233a17..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCStickerMessageContent.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// WFCCImageMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/2. -// Copyright © 2017年 wildfire chat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" -#import - -/** - 图片消息 - */ -@interface WFCCStickerMessageContent : WFCCMediaMessageContent - -/** - 构造方法 - - @param stickerPath 表情路径 - @return 表情消息 - */ -+ (instancetype)contentFrom:(NSString *)stickerPath; - -@property (nonatomic, assign)CGSize size; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCStreamingTextGeneratedMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCStreamingTextGeneratedMessageContent.h deleted file mode 100644 index bc0fe215..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCStreamingTextGeneratedMessageContent.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// WFCCStreamingTextGeneratedMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 富通知消息 - */ -@interface WFCCStreamingTextGeneratedMessageContent : WFCCMessageContent -@property (nonatomic, strong)NSString *text; -@property (nonatomic, strong)NSString *streamId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCStreamingTextGeneratingMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCStreamingTextGeneratingMessageContent.h deleted file mode 100644 index 0a69ae63..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCStreamingTextGeneratingMessageContent.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// WFCCStreamingTextGeneratingMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 富通知消息 - */ -@interface WFCCStreamingTextGeneratingMessageContent : WFCCMessageContent -@property (nonatomic, strong)NSString *text; -@property (nonatomic, strong)NSString *streamId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCTextMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCTextMessageContent.h deleted file mode 100644 index 2440416e..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCTextMessageContent.h +++ /dev/null @@ -1,44 +0,0 @@ -// -// WFCCTextMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" -#import "WFCCQuoteInfo.h" -/** - 文本消息 - */ -@interface WFCCTextMessageContent : WFCCMessageContent - -/** - 构造方法 - - @param text 文本 - @return 文本消息 - */ -+ (instancetype)contentWith:(NSString *)text; - -/** - 文本内容 - */ -@property (nonatomic, strong)NSString *text; - - -/** - 提醒类型,1,提醒部分对象(mentinedTarget)。2,提醒全部。其他不提醒 - */ -@property (nonatomic, assign)int mentionedType; - -/** - 提醒对象,mentionedType 1时有效 - */ -@property (nonatomic, strong)NSArray *mentionedTargets; - -/** - 引用信息 - */ -@property (nonatomic, strong)WFCCQuoteInfo *quoteInfo; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCThingsDataContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCThingsDataContent.h deleted file mode 100644 index cb1fb054..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCThingsDataContent.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// WFCCThingsDataContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 物联网数据 - */ -@interface WFCCThingsDataContent : WFCCMessageContent -/** - 二进制数据内容 - */ -@property (nonatomic, strong)NSData *data; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCThingsLostEventContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCThingsLostEventContent.h deleted file mode 100644 index 47c4e1c2..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCThingsLostEventContent.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// WFCCThingsLostEventContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 文本消息 - */ -@interface WFCCThingsLostEventContent : WFCCMessageContent - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCTipNotificationMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCTipNotificationMessageContent.h deleted file mode 100644 index e5ac09f7..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCTipNotificationMessageContent.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// WFCCNotificationMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/19. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 退群的通知消息 - */ -@interface WFCCTipNotificationContent : WFCCNotificationMessageContent - -/** - 退群成员的ID - */ -@property (nonatomic, strong)NSString *tip; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCTransferGroupOwnerNotificationContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCTransferGroupOwnerNotificationContent.h deleted file mode 100644 index 0151e523..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCTransferGroupOwnerNotificationContent.h +++ /dev/null @@ -1,31 +0,0 @@ -// -// WFCCTransferGroupOwnerNotificationContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/20. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCNotificationMessageContent.h" - -/** - 转让群主的通知消息 - */ -@interface WFCCTransferGroupOwnerNotificationContent : WFCCNotificationMessageContent - -/** - 群组ID - */ -@property (nonatomic, strong)NSString *groupId; - -/** - 操作者的ID - */ -@property (nonatomic, strong)NSString *operateUser; - -/** - 新的群主ID - */ -@property (nonatomic, strong)NSString *owner; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCTypingMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCTypingMessageContent.h deleted file mode 100644 index 2d92bb00..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCTypingMessageContent.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// TypingMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 正在输入类型 - - - Typing_TEXT : 正在输入文本 - - Typing_VOICE : 正在输入语音 - - Typing_CAMERA : 正在拍摄 - - Typing_LOCATION : 正在选取位置 - - Typing_FILE : 正在选取文件 - */ -typedef NS_ENUM(NSInteger, WFCCTypingType) { - Typing_TEXT = 0, - Typing_VOICE = 1, - Typing_CAMERA = 2, - Typing_LOCATION = 3, - Typing_FILE = 4 -}; - - -/** - 正在输入消息 - */ -@interface WFCCTypingMessageContent : WFCCMessageContent - -/** - 构造方法 - - @param type 输入类型类型。 - @return 正在输入消息 - */ -+ (instancetype)contentType:(WFCCTypingType)type; - -/** - 输入类型类型。0 文本;1 语言。 - */ -@property (nonatomic, assign)WFCCTypingType type; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUnknownMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUnknownMessageContent.h deleted file mode 100644 index 1ef52312..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUnknownMessageContent.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// WFCCUnknownMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/8/16. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import "WFCCMessageContent.h" - -/** - 未知消息。所有未注册的消息都会解析为为止消息,主要用于新旧版本兼容 - */ -@interface WFCCUnknownMessageContent : WFCCMessageContent - -/** - 原消息类型 - */ -@property (nonatomic, assign)NSInteger orignalType; - - -/** - 原消息Payload - */ -@property (nonatomic, strong)WFCCMessagePayload *orignalPayload; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUnreadCount.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUnreadCount.h deleted file mode 100644 index 28aecd95..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUnreadCount.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// WFCCUnreadCount.h -// WFChatClient -// -// Created by WF Chat on 2018/9/30. -// Copyright © 2018 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - -@interface WFCCUnreadCount : WFCCJsonSerializer -+(instancetype)countOf:(int)unread mention:(int)mention mentionAll:(int)mentionAll; -@property(nonatomic, assign)int unread; -@property(nonatomic, assign)int unreadMention; -@property(nonatomic, assign)int unreadMentionAll; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUserInfo.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUserInfo.h deleted file mode 100644 index e4944ff6..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUserInfo.h +++ /dev/null @@ -1,104 +0,0 @@ -// -// WFCCUserInfo.h -// WFChatClient -// -// Created by heavyrain on 2017/9/29. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" -/** - 用户信息 - */ -@interface WFCCUserInfo : WFCCJsonSerializer - -/** - 用户ID - */ -@property (nonatomic, strong)NSString *userId; - -/** - 名称 - */ -@property (nonatomic, strong)NSString *name; - -/** - 显示的名称 - */ -@property (nonatomic, strong)NSString *displayName; - -/** - 性别 - */ -@property (nonatomic, assign)int gender; - -/** - 头像 - */ -@property (nonatomic, strong)NSString *portrait; - -/** - 手机号 - */ -@property (nonatomic, strong)NSString *mobile; - -/** - 邮箱 - */ -@property (nonatomic, strong)NSString *email; - -/** - 地址 - */ -@property (nonatomic, strong)NSString *address; - -/** - 公司信息 - */ -@property (nonatomic, strong)NSString *company; - -/** - 社交信息 - */ -@property (nonatomic, strong)NSString *social; - -/** - 扩展信息 - */ -@property (nonatomic, strong)NSString *extra; - -/** - 好友备注 - */ -@property (nonatomic, strong)NSString *friendAlias; - -/** - 群昵称 - */ -@property (nonatomic, strong)NSString *groupAlias; - -/** - 更新时间 - */ -@property (nonatomic, assign)long long updateDt; - -/** - 用户类型 - */ -@property (nonatomic, assign) int type; - -/** - 是否被删除用户 - */ -@property (nonatomic, assign) int deleted; - - -/** - 辅助方法,返回可读的名称,如果有备注返回备注,如果有群昵称,显示群昵称,如果都没有返回用户昵称。 - */ -@property(nonatomic, readonly)NSString *readableName; - -- (void)cloneFrom:(WFCCUserInfo *)other; - -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUserOnlineState.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUserOnlineState.h deleted file mode 100644 index 732bc7cf..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUserOnlineState.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// WFCCUserOnlineState.h -// WFChatClient -// -// Created by heavyrain on 2022/2/17. -// Copyright © 2022 WildFireChat. All rights reserved. -// - -#import -#import "WFCCJsonSerializer.h" - -NS_ASSUME_NONNULL_BEGIN - -/* - int Platform_UNSET = 0; - int Platform_iOS = 1; - int Platform_Android = 2; - int Platform_Windows = 3; - int Platform_OSX = 4; - int Platform_WEB = 5; - int Platform_WX = 6; - int Platform_LINUX = 7; - int Platform_iPad = 8; - int Platform_APad = 9; - */ -@interface WFCCClientState : WFCCJsonSerializer -@property(nonatomic, assign)int platform; -@property(nonatomic, assign)int state; //设备的在线状态,0是在线,1是有session但不在线,其它不在线。 -@property(nonatomic, assign)long long lastSeen; //最后可见 -@end - -@interface WFCCUserCustomState : WFCCJsonSerializer -@property(nonatomic, assign)int state; //0,未设置,1 忙碌,2 离开(主动设置),3 离开(长时间不操作),4 隐身,其它可以自主扩展。 -@property(nonatomic, strong)NSString *text; -@end - -@interface WFCCUserOnlineState : WFCCJsonSerializer -@property(nonatomic, strong)NSString *userId; -@property(nonatomic, strong)WFCCUserCustomState *customState; -@property(nonatomic, strong)NSArray *clientStates; -@end - -NS_ASSUME_NONNULL_END diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUtilities.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUtilities.h deleted file mode 100644 index a7a5819a..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCUtilities.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// WFCCUtilities.h -// WFChatClient -// -// Created by heavyrain on 2017/9/7. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import -#import "WFCCIMService.h" -#import "WFCCEnums.h" - -@interface WFCCUtilities : NSObject - -/** - 生成缩略图 - - @param image 原图 - @param targetWidth 宽度 - @param targetHeight 高度 - @return 缩略图 - */ -+ (UIImage *)generateThumbnail:(UIImage *)image - withWidth:(CGFloat)targetWidth - withHeight:(CGFloat)targetHeight; - -/** - 缩小图片 - - @param image 原图 - @param size 宽度 - @return 缩小到size范围内的Image - */ -+ (UIImage *)image:(UIImage *)image scaleInSize:(CGSize)size; -/** - 获取对应的沙盒路径 - - @param localPath 文件路径 - @return 对应的沙盒路径 - */ -+ (NSString *)getSendBoxFilePath:(NSString *)localPath; - -/** - 获取资源路径 - - @param componentPath 相对路径 - @return 资源路径 - */ -+ (NSString *)getDocumentPathWithComponent:(NSString *)componentPath; - -+ (CGSize)imageScaleSize:(CGSize)imageSize targetSize:(CGSize)targetSize thumbnailPoint:(CGPoint *)thumbnailPoint; - - -+ (UIImage *)imageWithRightOrientation:(UIImage *)aImage; - -+ (BOOL)isExternalTarget:(NSString *)targetId; -+ (NSString *)getExternalDomain:(NSString *)targetId; -+ (NSString *)getTargetWithoutDomain:(NSString *)targetId; -+ (NSAttributedString *)getExternal:(NSString *)domainId withName:(NSString *)name withColor:(UIColor *)color; -+ (NSAttributedString *)getExternal:(NSString *)domainId withName:(NSString *)name withColor:(UIColor *)color withSize:(CGFloat)fontSize; - -//同步函数,只能在后台线程执行 -+ (NSString *)getGroupGridPortrait:(NSString *)groupId - width:(int)width - generateIfNotExist:(BOOL)generateIfNotExist - defaultUserPortrait:(UIImage *(^)(NSString *userId))defaultUserPortraitBlock; - -+ (NSString *)getGroupGridPortrait:(NSString *)groupId - memberPortraits:(NSArray*> *)groupMembers - width:(int)PortraitWidth - defaultUserPortrait:(UIImage *(^)(NSString *userId))defaultUserPortraitBlock; - - -+ (NSString *)getGroupMemberExtra:(WFCCGroupMemberSourceType)sourceType sourceTargetId:(NSString *)sourceTargetId; - -+ (WFCCGroupMemberSourceType)getGroupMemberSourceType:(NSString *)memberExtra sourceTargetId:(NSMutableString *)sourceTargetId; - -+ (NSString *)getUserDisplayName:(NSString *)userId inGroup:(NSString *)groupId; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCVideoMessageContent.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCVideoMessageContent.h deleted file mode 100644 index d9d6c14b..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCCVideoMessageContent.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// WFCCVideoMessageContent.h -// WFChatClient -// -// Created by heavyrain on 2017/9/2. -// Copyright © 2017年 wildfire chat. All rights reserved. -// - -#import "WFCCMediaMessageContent.h" -#import - -/** - 图片消息 - */ -@interface WFCCVideoMessageContent : WFCCMediaMessageContent - -/** - 构造方法 - - @param image 图片 - @return 图片消息 - */ -+ (instancetype)contentPath:(NSString *)localPath thumbnail:(UIImage *)image; - -/** - 缩略图 - */ -@property (nonatomic, strong)UIImage *thumbnail; - -/** - 时长 -*/ -@property (nonatomic, assign)long duration; -@end diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCChatClient.h b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCChatClient.h deleted file mode 100644 index be18c6b2..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Headers/WFCChatClient.h +++ /dev/null @@ -1,109 +0,0 @@ -// -// WFChatClient.h -// WFChatClient -// -// Created by heavyrain on 2017/11/5. -// Copyright © 2017年 WildFireChat. All rights reserved. -// - -#import - -//! Project version number for WFChatClient. -FOUNDATION_EXPORT double WFChatClientVersionNumber; - -//! Project version string for WFChatClient. -FOUNDATION_EXPORT const unsigned char WFChatClientVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Info.plist b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Info.plist deleted file mode 100644 index ffa15f32..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/Info.plist and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/WFChatClient b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/WFChatClient deleted file mode 100644 index b660d93e..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/WFChatClient and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/_CodeSignature/CodeResources b/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/_CodeSignature/CodeResources deleted file mode 100644 index 05c1f3fb..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFChatClient.xcframework/ios-arm64_x86_64-simulator/WFChatClient.framework/_CodeSignature/CodeResources +++ /dev/null @@ -1,1125 +0,0 @@ - - - - - files - - Headers/Common.h - - LNpNtEeIWFWNqfp83OzxnGqlCOk= - - Headers/WFCCAddGroupeMemberNotificationContent.h - - jvLO++pfRhcWd1SGd2Rl9MD72yI= - - Headers/WFCCArticlesMessageContent.h - - OCeFgvYBsjpkMD0TktQKQhsKhd4= - - Headers/WFCCCallAddParticipantMessageContent.h - - Gp2DUYZvy4oTOkc/ESfeRb7RiWE= - - Headers/WFCCCallByeMessageContent.h - - lLIN2Wba1CnarrOaKTCj0jdpAo4= - - Headers/WFCCCallStartMessageContent.h - - TkaXEIURlWRSAUSWH4JFT/k6lpo= - - Headers/WFCCCardMessageContent.h - - Hl6e1zMZnHARRV/0pP22uW0zNlc= - - Headers/WFCCChangeGroupNameNotificationContent.h - - sk8T7Vb28CU/13dFzOBH9oDMrac= - - Headers/WFCCChangeGroupPortraitNotificationContent.h - - RV7X/R5zu1nk7gWMG51Rau9bu18= - - Headers/WFCCChannelInfo.h - - J/5lIOlldCotTh7EdP/hQUDYzB4= - - Headers/WFCCChannelMenu.h - - 3Qvl119TweX+H7N+gpdmlNsk1pU= - - Headers/WFCCChannelMenuEventMessageContent.h - - KGX0HpyfUYU/+5LBf7Y7PWNyDf0= - - Headers/WFCCChatroomInfo.h - - D5lCwDH3GJCnM1X7Ug3CnX5RXsw= - - Headers/WFCCChatroomMemberInfo.h - - uAzguqEQAeOcOzpYPuX+FidG9dc= - - Headers/WFCCCompositeMessageContent.h - - ygnyDZtDTn9hq0Ar+RmKc95ysAQ= - - Headers/WFCCConferenceInviteMessageContent.h - - 7U7eIKenVwUFlrh6L5QWBsQm5os= - - Headers/WFCCConversation.h - - Xg2lkJiRwe5r5WjZQjOaY9wYaA4= - - Headers/WFCCConversationInfo.h - - ySFM+XEYbg8zv0Bn3psq1zV9T0k= - - Headers/WFCCConversationSearchInfo.h - - hojxK+qnxQcVKX2z8pVoB85zK/A= - - Headers/WFCCCreateGroupNotificationContent.h - - yKDBCXekBAKB97vuPrGqvQqz/Ls= - - Headers/WFCCDeleteMessageContent.h - - JgLZw5Iosxii47IRTkbYseNa010= - - Headers/WFCCDeliveryReport.h - - Mx9wvAK8IjC+EQwbZuqQBf12O3A= - - Headers/WFCCDictionary.h - - tyKSRT1vYkFUD8CKdLWQR+AayPk= - - Headers/WFCCDismissGroupNotificationContent.h - - 4OSaSDIkdb6xBrHm+MLR2oFBzKU= - - Headers/WFCCDomainInfo.h - - cW1JstDhOj1rfqEhqdBj71VYvKA= - - Headers/WFCCEnterChannelChatMessageContent.h - - oxI3DtPGppGSlY1l0JgHcU2eMF8= - - Headers/WFCCEnums.h - - qNHY+LulPY/c3tPfoonhObTr1r0= - - Headers/WFCCFileMessageContent.h - - 5wbl0fY5k0YAcEfHt+/grdcw+w0= - - Headers/WFCCFileRecord.h - - 4aIaA33n6bUCX8O6J0xxmsa1Pos= - - Headers/WFCCFriend.h - - 7KThvPXsIvxHuOLJPEinuIxJnt0= - - Headers/WFCCFriendAddedMessageContent.h - - 3iB08uqoiC7mBgsHek5V1uqUPcc= - - Headers/WFCCFriendGreetingMessageContent.h - - +nFxkjIxc004ir8x96f1ektvbrQ= - - Headers/WFCCFriendRequest.h - - c1jYJ4ka4ZInQuhTF6YyGMnqU74= - - Headers/WFCCGroupInfo.h - - 96/Vhp003W4SR9FKbeUw4RixYb4= - - Headers/WFCCGroupJoinTypeNotificationContent.h - - Qtr37R+sD09xV6fgIKZwO8rApSg= - - Headers/WFCCGroupMember.h - - hBtY1tjk9IiNXPU6TZHTOHhrhN8= - - Headers/WFCCGroupMemberAllowNotificationContent.h - - JyLiP6wWLIjkbcmVzri8+YDqUyA= - - Headers/WFCCGroupMemberMuteNotificationContent.h - - TivBTQtIvTtvcL2NdvqF74AapeQ= - - Headers/WFCCGroupMuteNotificationContent.h - - qLFbHvFV3B0PW18/X9IzTDyK+04= - - Headers/WFCCGroupPrivateChatNotificationContent.h - - 7sAJpuAG5CohYN3Is3k0A53OsF0= - - Headers/WFCCGroupSearchInfo.h - - 3p1LsaEdwpLPBTQdRKkGcrYKVOo= - - Headers/WFCCGroupSetManagerNotificationContent.h - - 77um+nAswlRD90DRTWYSNdQe1XY= - - Headers/WFCCGroupSettingsNotificationContent.h - - KjNqfUSKMt61fsrMugG2tnr0awo= - - Headers/WFCCIMService.h - - HVFbofdTKg6x10CH6ipDq7G1upw= - - Headers/WFCCImageMessageContent.h - - s3kEIc5J2OZUc4sRCNQ87Yt53n4= - - Headers/WFCCJoinCallRequestMessageContent.h - - xzAvi1X3CA9lt04ULjpeFB7daJA= - - Headers/WFCCJsonSerializer.h - - JyGwg9hovXqu5d48RAAU60KhStM= - - Headers/WFCCKickoffGroupMemberNotificationContent.h - - DvOzmLjA8M5RNq7pLEDD/nJmLTc= - - Headers/WFCCKickoffGroupMemberVisibleNotificationContent.h - - eH/rmf/flDrTAdqjgs3+WNZd5bE= - - Headers/WFCCLeaveChannelChatMessageContent.h - - DL8WjZgqYS9l/OvtU0AvYHPaMik= - - Headers/WFCCLinkMessageContent.h - - jOg9HYwkWXRPEXURI+GbDN5jCPU= - - Headers/WFCCLocationMessageContent.h - - 1Ly+2JUo9EsqAewScYTP5JKSu/A= - - Headers/WFCCMediaMessageContent.h - - dKL+vn0PcsLdH2KYp2FrEQjKVrE= - - Headers/WFCCMessage.h - - fAupfxwHH1mU/yWc9RxqVNcou3s= - - Headers/WFCCMessageContent.h - - ts0Q3p2wCt5/RGJYerWAVLLsMNg= - - Headers/WFCCModifyGroupAliasNotificationContent.h - - xEi8aY2nCX0jEEJfsGwz5knD7KA= - - Headers/WFCCModifyGroupExtraNotificationContent.h - - J11Ewm5umPZvVVeszmXP2g51NxU= - - Headers/WFCCModifyGroupMemberExtraNotificationContent.h - - rvJSIEXlU01q/ndzXoOgKR6dH1s= - - Headers/WFCCMultiCallOngoingMessageContent.h - - rPce0YbjYgHWcEDWp13gv00C7Gs= - - Headers/WFCCNetworkService.h - - hd+L+d6hS490ulG7MwVSl8ODyeg= - - Headers/WFCCNotDeliveredMessageContent.h - - oyuBhzo8KFD+LG1HZC7IqpKsAjk= - - Headers/WFCCNotificationMessageContent.h - - 23T1DmQe0mNYLQJRU0XeoKGklM0= - - Headers/WFCCPCLoginRequestMessageContent.h - - k/r3Yv0yVSbq6FU8T2CLxq6b6z4= - - Headers/WFCCPCOnlineInfo.h - - XHYyRIsilrjHZNVPPS4a7PxHNG4= - - Headers/WFCCPTTSoundMessageContent.h - - 7stUp2OKzIWTx4Ayf7A0r+XECrg= - - Headers/WFCCPTextMessageContent.h - - kEio/hGlyJShUFOyrmLfaDmW4W4= - - Headers/WFCCProtocol.h - - jPpd/6CLqGMng5+HetFH0QrZn6w= - - Headers/WFCCQuitGroupNotificationContent.h - - izkDAFN61r74fJuQzwzvb6WTrGs= - - Headers/WFCCQuitGroupVisibleNotificationContent.h - - MNjEZtRR3RODbTrJ1wN84iTWVi4= - - Headers/WFCCQuoteInfo.h - - ERBNbAyfOp3vf/yfH+xFXvRHVfE= - - Headers/WFCCRawMessageContent.h - - WXiU7KJa9MfydsGPUvEbQSkLbrw= - - Headers/WFCCReadReport.h - - RLnJXSMYZRuIrADwxk5m1TIhc2M= - - Headers/WFCCRecallMessageContent.h - - tf4uFEBvokiIXp5TyVpuJAFcLwU= - - Headers/WFCCRichNotificationMessageContent.h - - HpaBViVQ5Mr3Ar1gUKE0eiwkkqU= - - Headers/WFCCSecretChatInfo.h - - mBV4K2IicEM4D2l15yHmYUI+Nwc= - - Headers/WFCCSoundMessageContent.h - - 0HKp6UzDYPNtMEsF5Le0HHTdyCw= - - Headers/WFCCStartSecretChatMessageContent.h - - uy8dt0OafAkux/C2TQSRVlrC/Mo= - - Headers/WFCCStickerMessageContent.h - - RAl4w/bqWh+smqw9zyeBe9/c3H4= - - Headers/WFCCStreamingTextGeneratedMessageContent.h - - woFKNIgjsc8naNTMxv42sLuuYhg= - - Headers/WFCCStreamingTextGeneratingMessageContent.h - - 85FlvdNUDtADujETMUtI3O3xsTI= - - Headers/WFCCTextMessageContent.h - - uwVXSj/YvO4q1d6NgcSSoyKtEgU= - - Headers/WFCCThingsDataContent.h - - H0kbM+U+UuGJRdrAD80JPThvhEg= - - Headers/WFCCThingsLostEventContent.h - - dcQoEIqU6LrlKnTkods0HxE6IZo= - - Headers/WFCCTipNotificationMessageContent.h - - OUWpXw5oLCcRrZzKMinv4QWyeog= - - Headers/WFCCTransferGroupOwnerNotificationContent.h - - uPQxlwZhswwfQUa2jsCbTnS3GaI= - - Headers/WFCCTypingMessageContent.h - - V5jsf9t7lOaQcn4ZbE+Gs0z3RN8= - - Headers/WFCCUnknownMessageContent.h - - mp0JrMWcEog34JuOo8tTwVYxbOM= - - Headers/WFCCUnreadCount.h - - qQ9rtAub4TjppdUgobFrqZgF3S8= - - Headers/WFCCUserInfo.h - - hKbTUBb3e458uNUCvQfNsR/gIKc= - - Headers/WFCCUserOnlineState.h - - myA+bGrEbvSQvNI9uqAOakbK91w= - - Headers/WFCCUtilities.h - - u+c0kIEjg98+zbsS706mne3lYoQ= - - Headers/WFCCVideoMessageContent.h - - xqitZmCxwt/yGMV+5vCzjpLRiWQ= - - Headers/WFCChatClient.h - - YTmzHdMi4ejNPlcRcOgf3GlkmxI= - - Info.plist - - UX4ZcGUOTuFjNe5fOCCZwwBQApQ= - - - files2 - - Headers/Common.h - - hash2 - - OUz6QgVKd+5TOOTzJbqUGALWGfkJndXC7brw3xJJ3pM= - - - Headers/WFCCAddGroupeMemberNotificationContent.h - - hash2 - - EpsJAfExMfDRxNnkv78FsRq19MxhZOOa7zAXkJWjhqc= - - - Headers/WFCCArticlesMessageContent.h - - hash2 - - eorX+dyEZxC/KyOBe/GEDyXrvHZZuhiwWYPaavCA2Lo= - - - Headers/WFCCCallAddParticipantMessageContent.h - - hash2 - - AlXCupdVJRWmVnjglrGyavED8Yz+sbIqoYS0GBu/vbI= - - - Headers/WFCCCallByeMessageContent.h - - hash2 - - 4mJFazKyranTM2fv8KTUwvpIaQmp3IE4H1Vd6yHGz7k= - - - Headers/WFCCCallStartMessageContent.h - - hash2 - - rsMetvs+P6KcPYwKQIE83DDG2zu1ydb0QMmEcvvfmpo= - - - Headers/WFCCCardMessageContent.h - - hash2 - - ZoU9cqNIFYZOPzL6ndiJPN2s7f+BhiB9xBaL4eXipKM= - - - Headers/WFCCChangeGroupNameNotificationContent.h - - hash2 - - 1EWF3W/5k+s0yQUIo+/STDR/vYjq7hCAPZs7haV/GxY= - - - Headers/WFCCChangeGroupPortraitNotificationContent.h - - hash2 - - VeQkDgvx4xzLQAUvHOZX+DP0pe5iFNa+W8tVeUHXBIg= - - - Headers/WFCCChannelInfo.h - - hash2 - - 6WeFt0dSRLGSnbn64ICrnGtZNphvudqH/V7qBn7feq8= - - - Headers/WFCCChannelMenu.h - - hash2 - - SkZwdrq3TA0/ZErc4eU/x4ym30IS7nxEdFxUl4CXjLg= - - - Headers/WFCCChannelMenuEventMessageContent.h - - hash2 - - kqR96xTnrwWJmDLxvCP1HsTHLjq9ABAJpUPhY1Ofxow= - - - Headers/WFCCChatroomInfo.h - - hash2 - - iGzH+D/CP1f+3wl2eHqSQ9bsMEdrhI/58jAUiFwDl3o= - - - Headers/WFCCChatroomMemberInfo.h - - hash2 - - zxOmgf7enEISucSuoB9IsV/o9VzSHNlp5Zmg/9/pPpY= - - - Headers/WFCCCompositeMessageContent.h - - hash2 - - CM2kbabygG2hCZmfD2Jk6Z99D1Yn8nRXo+K7m+eju1E= - - - Headers/WFCCConferenceInviteMessageContent.h - - hash2 - - i8Y2mtcByVLP4UMiRKgNlmQqCT7bykO4g0ktXi6pmcM= - - - Headers/WFCCConversation.h - - hash2 - - jd69mtim8Cq3R7mScjM5ryetKb/6+r0Jqk/i4dupGHE= - - - Headers/WFCCConversationInfo.h - - hash2 - - 3f+ILGU/FlBtVp22NTlznEAdS12YcE1WyJTFv7dq1V0= - - - Headers/WFCCConversationSearchInfo.h - - hash2 - - +2AEC1ivfDfqhL/uNJFq5bOOvu6Qadi3lGxt6CEvQYw= - - - Headers/WFCCCreateGroupNotificationContent.h - - hash2 - - pY7DoXVZyiYgFnGGEJb78fCgHMnUy1ObDFXeiAZof50= - - - Headers/WFCCDeleteMessageContent.h - - hash2 - - TpgwOudamzEDDSNDNggq0kwmq5Ekq/6GaYxWm9ZgOFs= - - - Headers/WFCCDeliveryReport.h - - hash2 - - OWY6aKmCkIe/yDO9vQaWTp/aV+Y7lbOLdxoykWcyeRY= - - - Headers/WFCCDictionary.h - - hash2 - - gW9qatoKB4pZEuLaDnanhd2YRA8GDovWdsUtbjHtSyo= - - - Headers/WFCCDismissGroupNotificationContent.h - - hash2 - - yaQ1yXmDH4B6pvTWMTMvD0f6MEioOBwVzOZS8cC93ug= - - - Headers/WFCCDomainInfo.h - - hash2 - - 9dTddUQIhN8t7WIrLra4TexL7x/tVyBLJDh9Hmz9Qy0= - - - Headers/WFCCEnterChannelChatMessageContent.h - - hash2 - - SVqeTZMQkETc7rzmwNlbMZhOVwV2HOcrrBW9VEWX4nw= - - - Headers/WFCCEnums.h - - hash2 - - YIv49UhmyEim+Jj4uTU0+9/bH88b7wdcSP4UiUwvo9s= - - - Headers/WFCCFileMessageContent.h - - hash2 - - Ke5naJ1rrOtdXPhmBi8Vs9tpTDUsZJxlzB7VcIg73AY= - - - Headers/WFCCFileRecord.h - - hash2 - - XwwSIhCpYldnFXUQc5XmQ/A1nR8leevRi5By0He+ECk= - - - Headers/WFCCFriend.h - - hash2 - - gHJ0WNEnSAHVNBZsBDweyX67wAwVb4+gl4kGrMDdp5A= - - - Headers/WFCCFriendAddedMessageContent.h - - hash2 - - VgBKXgCr2B3Sn6STGs8v9TrrI9SePwHkd0fj11L+JoI= - - - Headers/WFCCFriendGreetingMessageContent.h - - hash2 - - sdlJyHijoC7vh+e19I37KCEe8UrSHdSTsKyIMcplRmY= - - - Headers/WFCCFriendRequest.h - - hash2 - - 01sNgzdBzWU0dGsP/HexiSsqXQSkxYSD09Ie1sPwoJc= - - - Headers/WFCCGroupInfo.h - - hash2 - - yv3HF/PGRpX5iccbi0fiJG8mwChwQsKdgLzhVP8IdaE= - - - Headers/WFCCGroupJoinTypeNotificationContent.h - - hash2 - - UWXVAFchCctfR1zw4Z58MLM5ktwA3TVUziHrAkMz1BY= - - - Headers/WFCCGroupMember.h - - hash2 - - qjxJ2oQGZjuzDeywVker6TOv0ZWCiWCBXidQMW0FTKA= - - - Headers/WFCCGroupMemberAllowNotificationContent.h - - hash2 - - 2/m6Yd2/ZdGmiaQON/XjzuUTrcj/4o4Q18sKj7W48pE= - - - Headers/WFCCGroupMemberMuteNotificationContent.h - - hash2 - - XowKDr3PicQyindTuBp3s8Isf3m6toxGK8yo0DYVUvw= - - - Headers/WFCCGroupMuteNotificationContent.h - - hash2 - - I0vaBMST9PHfXlQ7n7THkN3IfD1q5orzXPvJD3Y/p5A= - - - Headers/WFCCGroupPrivateChatNotificationContent.h - - hash2 - - uaqdJhtVebaqAGbG6p4KxdgvyxAJLe4xfPslLpTYnLY= - - - Headers/WFCCGroupSearchInfo.h - - hash2 - - MbFwI4GeIC1sZHtxQuWRW1n/iw7C5fC9W8/vChToadU= - - - Headers/WFCCGroupSetManagerNotificationContent.h - - hash2 - - tijnFDgdln12dG2BqpOiWDVKuT4PjjRrVVNtY9ZIf+M= - - - Headers/WFCCGroupSettingsNotificationContent.h - - hash2 - - LRh2YozvXUyuyZfZDBx+KYZ5ALMg4IWrPF2uVAACBaA= - - - Headers/WFCCIMService.h - - hash2 - - mBkCL5a6IYUWcNarNs1Vg0ZksuzmRnNga1hfGrsDgvw= - - - Headers/WFCCImageMessageContent.h - - hash2 - - FOZ1hIIJG3HxNJkKL8cq64oulkGMDE01xaijw8l9yu4= - - - Headers/WFCCJoinCallRequestMessageContent.h - - hash2 - - zAu3dFjJzIl7b4I7P0EfZDoZqHbcZp4kaKlNTTHvGR0= - - - Headers/WFCCJsonSerializer.h - - hash2 - - KHLxniBuW1A6P/7NDiBSA33RF5FkBdUPjW3ILs3gdNg= - - - Headers/WFCCKickoffGroupMemberNotificationContent.h - - hash2 - - VLESbz/gJhDUmVs8OF992uc8EQ8ft8lQjN63t18TztE= - - - Headers/WFCCKickoffGroupMemberVisibleNotificationContent.h - - hash2 - - g3ZRN9hG636KMqyF7BuAl+peP3ryebf/LNfEPt3ZquA= - - - Headers/WFCCLeaveChannelChatMessageContent.h - - hash2 - - W1ziobFnL+1IGb7kMr/mJuaeAfbYb4JsVNsoxy2nNzM= - - - Headers/WFCCLinkMessageContent.h - - hash2 - - je04qlCJ87zmGhkaSwh+Y3mcZIWt8jDy233GgimsPQQ= - - - Headers/WFCCLocationMessageContent.h - - hash2 - - IMZf3SSoWodHaydvsD6VhKdTsqbEfZSFIH+6uyDYfPk= - - - Headers/WFCCMediaMessageContent.h - - hash2 - - ohbLG9MuRZtoapfSoVeBwmN8Q6N071RFZurZw+SgUEY= - - - Headers/WFCCMessage.h - - hash2 - - b32LtXrfugMv9vxXe/tA/rk41xt+e8ObTwX5OVIcw3Y= - - - Headers/WFCCMessageContent.h - - hash2 - - ZUosxN4ZrEZc5LvPK9LAXH0j6xRGHvXUiSuO7B7SP8I= - - - Headers/WFCCModifyGroupAliasNotificationContent.h - - hash2 - - 0EgehauC2ez48MrpabNN0yz2isB2ZIxFJGouIKcNMKE= - - - Headers/WFCCModifyGroupExtraNotificationContent.h - - hash2 - - wllrfca9rDDL+h5vY/49hXRSEkV6fkHjT1d+3t2mrqI= - - - Headers/WFCCModifyGroupMemberExtraNotificationContent.h - - hash2 - - vvdI3gmsn22GewXsrtCwLW8H/vprxgNdgsFRkBW601U= - - - Headers/WFCCMultiCallOngoingMessageContent.h - - hash2 - - FUXfJtGBWghjBX7GTYXvOE21kR3q4Ap1FbiyXkntgl4= - - - Headers/WFCCNetworkService.h - - hash2 - - u7/nKUxTVnTIJOvcoRo63P7OVmQ604HPdR9G4rcjlpo= - - - Headers/WFCCNotDeliveredMessageContent.h - - hash2 - - gHNvnH4GdODwGySG/8DFUw7aL9ab69LGBMuYqQ2YXks= - - - Headers/WFCCNotificationMessageContent.h - - hash2 - - YUZRfLun/R7I0bqHw4Mrl7KnnhfKaj0/wnbM0IDC9Pg= - - - Headers/WFCCPCLoginRequestMessageContent.h - - hash2 - - TAI09QlP7msC4SY0HrdIsyX1ootM+izGqQAdB3vRpqY= - - - Headers/WFCCPCOnlineInfo.h - - hash2 - - u41qwzHVYIrR+jZEvDimNA4YkNTwlYa6DGH8BaLK9ks= - - - Headers/WFCCPTTSoundMessageContent.h - - hash2 - - uzOi0HhJUOs0f4ktkgNc4xjCD1dTn8n5lEzoTc4jjSs= - - - Headers/WFCCPTextMessageContent.h - - hash2 - - XvZRKc8mf2/ZkoBHyDwnMLrng068LcZ13kzwSReKeOA= - - - Headers/WFCCProtocol.h - - hash2 - - 9o0gXvEi64Dd55DhgP6FPY/rZQg1vSIgfz3rXFnYHFg= - - - Headers/WFCCQuitGroupNotificationContent.h - - hash2 - - nmH0DF0aPGko6SbGYUf8+s+RFrQsJmvARGD34QAJxG8= - - - Headers/WFCCQuitGroupVisibleNotificationContent.h - - hash2 - - CuwdqTD5998kNuu0JcxS5Az+EmbfWjJReUuabz/Khas= - - - Headers/WFCCQuoteInfo.h - - hash2 - - HAwGIa4WqeAMr18p0GnQZlAtK7s9E3ihLD0Jaid98Vo= - - - Headers/WFCCRawMessageContent.h - - hash2 - - KIz5yhX9/j8m8xgWvw+ELYb4Ic+t52rEdDvg8i7jMqY= - - - Headers/WFCCReadReport.h - - hash2 - - rb7Q1EBA8r69zD0qiFTZn39sDs/oDiE441mqfdkiXh4= - - - Headers/WFCCRecallMessageContent.h - - hash2 - - 4R32Hfzp8TJRJ/Tk6B9zLNlUHExhecCwQWQnkFuEiiI= - - - Headers/WFCCRichNotificationMessageContent.h - - hash2 - - AWLzzGhyJma3YPMkATkkyqg5HlibEtPPGzwBDvPwZIU= - - - Headers/WFCCSecretChatInfo.h - - hash2 - - nI0vyOBAZvUzP0U37E9A9srzyBkpsjrTB2ATuVj7Kg0= - - - Headers/WFCCSoundMessageContent.h - - hash2 - - QcRbqxV27KMf/X8BQkrEn5jlEKg+5y5/wOzuxWAvS9w= - - - Headers/WFCCStartSecretChatMessageContent.h - - hash2 - - zVx5tl6i3NxpMLBX31K56SRqqeaytZORhC155BAReX0= - - - Headers/WFCCStickerMessageContent.h - - hash2 - - u+ZA58dpp4fGpgt9h83RjYiUjhMSYvcikS6w3S8O0co= - - - Headers/WFCCStreamingTextGeneratedMessageContent.h - - hash2 - - j4yUn7cF4oon36TRIsHKKtGVyfUaRWA4px3T3G2cf1I= - - - Headers/WFCCStreamingTextGeneratingMessageContent.h - - hash2 - - UItFJ9Sz9qIpBgv7yiyg/qqUecTV+QWquwxxpU8d9eg= - - - Headers/WFCCTextMessageContent.h - - hash2 - - 3eXlmFboM0t2OueHk+0BWwrcTz69Xm7kS4s4YVqHW+Y= - - - Headers/WFCCThingsDataContent.h - - hash2 - - YGvz8OLe1OD+lFQ17Y+uoAWaWx9KaiSEfPXtlZzobCk= - - - Headers/WFCCThingsLostEventContent.h - - hash2 - - AO38+ub8YBjHe/S3FcFXi6APYTBz1x1s7KpA+3PIXTA= - - - Headers/WFCCTipNotificationMessageContent.h - - hash2 - - 90RsFbgpcU6nG7UDzgXhe8VMRY4UDWpJbOLhyerU9pQ= - - - Headers/WFCCTransferGroupOwnerNotificationContent.h - - hash2 - - YGI11q4MRfksjgvqvIs6M7cOwRuQOimeTS4UtJ9BTKQ= - - - Headers/WFCCTypingMessageContent.h - - hash2 - - LkZ8mliAFqDgG1lgsFcc/956jRa+dWiMwfgkUzl/lnk= - - - Headers/WFCCUnknownMessageContent.h - - hash2 - - NpelLyOoJaPjiony8BiFENJKfUGX9/CmDoPkAxalSRw= - - - Headers/WFCCUnreadCount.h - - hash2 - - WXsnUNjKVv7ZLm292UKOidK0hrONKryavW9IZyJLUoQ= - - - Headers/WFCCUserInfo.h - - hash2 - - 3WCjD1cFMpZKuQCFJLf1y6zkEAba2E+SNp/g2GR/y4s= - - - Headers/WFCCUserOnlineState.h - - hash2 - - 4q1EGCs8+qY9p74Q4Tmib7ZisLHSjDkJ5kd4tlvKoXE= - - - Headers/WFCCUtilities.h - - hash2 - - DORRwQpFPlDe7v7nLakyPNjn5Q4wnncxMPctNDELjCM= - - - Headers/WFCCVideoMessageContent.h - - hash2 - - dAzsmak0E5VmmiaDL6mlrhniCf97j7d3ksK8KMHFwmU= - - - Headers/WFCChatClient.h - - hash2 - - SN/V2LZZOrL/mx0ZsSQ1aoO1aV8DmyBEVVjt+B9o4Wk= - - - - rules - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/Info.plist b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/Info.plist deleted file mode 100644 index 64e6d6bc..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/Info.plist +++ /dev/null @@ -1,44 +0,0 @@ - - - - - AvailableLibraries - - - BinaryPath - WFClientUniPlugin.framework/WFClientUniPlugin - LibraryIdentifier - ios-arm64 - LibraryPath - WFClientUniPlugin.framework - SupportedArchitectures - - arm64 - - SupportedPlatform - ios - - - BinaryPath - WFClientUniPlugin.framework/WFClientUniPlugin - LibraryIdentifier - ios-arm64_x86_64-simulator - LibraryPath - WFClientUniPlugin.framework - SupportedArchitectures - - arm64 - x86_64 - - SupportedPlatform - ios - SupportedPlatformVariant - simulator - - - CFBundlePackageType - XFWK - XCFrameworkFormatVersion - 1.0 - - diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/Info.plist b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/Info.plist deleted file mode 100644 index e879dcce..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/Info.plist and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/WFClientUniPlugin b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/WFClientUniPlugin deleted file mode 100644 index ee5d0215..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/WFClientUniPlugin and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeDirectory b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeDirectory deleted file mode 100644 index f27c6378..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeDirectory and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeRequirements b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeRequirements deleted file mode 100644 index e47bbb61..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeRequirements and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeRequirements-1 b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeRequirements-1 deleted file mode 100644 index e421ea6f..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeRequirements-1 and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeResources b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeResources deleted file mode 100644 index b72585f2..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeResources +++ /dev/null @@ -1,101 +0,0 @@ - - - - - files - - Info.plist - - Edg5rJBJ4TsmLkqIHL+p7R3c5/Y= - - - files2 - - rules - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeSignature b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeSignature deleted file mode 100644 index 1c9716d7..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64/WFClientUniPlugin.framework/_CodeSignature/CodeSignature and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/Info.plist b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/Info.plist deleted file mode 100644 index 041a9a49..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/Info.plist and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/WFClientUniPlugin b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/WFClientUniPlugin deleted file mode 100644 index a5655b74..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/WFClientUniPlugin and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeDirectory b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeDirectory deleted file mode 100644 index 0c221532..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeDirectory and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeRequirements b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeRequirements deleted file mode 100644 index dbf9d614..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeRequirements and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeRequirements-1 b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeRequirements-1 deleted file mode 100644 index 39e93fcc..00000000 Binary files a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeRequirements-1 and /dev/null differ diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeResources b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeResources deleted file mode 100644 index e4057316..00000000 --- a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeResources +++ /dev/null @@ -1,101 +0,0 @@ - - - - - files - - Info.plist - - Q/5mdW7y80BUozZhxnFgSrRY+QY= - - - files2 - - rules - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^version.plist$ - - - rules2 - - .*\.dSYM($|/) - - weight - 11 - - ^(.*/)?\.DS_Store$ - - omit - - weight - 2000 - - ^.* - - ^.*\.lproj/ - - optional - - weight - 1000 - - ^.*\.lproj/locversion.plist$ - - omit - - weight - 1100 - - ^Base\.lproj/ - - weight - 1010 - - ^Info\.plist$ - - omit - - weight - 20 - - ^PkgInfo$ - - omit - - weight - 20 - - ^embedded\.provisionprofile$ - - weight - 20 - - ^version\.plist$ - - weight - 20 - - - - diff --git a/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeSignature b/nativeplugins/wf-uni-wfc-client/ios/WFClientUniPlugin.xcframework/ios-arm64_x86_64-simulator/WFClientUniPlugin.framework/_CodeSignature/CodeSignature deleted file mode 100644 index e69de29b..00000000 diff --git a/nativeplugins/wf-uni-wfc-client/package.json b/nativeplugins/wf-uni-wfc-client/package.json deleted file mode 100644 index 9e78a919..00000000 --- a/nativeplugins/wf-uni-wfc-client/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "野火IM SDK", - "id": "wf-uni-wfc-client", - "version": "0.1.2", - "description": "野火IM 原生插件", - "_dp_type": "nativeplugin", - "_dp_nativeplugin": { - "android": { - "plugins": [ - { - "type": "module", - "name": "wf-uni-wfc-client", - "class": "cn.wildfirechat.uni.client.ClientModule" - } - ], - "hooksClass": "cn.wildfirechat.uni.client.ClientUniAppHookProxy", - "integrateType": "aar", - "dependencies": [ - "androidx.lifecycle:lifecycle-extensions:2.2.0" - ], - "abis": [ - "arm64-v8a", - "armeabi-v7a", - "x86" - ], - "minSdkVersion": 21, - "compileOptions": { - "sourceCompatibility": "1.8", - "targetCompatibility": "1.8" - }, - "useAndroidX": true - }, - "ios": { - "plugins": [ - { - "type": "module", - "name": "wf-uni-wfc-client", - "class": "WFClientModule" - } - ], - "frameworks": [ - "Bugly.framework", - "WFClientUniPlugin.xcframework", - "WFChatClient.xcframework" - ], - "embedFrameworks": [ - "WFChatClient.xcframework" - ], - "validArchitectures": [ - "arm64" - ], - "hooksClass": "WFClientProxy", - "integrateType": "framework", - "deploymentTarget": "11.0" - } - } -} \ No newline at end of file diff --git a/package.json b/package.json index b83462cd..2a76fbd9 100644 --- a/package.json +++ b/package.json @@ -60,18 +60,7 @@ "pinia-plugin-persist-uni": "^1.2.0", "vue": "^3.4.21", "vue-i18n": "^9.1.9", - "weixin-js-sdk": "^1.6.0", - "anchorme": "^2.1.2", - "base64-arraybuffer": "^1.0.2", - "emojilib": "^3.0.6", - "events": "^3.3.0", - "long": "^5.2.0", - "mitt": "^3.0.1", - "pinyin": "^4.0.0-alpha.0", - "resize-image": "^0.1.0", - "segmentit": "^2.0.3", - "twemoji": "^14.0.2", - "universal-emoji-parser": "1.0.125" + "weixin-js-sdk": "^1.6.0" }, "devDependencies": { "@dcloudio/types": "^3.4.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..bb150ab9 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,8808 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@dcloudio/uni-app': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(@dcloudio/types@3.4.28)(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-app-harmony': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-app-plus': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-components': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-h5': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-alipay': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-baidu': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-jd': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-kuaishou': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-lark': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-qq': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-toutiao': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-weixin': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-xhs': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-quickapp-webview': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-ui': + specifier: ^1.5.11 + version: 1.5.11 + '@vant/area-data': + specifier: ^2.1.0 + version: 2.1.0 + dayjs: + specifier: ^1.11.7 + version: 1.11.19 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + luch-request: + specifier: ^3.0.8 + version: 3.1.1 + pinia: + specifier: ^2.0.33 + version: 2.3.1(typescript@4.9.5)(vue@3.5.25(typescript@4.9.5)) + pinia-plugin-persist-uni: + specifier: ^1.2.0 + version: 1.3.1(pinia@2.3.1(typescript@4.9.5)(vue@3.5.25(typescript@4.9.5)))(vue@3.5.25(typescript@4.9.5)) + vue: + specifier: ^3.4.21 + version: 3.5.25(typescript@4.9.5) + vue-i18n: + specifier: ^9.1.9 + version: 9.14.5(vue@3.5.25(typescript@4.9.5)) + weixin-js-sdk: + specifier: ^1.6.0 + version: 1.6.5 + devDependencies: + '@dcloudio/types': + specifier: ^3.4.8 + version: 3.4.28 + '@dcloudio/uni-automator': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(jest-environment-node@27.5.1)(jest@27.0.4)(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-cli-shared': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-stacktracey': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001 + '@dcloudio/vite-plugin-uni': + specifier: 3.0.0-4030620241128001 + version: 3.0.0-4030620241128001(postcss@8.5.6)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5)) + '@types/node': + specifier: ^24.9.1 + version: 24.10.1 + '@uni-helper/uni-app-types': + specifier: 1.0.0-alpha.6 + version: 1.0.0-alpha.6(typescript@4.9.5)(vue@3.5.25(typescript@4.9.5)) + '@uni-helper/uni-ui-types': + specifier: 1.0.0-alpha.6 + version: 1.0.0-alpha.6(@uni-helper/uni-app-types@1.0.0-alpha.6(typescript@4.9.5)(vue@3.5.25(typescript@4.9.5)))(typescript@4.9.5)(vue@3.5.25(typescript@4.9.5)) + '@vue/runtime-core': + specifier: ^3.4.21 + version: 3.5.25 + '@vue/tsconfig': + specifier: ^0.1.3 + version: 0.1.3(@types/node@24.10.1) + prettier: + specifier: ^2.8.7 + version: 2.8.8 + sass: + specifier: 1.78.0 + version: 1.78.0 + typescript: + specifier: ^4.9.4 + version: 4.9.5 + unocss: + specifier: ^66.5.6 + version: 66.5.9(postcss@8.5.6)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1)) + unocss-preset-weapp: + specifier: ^66.0.2 + version: 66.0.2(esbuild@0.20.2)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1)) + vconsole: + specifier: ^3.15.0 + version: 3.15.1 + vite: + specifier: 5.2.8 + version: 5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1) + vite-plugin-compression: + specifier: ^0.5.1 + version: 0.5.1(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1)) + vue-tsc: + specifier: ^1.0.24 + version: 1.8.27(typescript@4.9.5) + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@antfu/install-pkg@1.1.0': + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@antfu/utils@9.3.0': + resolution: {integrity: sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA==} + + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.28.5': + resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.28.5': + resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.28.5': + resolution: {integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.28.5': + resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.5': + resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.28.5': + resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.3': + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.27.1': + resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.27.1': + resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-wrap-function@7.28.3': + resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.28.4': + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.27.7': + resolution: {integrity: sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': + resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': + resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': + resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': + resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3': + resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-bigint@7.8.3': + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.27.1': + resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.27.1': + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-arrow-functions@7.27.1': + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.28.0': + resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.27.1': + resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.27.1': + resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.28.5': + resolution: {integrity: sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.27.1': + resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-static-block@7.28.3': + resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.28.4': + resolution: {integrity: sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.27.1': + resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.28.5': + resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dotall-regex@7.27.1': + resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-keys@7.27.1': + resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': + resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-dynamic-import@7.27.1': + resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-explicit-resource-management@7.28.0': + resolution: {integrity: sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-exponentiation-operator@7.28.5': + resolution: {integrity: sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-export-namespace-from@7.27.1': + resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.27.1': + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.27.1': + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-json-strings@7.27.1': + resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.27.1': + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.28.5': + resolution: {integrity: sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.27.1': + resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-amd@7.27.1': + resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.27.1': + resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-systemjs@7.28.5': + resolution: {integrity: sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-umd@7.27.1': + resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': + resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-new-target@7.27.1': + resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': + resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.27.1': + resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.28.4': + resolution: {integrity: sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.27.1': + resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.27.1': + resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.28.5': + resolution: {integrity: sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.27.7': + resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.27.1': + resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.27.1': + resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.27.1': + resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.28.4': + resolution: {integrity: sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regexp-modifiers@7.27.1': + resolution: {integrity: sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-reserved-words@7.27.1': + resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.27.1': + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.27.1': + resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.27.1': + resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.27.1': + resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.27.1': + resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.28.5': + resolution: {integrity: sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.27.1': + resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-property-regex@7.27.1': + resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.27.1': + resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.27.1': + resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/preset-env@7.28.5': + resolution: {integrity: sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-modules@0.1.6-no-external-plugins': + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + + '@babel/runtime@7.28.4': + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.27.7': + resolution: {integrity: sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.28.5': + resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} + + '@bcoe/v8-coverage@0.2.3': + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + + '@dcloudio/types@2.6.12': + resolution: {integrity: sha512-mrCMwcINy1IFjU9VUqLeWBkj404yWs5paLDttBcA+eqUjanuUQbBcTVPqlrGgkyzLXDcV2oDDZRSNxNpXi4kMQ==} + + '@dcloudio/types@3.4.28': + resolution: {integrity: sha512-uVIRp1VLBkrL0LaGLgIS/sT3bl1zzVTKZQbfqJEQcSAvBffRdirbSh5OvOHfA1WV5lmCAGfjhKsUQouNEVUQHg==} + + '@dcloudio/uni-app-harmony@3.0.0-4030620241128001': + resolution: {integrity: sha512-T2coKkZawltfsgvaPX8bfAQofmHTpkPiZB8Am3gcnkHRE/Z3NOOlk/Ko5EezuquSulTJvOkMMYcdyZcGZS4TLQ==} + + '@dcloudio/uni-app-plus@3.0.0-4030620241128001': + resolution: {integrity: sha512-iSWCNQ682XKJ6K4U+hnNFFd/83wFkl66l2RvUNlq9DZalh5LnEO+W1/WqzIdeAr6KKB8gulNkTC+GAbGEOABDQ==} + + '@dcloudio/uni-app-uts@3.0.0-4030620241128001': + resolution: {integrity: sha512-VM4leJqf50UDR/9MMYAHxnKBNf13gpZWZUe8L11ai3zppubh+J12vaVBYmzAitOPCG6LaGnYSlYp3uxxGiEiLw==} + + '@dcloudio/uni-app-vite@3.0.0-4030620241128001': + resolution: {integrity: sha512-sPSXJqU9zh26lKMPdDRqVjBH4mjXRLrjQGcUPqPNLTQ2TOBhhJtkmiBIYhhgvYgQ4SZ5zqRwXlBvFvyNxAHitA==} + + '@dcloudio/uni-app-vue@3.0.0-4030620241128001': + resolution: {integrity: sha512-BxblHfDWWmDW2+9M8TJwKNKCbvlmH0VGJvRYudF46vl7+6sRml/06YBy9KjhTRIY4WetN7IVYuSuA0PbH2HG+w==} + + '@dcloudio/uni-app@3.0.0-4030620241128001': + resolution: {integrity: sha512-J+hIUT+d2RIIKygO+2tOgHPgWjFtnpTTLLBYd2QsXtxWGDqV2CRvf2FG4KzNf82P46OjUh54O+EJwvAcMFItCg==} + peerDependencies: + '@dcloudio/types': ^3.4.14 + + '@dcloudio/uni-automator@3.0.0-4030620241128001': + resolution: {integrity: sha512-TsJnM9yaSWTnw8eApaNMpdH/+VNC9rjwLDJ6vyMpsYPCxko7LVQmu6QlAbNYONBFvaM5P63qlbooinPvnue2sA==} + peerDependencies: + jest: 27.0.4 + jest-environment-node: 27.5.1 + + '@dcloudio/uni-cli-shared@3.0.0-4030620241128001': + resolution: {integrity: sha512-GidAAGBxpSV+77hPLWAACYJDsrcgRXTay+NNO1HPx4ESlOzuUPh9bFWkZL+D5hYcE0uj9xpwX0rMX4hYxApJEw==} + engines: {node: ^14.18.0 || >=16.0.0} + + '@dcloudio/uni-cloud@3.0.0-4030620241128001': + resolution: {integrity: sha512-UcQwaBEoQHlA/SNxFij4kITjbbeNmOsOc3VC3PekNDL2rWvNTnH/H5ZWgTmLGn/7mmBmZfAzoF79c1KlVrHdJg==} + + '@dcloudio/uni-components@3.0.0-4030620241128001': + resolution: {integrity: sha512-2yZko6In0XAeEHu9WqOjPj3a5r4wF53KDRRvRoxWBEvKg6byUmVg1NEl68N4cE4sa1I6P99jQO4D/SeI/6Dp7w==} + + '@dcloudio/uni-h5-vite@3.0.0-4030620241128001': + resolution: {integrity: sha512-z3tIO2FPQapUV6pj42cvNBrc6Uk2sH54GIC7uxdOGM2n3MWQJccycYaXqATLaMUFIHlHwQP4l+Ozw0dqTzc2mQ==} + + '@dcloudio/uni-h5-vue@3.0.0-4030620241128001': + resolution: {integrity: sha512-9fFUYXA30IlgSrNKv5WIP6ksKMaCycEjx6Zo64Tlfyz/8sK6HSQSbL/JE8TawCreci8JgreGOCLBESYXpqmKDA==} + + '@dcloudio/uni-h5@3.0.0-4030620241128001': + resolution: {integrity: sha512-Jo83ICFIx1O22Z8FEw57Lqed/gqWw9sm1yn15R3eoYxYJsRdRqFqB+C3ktKdLMDBXNukuUo0zK8IPTN3GWRefA==} + + '@dcloudio/uni-i18n@3.0.0-4030620241128001': + resolution: {integrity: sha512-0AMRvaQ1rxWceNoqkasosiOm9VY/CAziLohtD6WFYqvbn3U/rDy1cne8VpWcDItkNUFS8+mUIIVxp4RW09dtWw==} + + '@dcloudio/uni-mp-alipay@3.0.0-4030620241128001': + resolution: {integrity: sha512-D48x7NOwv6HhTHTnJ09BXA/kMflA+QrB2PTVDL8DhW5BUPsB8njRPwh3IHD1BBMKCmKKunEzCp5JLSq+7ZBJ7g==} + + '@dcloudio/uni-mp-baidu@3.0.0-4030620241128001': + resolution: {integrity: sha512-drjDb8AztZJFVmS+0e9g5a3XfwC0a4kjWk3usPMtOYf9DitwRR4p0vmCLv7MfBP//BzqXWrpYY/RaJVJ8A+H5Q==} + + '@dcloudio/uni-mp-compiler@3.0.0-4030620241128001': + resolution: {integrity: sha512-3ZkA/GAlvI/cTPm0zrhf3AHmROA3FXxb1XExdBX6LXY2XIY2psXm5ZFl1N9P3qPI6kEIPqu1H6Od51xfu8PxIg==} + + '@dcloudio/uni-mp-jd@3.0.0-4030620241128001': + resolution: {integrity: sha512-CDGj5kaU3ubjEqHjMLgMS7vjRXbQa8Kj49s48ODfxqY3gLQH2seMQ4SDw/b82I4UsYmMIAugfawTKBG3LY/DeA==} + + '@dcloudio/uni-mp-kuaishou@3.0.0-4030620241128001': + resolution: {integrity: sha512-vLJCV3R7sFZj8r4u70Lj5tGzzi7qbJXarrKYkR/xV4/oFQLy9ls5qlXHwj29S0N3qnazqhNMCKg+Ee8/jkatpg==} + + '@dcloudio/uni-mp-lark@3.0.0-4030620241128001': + resolution: {integrity: sha512-7xgnRZwsJKwVxyPQlwtnOYW4pZTDq9AFI2dbxWtVLR6PrGO/HnsxbDp8+dkLwL0OxM9LtnvP/uA57uPgTQmm7g==} + + '@dcloudio/uni-mp-qq@3.0.0-4030620241128001': + resolution: {integrity: sha512-3ow3Dtrne/k04GvSDGKjfbVcI6EQGEui6ag9//6StalJfCD5kXco5MjAl4EYhVTyKLSCsrsvWNdmUAfDdzWREw==} + + '@dcloudio/uni-mp-toutiao@3.0.0-4030620241128001': + resolution: {integrity: sha512-rZVrPIYFiQGfFgm5+1v3SlHUcl7pwfTl2UIEj+Fy98v6kYXoE1yb2AIC9R5t/35QLMXi9yGr7Lg36lp8OoW35w==} + + '@dcloudio/uni-mp-vite@3.0.0-4030620241128001': + resolution: {integrity: sha512-j0J9PIIE02sNJKhmErNHdB6VjCD/YipeP4qgLACymPnUzD3yZK8x7m4qufLyDPifuUXgvuNvVMhzAz/38RtJXA==} + + '@dcloudio/uni-mp-vue@3.0.0-4030620241128001': + resolution: {integrity: sha512-el5ZV62PK4KMhn3kyoAZWsFsDdHVXdTHVtTw++gzzG5PPIdCYgPtGGNZoJO0ZgPWfgtWw9MCoYRqdjFWSOmgBg==} + + '@dcloudio/uni-mp-weixin@3.0.0-4030620241128001': + resolution: {integrity: sha512-G3aw7dZUxpO3AvAX8gHbT9fq1LMn++GpE3rHRlXhrE9F+C9eVrRtwqt9EdVszZvJJu8X9aSK9kvaLFFgdSUGiw==} + + '@dcloudio/uni-mp-xhs@3.0.0-4030620241128001': + resolution: {integrity: sha512-lD7XL0FZZxPBmFDOiia/oEa2VTA0m2RqBq1WtnSwSeA0C81LFqutpObaA8+XBrIYVqeXs+9golW0Y1a8/FYAMA==} + + '@dcloudio/uni-nvue-styler@3.0.0-4030620241128001': + resolution: {integrity: sha512-SNSc5Pw3ekSI0SJ4K9bnbo3KCU3bKsqchLzeeMXe/4WbAs0NkTwoNf6UdzajMo15hsBDu2lJEIU9TsS0GcgZ5A==} + + '@dcloudio/uni-push@3.0.0-4030620241128001': + resolution: {integrity: sha512-zp5P9KY/pXV7mqFC1lsfqwt0sqT4cRKfS7vgyWb4CRiz4dwxhgFkQwIVyCNhpb1idzyEeK++HWf7dPDO/qU+8A==} + + '@dcloudio/uni-quickapp-webview@3.0.0-4030620241128001': + resolution: {integrity: sha512-scgFTl3PEzDQ6pIu2OZ2GlD9lD+fkfw5f9G57qEqFAH/YXYdXQz9JMD8dSa14e99Mk5FHu22sBW+n01jlJZ3lw==} + + '@dcloudio/uni-shared@3.0.0-4030620241128001': + resolution: {integrity: sha512-GrfljYl+hEfRaZZNlAzT35NVK6P4MBg9xMN+bNT2ALLwCt6pL/9tJZLask302sOSjOgjhAzaN9qNdVKCDo0H0A==} + + '@dcloudio/uni-stacktracey@3.0.0-4030620241128001': + resolution: {integrity: sha512-LJiiKBYYtHME4m0nAPM4VswPXxUopkx3XXkeHBQzEvNGGZZzxrDPpwZavpsifbJml5a47KOO9PsmoBiZymIxqQ==} + + '@dcloudio/uni-stat@3.0.0-4030620241128001': + resolution: {integrity: sha512-0WCvT+FIKxy1MNryK5nhKH1sBZchu5KTWv/nVZo+NmTwsvcdUf4rWei3DYq6Qo0ehBasVeW8nIIYoAwB7pDQsw==} + + '@dcloudio/uni-ui@1.5.11': + resolution: {integrity: sha512-DBtk046ofmeFd82zRI7d89SoEwrAxYzUN3WVPm1DIBkpLPG5F5QDNkHMnZGu2wNrMEmGBjBpUh3vqEY1L3jaMw==} + + '@dcloudio/vite-plugin-uni@3.0.0-4030620241128001': + resolution: {integrity: sha512-sXIuBQz/j/aUDc+uSJuTozUj8W6Wy6dtC1S7oS95yLqacNOrzAhITfNWpmY51Zff7NXIt4bp+V++awDo0wnLsg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + vite: ^5.2.8 + + '@esbuild/aix-ppc64@0.20.2': + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.20.2': + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.20.2': + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.20.2': + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.20.2': + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.20.2': + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.20.2': + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.20.2': + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.20.2': + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.20.2': + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.20.2': + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.20.2': + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.20.2': + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.20.2': + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.20.2': + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.20.2': + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.20.2': + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.20.2': + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.20.2': + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.20.2': + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.20.2': + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.20.2': + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.20.2': + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@3.0.2': + resolution: {integrity: sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ==} + + '@intlify/core-base@9.1.9': + resolution: {integrity: sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw==} + engines: {node: '>= 10'} + + '@intlify/core-base@9.14.5': + resolution: {integrity: sha512-5ah5FqZG4pOoHjkvs8mjtv+gPKYU0zCISaYNjBNNqYiaITxW8ZtVih3GS/oTOqN8d9/mDLyrjD46GBApNxmlsA==} + engines: {node: '>= 16'} + + '@intlify/devtools-if@9.1.9': + resolution: {integrity: sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ==} + engines: {node: '>= 10'} + + '@intlify/message-compiler@9.1.9': + resolution: {integrity: sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ==} + engines: {node: '>= 10'} + + '@intlify/message-compiler@9.14.5': + resolution: {integrity: sha512-IHzgEu61/YIpQV5Pc3aRWScDcnFKWvQA9kigcINcCBXN8mbW+vk9SK+lDxA6STzKQsVJxUPg9ACC52pKKo3SVQ==} + engines: {node: '>= 16'} + + '@intlify/message-resolver@9.1.9': + resolution: {integrity: sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA==} + engines: {node: '>= 10'} + + '@intlify/runtime@9.1.9': + resolution: {integrity: sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg==} + engines: {node: '>= 10'} + + '@intlify/shared@9.1.9': + resolution: {integrity: sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw==} + engines: {node: '>= 10'} + + '@intlify/shared@9.14.5': + resolution: {integrity: sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ==} + engines: {node: '>= 16'} + + '@intlify/vue-devtools@9.1.9': + resolution: {integrity: sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og==} + engines: {node: '>= 10'} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/console@27.5.1': + resolution: {integrity: sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + '@jest/core@27.5.1': + resolution: {integrity: sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/environment@27.5.1': + resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + '@jest/fake-timers@27.5.1': + resolution: {integrity: sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + '@jest/globals@27.5.1': + resolution: {integrity: sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + '@jest/reporters@27.5.1': + resolution: {integrity: sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/source-map@27.5.1': + resolution: {integrity: sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + '@jest/test-result@27.5.1': + resolution: {integrity: sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + '@jest/test-sequencer@27.5.1': + resolution: {integrity: sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + '@jest/transform@27.5.1': + resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + '@jest/types@27.5.1': + resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + '@jimp/bmp@0.10.3': + resolution: {integrity: sha512-keMOc5woiDmONXsB/6aXLR4Z5Q+v8lFq3EY2rcj2FmstbDMhRuGbmcBxlEgOqfRjwvtf/wOtJ3Of37oAWtVfLg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/core@0.10.3': + resolution: {integrity: sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA==} + + '@jimp/custom@0.10.3': + resolution: {integrity: sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ==} + + '@jimp/gif@0.10.3': + resolution: {integrity: sha512-vjlRodSfz1CrUvvrnUuD/DsLK1GHB/yDZXHthVdZu23zYJIW7/WrIiD1IgQ5wOMV7NocfrvPn2iqUfBP81/WWA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/jpeg@0.10.3': + resolution: {integrity: sha512-AAANwgUZOt6f6P7LZxY9lyJ9xclqutYJlsxt3JbriXUGJgrrFAIkcKcqv1nObgmQASSAQKYaMV9KdHjMlWFKlQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-blit@0.10.3': + resolution: {integrity: sha512-5zlKlCfx4JWw9qUVC7GI4DzXyxDWyFvgZLaoGFoT00mlXlN75SarlDwc9iZ/2e2kp4bJWxz3cGgG4G/WXrbg3Q==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-blur@0.10.3': + resolution: {integrity: sha512-cTOK3rjh1Yjh23jSfA6EHCHjsPJDEGLC8K2y9gM7dnTUK1y9NNmkFS23uHpyjgsWFIoH9oRh2SpEs3INjCpZhQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-circle@0.10.3': + resolution: {integrity: sha512-51GAPIVelqAcfuUpaM5JWJ0iWl4vEjNXB7p4P7SX5udugK5bxXUjO6KA2qgWmdpHuCKtoNgkzWU9fNSuYp7tCA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-color@0.10.3': + resolution: {integrity: sha512-RgeHUElmlTH7vpI4WyQrz6u59spiKfVQbsG/XUzfWGamFSixa24ZDwX/yV/Ts+eNaz7pZeIuv533qmKPvw2ujg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-contain@0.10.3': + resolution: {integrity: sha512-bYJKW9dqzcB0Ihc6u7jSyKa3juStzbLs2LFr6fu8TzA2WkMS/R8h+ddkiO36+F9ILTWHP0CIA3HFe5OdOGcigw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + + '@jimp/plugin-cover@0.10.3': + resolution: {integrity: sha512-pOxu0cM0BRPzdV468n4dMocJXoMbTnARDY/EpC3ZW15SpMuc/dr1KhWQHgoQX5kVW1Wt8zgqREAJJCQ5KuPKDA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + + '@jimp/plugin-crop@0.10.3': + resolution: {integrity: sha512-nB7HgOjjl9PgdHr076xZ3Sr6qHYzeBYBs9qvs3tfEEUeYMNnvzgCCGtUl6eMakazZFCMk3mhKmcB9zQuHFOvkg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-displace@0.10.3': + resolution: {integrity: sha512-8t3fVKCH5IVqI4lewe4lFFjpxxr69SQCz5/tlpDLQZsrNScNJivHdQ09zljTrVTCSgeCqQJIKgH2Q7Sk/pAZ0w==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-dither@0.10.3': + resolution: {integrity: sha512-JCX/oNSnEg1kGQ8ffZ66bEgQOLCY3Rn+lrd6v1jjLy/mn9YVZTMsxLtGCXpiCDC2wG/KTmi4862ysmP9do9dAQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-fisheye@0.10.3': + resolution: {integrity: sha512-RRZb1wqe+xdocGcFtj2xHU7sF7xmEZmIa6BmrfSchjyA2b32TGPWKnP3qyj7p6LWEsXn+19hRYbjfyzyebPElQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-flip@0.10.3': + resolution: {integrity: sha512-0epbi8XEzp0wmSjoW9IB0iMu0yNF17aZOxLdURCN3Zr+8nWPs5VNIMqSVa1Y62GSyiMDpVpKF/ITiXre+EqrPg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-rotate': '>=0.3.5' + + '@jimp/plugin-gaussian@0.10.3': + resolution: {integrity: sha512-25eHlFbHUDnMMGpgRBBeQ2AMI4wsqCg46sue0KklI+c2BaZ+dGXmJA5uT8RTOrt64/K9Wz5E+2n7eBnny4dfpQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-invert@0.10.3': + resolution: {integrity: sha512-effYSApWY/FbtlzqsKXlTLkgloKUiHBKjkQnqh5RL4oQxh/33j6aX+HFdDyQKtsXb8CMd4xd7wyiD2YYabTa0g==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-mask@0.10.3': + resolution: {integrity: sha512-twrg8q8TIhM9Z6Jcu9/5f+OCAPaECb0eKrrbbIajJqJ3bCUlj5zbfgIhiQIzjPJ6KjpnFPSqHQfHkU1Vvk/nVw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-normalize@0.10.3': + resolution: {integrity: sha512-xkb5eZI/mMlbwKkDN79+1/t/+DBo8bBXZUMsT4gkFgMRKNRZ6NQPxlv1d3QpRzlocsl6UMxrHnhgnXdLAcgrXw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-print@0.10.3': + resolution: {integrity: sha512-wjRiI6yjXsAgMe6kVjizP+RgleUCLkH256dskjoNvJzmzbEfO7xQw9g6M02VET+emnbY0CO83IkrGm2q43VRyg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + + '@jimp/plugin-resize@0.10.3': + resolution: {integrity: sha512-rf8YmEB1d7Sg+g4LpqF0Mp+dfXfb6JFJkwlAIWPUOR7lGsPWALavEwTW91c0etEdnp0+JB9AFpy6zqq7Lwkq6w==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-rotate@0.10.3': + resolution: {integrity: sha512-YXLlRjm18fkW9MOHUaVAxWjvgZM851ofOipytz5FyKp4KZWDLk+dZK1JNmVmK7MyVmAzZ5jsgSLhIgj+GgN0Eg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + + '@jimp/plugin-scale@0.10.3': + resolution: {integrity: sha512-5DXD7x7WVcX1gUgnlFXQa8F+Q3ThRYwJm+aesgrYvDOY+xzRoRSdQvhmdd4JEEue3lyX44DvBSgCIHPtGcEPaw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + + '@jimp/plugin-shadow@0.10.3': + resolution: {integrity: sha512-/nkFXpt2zVcdP4ETdkAUL0fSzyrC5ZFxdcphbYBodqD7fXNqChS/Un1eD4xCXWEpW8cnG9dixZgQgStjywH0Mg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blur': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + + '@jimp/plugin-threshold@0.10.3': + resolution: {integrity: sha512-Dzh0Yq2wXP2SOnxcbbiyA4LJ2luwrdf1MghNIt9H+NX7B+IWw/N8qA2GuSm9n4BPGSLluuhdAWJqHcTiREriVA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-color': '>=0.8.0' + '@jimp/plugin-resize': '>=0.8.0' + + '@jimp/plugins@0.10.3': + resolution: {integrity: sha512-jTT3/7hOScf0EIKiAXmxwayHhryhc1wWuIe3FrchjDjr9wgIGNN2a7XwCgPl3fML17DXK1x8EzDneCdh261bkw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/png@0.10.3': + resolution: {integrity: sha512-YKqk/dkl+nGZxSYIDQrqhmaP8tC3IK8H7dFPnnzFVvbhDnyYunqBZZO3SaZUKTichClRw8k/CjBhbc+hifSGWg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/tiff@0.10.3': + resolution: {integrity: sha512-7EsJzZ5Y/EtinkBGuwX3Bi4S+zgbKouxjt9c82VJTRJOQgLWsE/RHqcyRCOQBhHAZ9QexYmDz34medfLKdoX0g==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/types@0.10.3': + resolution: {integrity: sha512-XGmBakiHZqseSWr/puGN+CHzx0IKBSpsKlmEmsNV96HKDiP6eu8NSnwdGCEq2mmIHe0JNcg1hqg59hpwtQ7Tiw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/utils@0.10.3': + resolution: {integrity: sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w==} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@meoc/utils@0.2.10': + resolution: {integrity: sha512-LN/CQDOVmmN/kq31630r+dFYZSPezmhbRq0Ib0RbKv+qpSpaOasXwAcwO/rkpPkhuoty5kfpHmTdjrEUU8bJYQ==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + + '@quansync/fs@0.1.5': + resolution: {integrity: sha512-lNS9hL2aS2NZgNW7BBj+6EBl4rOf8l+tQ0eRY6JWCI8jI2kc53gSoqbjojU0OnAWhzoXiOjFyGsHcDGePB3lhA==} + + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.53.3': + resolution: {integrity: sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.53.3': + resolution: {integrity: sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.53.3': + resolution: {integrity: sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.53.3': + resolution: {integrity: sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.53.3': + resolution: {integrity: sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.53.3': + resolution: {integrity: sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.53.3': + resolution: {integrity: sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.53.3': + resolution: {integrity: sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.53.3': + resolution: {integrity: sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.53.3': + resolution: {integrity: sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.53.3': + resolution: {integrity: sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-gnu@4.53.3': + resolution: {integrity: sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-gnu@4.53.3': + resolution: {integrity: sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.53.3': + resolution: {integrity: sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.53.3': + resolution: {integrity: sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.53.3': + resolution: {integrity: sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.53.3': + resolution: {integrity: sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openharmony-arm64@4.53.3': + resolution: {integrity: sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.53.3': + resolution: {integrity: sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.53.3': + resolution: {integrity: sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.53.3': + resolution: {integrity: sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.53.3': + resolution: {integrity: sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==} + cpu: [x64] + os: [win32] + + '@sinonjs/commons@1.8.6': + resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} + + '@sinonjs/fake-timers@8.1.0': + resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==} + + '@tootallnate/once@1.1.2': + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/node@24.10.1': + resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==} + + '@types/prettier@2.7.3': + resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} + + '@types/stack-utils@2.0.3': + resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@16.0.11': + resolution: {integrity: sha512-sbtvk8wDN+JvEdabmZExoW/HNr1cB7D/j4LT08rMiuikfA7m/JNJg7ATQcgzs34zHnoScDkY0ZRSl29Fkmk36g==} + + '@uni-helper/uni-app-types@1.0.0-alpha.6': + resolution: {integrity: sha512-t9AKDYBmDaz4IW0fgtBt25ubEzf7kyUeMlHaBaG5nyNGd6pVuDpYkABhsnNPDiZcaHAoN6SbX1SQQx5axDOWbA==} + engines: {node: '>=14.18'} + peerDependencies: + typescript: ^5.0.0 + vue: ^3.0.0 + + '@uni-helper/uni-ui-types@1.0.0-alpha.6': + resolution: {integrity: sha512-2KuAup2M7rPVzpLaXhhnxCD/Cs5VQYiqzC9XNI/VZuA88+ApPmHzkwyS0THSHnz1VbDIGX/Ju69nj+mApfYKDw==} + engines: {node: '>=14.18'} + peerDependencies: + '@uni-helper/uni-app-types': 1.0.0-alpha.6 + typescript: ^5.0.0 + vue: ^3.0.0 + + '@unocss/astro@66.5.9': + resolution: {integrity: sha512-t1Cd4ajbRQvcIxiGcoWPcgWzWKdsKjxgh6kIQ2VPzx+nha9ssI1ATOQNKhDTK1l5akFsMXvt1wvBSGu92Npr1Q==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + peerDependenciesMeta: + vite: + optional: true + + '@unocss/cli@66.5.9': + resolution: {integrity: sha512-XM+KowW0yRcOtmuigXEW8HGPq8uYIUoVmTz9qqSES+5Qwc23eLFeukkc1cetAGRsaj1Q4fFyHGB6CmWsS0JB1A==} + engines: {node: '>=14'} + hasBin: true + + '@unocss/config@66.5.9': + resolution: {integrity: sha512-M8O0Z+6iCXuQOz/quaKueSb2cmN7cP9JGWdAH2E+qFD8txljaY88tNL4OwFZtO9GjhT2f/pEsLoEOAtAo1xT6g==} + engines: {node: '>=14'} + + '@unocss/core@66.5.9': + resolution: {integrity: sha512-0ch1dN1AJFX+QCxaQR6WLfWqr8PHt7U/wqSTm5vdLXTsm96R7ggCGMs360TiDMimDUvXak6gka+y/6wdQBf8/A==} + + '@unocss/extractor-arbitrary-variants@66.5.9': + resolution: {integrity: sha512-b+D6HbtN4hpGcThdJ8IVPl3xXdNN//Rw+WhyIuRdjwCPMsOfLnEqehPm1f5Rcc+xfFwxYJwC35SZnoBSrRMULg==} + + '@unocss/inspector@66.5.9': + resolution: {integrity: sha512-Rkg2mYWE64H1BANo2ZAPG9YHbDj1lalEl1hZuWSZb5Mt7SG+/cbq/FCbbq9zbS8ErmlYo2SgWXXmGuyIw1cbgw==} + + '@unocss/postcss@66.5.9': + resolution: {integrity: sha512-V/UJ71p9Ist8oUHZP+JXYkrURILGnutmc/V1Zvi9V929qgt0Xs36WeXnUJAf1J+U5IfNrtWze/RngI7qFEg5uQ==} + engines: {node: '>=14'} + peerDependencies: + postcss: ^8.4.21 + + '@unocss/preset-attributify@66.5.9': + resolution: {integrity: sha512-PHmN+d32443WIV6rCksTHuO+19susHQrpiOddS6QiYN9LLTvJ8CAmdJYNmQUIOhlZsDhV7EjGZM9idUNK8C7ZA==} + + '@unocss/preset-icons@66.5.9': + resolution: {integrity: sha512-06or+pt1Q59k0Y8T/jOVhIHdkL7BChGmEnSsBk0e96ery32VpmPKrjCIWvwTEFDFf6H6K+1YmOUm+NujewovkA==} + + '@unocss/preset-mini@66.5.9': + resolution: {integrity: sha512-5SxMTT8kRi+SFNfTKUvFBA4E/4H5BwD5RPNeIbrNlHdeltK8rwCMpXWu5AihNR1kKt5JBBqe/8m0UdoZzAK0+A==} + + '@unocss/preset-tagify@66.5.9': + resolution: {integrity: sha512-7c+P7wHksLEOyHWUTiM4u08xQIucnMvxBMBs9dQBjTkWYMMNxITbNSKTibt/WrrHwzb/TQTroUQ7T05H3/sJaw==} + + '@unocss/preset-typography@66.5.9': + resolution: {integrity: sha512-ip2MZDDnJ1RdIk7JtV4qLfguaHIpiM5cXMYFsiwXcJX5SZW4zIShPyuZE6BQi3Im7afHoPcLo4+zqPe0Cm48zQ==} + + '@unocss/preset-uno@66.5.9': + resolution: {integrity: sha512-8c1wPbV4cDZNqPcPtNJd08cmRVuhnvoyAU8ER57bbuSe4g0BspT4cLaUf7OuqBg6bmc55a6w9A66fj+kYwpMqw==} + + '@unocss/preset-web-fonts@66.5.9': + resolution: {integrity: sha512-iRXiIg7A0+QmUdH+7NNZmGm9JCV0TI1FG3kMhkc2F3EKjmyTJRxlAgcWjysyWjH2drkJYTaouVDDV43c5xQkKQ==} + + '@unocss/preset-wind3@66.5.9': + resolution: {integrity: sha512-eT23SDqksr6LVzkJLDkGGNIBpRevMHIrretM8VNI7PECJEcpFwX9sgWn3yxAsqy5+0hJXuvFBc9BRUN6sHl5hQ==} + + '@unocss/preset-wind4@66.5.9': + resolution: {integrity: sha512-pUzvBZsv5AUJus/I+D8aHDHCHwaqasNu2a/WgOBs+Otr0xoWFaLob/PVpXeAc4u45jKKd/XvGtr6OF928VVKwQ==} + + '@unocss/preset-wind@66.5.9': + resolution: {integrity: sha512-m6G8EbZXs3c5ssnEJMidO7t788WtQX9Tf0AXhBo1nzOAZPaRrJd0qfuv/jrFsayl/WR7Ea1Hexe09csa2OoRyA==} + + '@unocss/reset@66.5.9': + resolution: {integrity: sha512-GcXdJcCd/oF8Kbh0JcFXSgGnSTEPFfHjsyd1AWbkhfFqBX8BV/8++GkWZxJDL7/FYa07wLeivdXuPbdvRV1TBA==} + + '@unocss/rule-utils@66.5.9': + resolution: {integrity: sha512-ZdtWqbOaNQLf6NFhcEkvaBf0fjm5GZP5NV/plmQEqK6ehe1TTpaqOtO0LBFD2BUy72oXlcsFnvdgWt/CpL6FLg==} + engines: {node: '>=14'} + + '@unocss/transformer-attributify-jsx@66.5.9': + resolution: {integrity: sha512-AKkiDwTktPENtlONFGbUbzOXTKsU2YQKqFglg8Z6lwSKaLHX6irC9t8L8W1m6tAmJBBpwpzKzWxX/eFUCTePew==} + + '@unocss/transformer-compile-class@66.5.9': + resolution: {integrity: sha512-sdzWQpFGtY4d1ykcJJglsqctfNLxCR4BRrG6RoqFUP0ETGs+2s/hqjXFePB6PAQnPuz6v8DasowMH55/Sm5vHg==} + + '@unocss/transformer-directives@66.5.9': + resolution: {integrity: sha512-fsK/308nqpxAPYYgSq93zVdSyu1K3LCEbC+9WGGDLnbn0s2slJ04ECelAk7hoAWuAhbgw8eNIfNFtOpzfdds1A==} + + '@unocss/transformer-variant-group@66.5.9': + resolution: {integrity: sha512-a1y4ekITgHPJLywhKrAwP0WDLkGTWOCyRi2uNIZQF6fvFsjpalPx+9fFH1zSV7qTDsu5uf/16LaMR8StSqfqFg==} + + '@unocss/vite@66.5.9': + resolution: {integrity: sha512-ejgiK9UqrSTtzgZCfph42Asun2N1OMNx4Z1wINgmLR8F0Xlpw7ECptdoLMrQaS+v4p/fY/fKqWqlX0rvfloUdA==} + peerDependencies: + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + + '@vant/area-data@2.1.0': + resolution: {integrity: sha512-wx9PrUX7wSUJiFcz8UrcvZfTjV6sTc+7SHcbjGQQzEcv5y+EwOo5uV4ZKdfrR5Hzcw4MA08LQdvXPSEb4nWbug==} + + '@vitejs/plugin-legacy@5.3.2': + resolution: {integrity: sha512-8moCOrIMaZ/Rjln0Q6GsH6s8fAt1JOI3k8nmfX4tXUxE5KAExVctSyOBk+A25GClsdSWqIk2yaUthH3KJ2X4tg==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + terser: ^5.4.0 + vite: ^5.0.0 + + '@vitejs/plugin-vue-jsx@3.1.0': + resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + vue: ^3.0.0 + + '@vitejs/plugin-vue@5.1.0': + resolution: {integrity: sha512-QMRxARyrdiwi1mj3AW4fLByoHTavreXq0itdEW696EihXglf1MB3D4C2gBvE0jMPH29ZjC3iK8aIaUMLf4EOGA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 + vue: ^3.2.25 + + '@volar/language-core@1.11.1': + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + + '@volar/source-map@1.11.1': + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + + '@volar/typescript@1.11.1': + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + + '@vue/babel-helper-vue-transform-on@1.5.0': + resolution: {integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==} + + '@vue/babel-plugin-jsx@1.5.0': + resolution: {integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@vue/babel-plugin-resolve-type@1.5.0': + resolution: {integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@vue/compiler-core@3.4.21': + resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} + + '@vue/compiler-core@3.5.25': + resolution: {integrity: sha512-vay5/oQJdsNHmliWoZfHPoVZZRmnSWhug0BYT34njkYTPqClh3DNWLkZNJBVSjsNMrg0CCrBfoKkjZQPM/QVUw==} + + '@vue/compiler-dom@3.4.21': + resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==} + + '@vue/compiler-dom@3.5.25': + resolution: {integrity: sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==} + + '@vue/compiler-sfc@3.4.21': + resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} + + '@vue/compiler-sfc@3.5.25': + resolution: {integrity: sha512-PUgKp2rn8fFsI++lF2sO7gwO2d9Yj57Utr5yEsDf3GNaQcowCLKL7sf+LvVFvtJDXUp/03+dC6f2+LCv5aK1ag==} + + '@vue/compiler-ssr@3.4.21': + resolution: {integrity: sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q==} + + '@vue/compiler-ssr@3.5.25': + resolution: {integrity: sha512-ritPSKLBcParnsKYi+GNtbdbrIE1mtuFEJ4U1sWeuOMlIziK5GtOL85t5RhsNy4uWIXPgk+OUdpnXiTdzn8o3A==} + + '@vue/consolidate@1.0.0': + resolution: {integrity: sha512-oTyUE+QHIzLw2PpV14GD/c7EohDyP64xCniWTcqcEmTd699eFqTIwOmtDYjcO1j3QgdXoJEoWv1/cCdLrRoOfg==} + engines: {node: '>= 0.12.0'} + + '@vue/devtools-api@6.6.4': + resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + + '@vue/language-core@1.8.27': + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/reactivity@3.5.25': + resolution: {integrity: sha512-5xfAypCQepv4Jog1U4zn8cZIcbKKFka3AgWHEFQeK65OW+Ys4XybP6z2kKgws4YB43KGpqp5D/K3go2UPPunLA==} + + '@vue/runtime-core@3.5.25': + resolution: {integrity: sha512-Z751v203YWwYzy460bzsYQISDfPjHTl+6Zzwo/a3CsAf+0ccEjQ8c+0CdX1WsumRTHeywvyUFtW6KvNukT/smA==} + + '@vue/runtime-dom@3.5.25': + resolution: {integrity: sha512-a4WrkYFbb19i9pjkz38zJBg8wa/rboNERq3+hRRb0dHiJh13c+6kAbgqCPfMaJ2gg4weWD3APZswASOfmKwamA==} + + '@vue/server-renderer@3.4.21': + resolution: {integrity: sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg==} + peerDependencies: + vue: 3.4.21 + + '@vue/server-renderer@3.5.25': + resolution: {integrity: sha512-UJaXR54vMG61i8XNIzTSf2Q7MOqZHpp8+x3XLGtE3+fL+nQd+k7O5+X3D/uWrnQXOdMw5VPih+Uremcw+u1woQ==} + peerDependencies: + vue: 3.5.25 + + '@vue/shared@3.4.21': + resolution: {integrity: sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g==} + + '@vue/shared@3.5.25': + resolution: {integrity: sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==} + + '@vue/tsconfig@0.1.3': + resolution: {integrity: sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + deprecated: Use your platform's native atob() and btoa() methods instead + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-globals@6.0.0: + resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} + + acorn-walk@7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + + acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + + adm-zip@0.5.16: + resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} + engines: {node: '>=12.0'} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + any-base@1.1.0: + resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + autoprefixer@10.4.22: + resolution: {integrity: sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + babel-jest@27.5.1: + resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-jest-hoist@27.5.1: + resolution: {integrity: sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + babel-plugin-polyfill-corejs2@0.4.14: + resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.13.0: + resolution: {integrity: sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.5: + resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-preset-current-node-syntax@1.2.0: + resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} + peerDependencies: + '@babel/core': ^7.0.0 || ^8.0.0-0 + + babel-preset-jest@27.5.1: + resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + base64url@3.0.1: + resolution: {integrity: sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==} + engines: {node: '>=6.0.0'} + + baseline-browser-mapping@2.8.31: + resolution: {integrity: sha512-a28v2eWrrRWPpJSzxc+mKwm0ZtVx/G8SepdQZDArnXYU/XS+IF6mp8aB/4E+hH1tyGCoDo3KlUCdlSxGDsRkAw==} + hasBin: true + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bmp-js@0.1.0: + resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} + + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browser-process-hrtime@1.0.0: + resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} + + browserslist-to-esbuild@2.1.1: + resolution: {integrity: sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + browserslist: '*' + + browserslist@4.28.0: + resolution: {integrity: sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-equal@0.0.1: + resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} + engines: {node: '>=0.4.0'} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + cac@6.7.9: + resolution: {integrity: sha512-XN5qEpfNQCJ8jRaZgitSkkukjMRCGio+X3Ks5KUbGGlPbV+pSem1l9VuzooCBXOiMFshUZgyYqg6rgN8rjkb/w==} + engines: {node: '>=8'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001757: + resolution: {integrity: sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==} + + centra@2.7.0: + resolution: {integrity: sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + co@4.6.0: + resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} + engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} + + collect-v8-coverage@1.0.3: + resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + compare-versions@3.6.0: + resolution: {integrity: sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==} + + computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confbox@0.2.2: + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + + consola@3.4.2: + resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} + engines: {node: ^14.18.0 || >=16.10.0} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + + copy-text-to-clipboard@3.2.2: + resolution: {integrity: sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==} + engines: {node: '>=12'} + + core-js-compat@3.47.0: + resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} + + core-js@3.47.0: + resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==} + + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + css-font-size-keywords@1.0.0: + resolution: {integrity: sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==} + + css-font-stretch-keywords@1.0.1: + resolution: {integrity: sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==} + + css-font-style-keywords@1.0.1: + resolution: {integrity: sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==} + + css-font-weight-keywords@1.0.0: + resolution: {integrity: sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==} + + css-list-helpers@2.0.0: + resolution: {integrity: sha512-9Bj8tZ0jWbAM3u/U6m/boAzAwLPwtjzFvwivr2piSvyVa3K3rChJzQy4RIHkNkKiZCHrEMWDJWtTR8UyVhdDnQ==} + + css-system-font-keywords@1.0.0: + resolution: {integrity: sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==} + + css-tree@3.1.0: + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + + cssom@0.4.4: + resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} + + cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + data-urls@2.0.0: + resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} + engines: {node: '>=10'} + + dayjs@1.11.19: + resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + + dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-newline@3.1.0: + resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} + engines: {node: '>=8'} + + diff-sequences@27.5.1: + resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + dom-walk@0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} + + domexception@2.0.1: + resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} + engines: {node: '>=8'} + deprecated: Use your platform's native DOMException instead + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.260: + resolution: {integrity: sha512-ov8rBoOBhVawpzdre+Cmz4FB+y66Eqrk6Gwqd8NGxuhv99GQ8XqMAr351KEkOt7gukXWDg6gJWEMKgL2RLMPtA==} + + emittery@0.8.1: + resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} + engines: {node: '>=10'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@2.0.0: + resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} + engines: {node: '>=8'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + exif-parser@0.1.12: + resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} + + exit@0.1.2: + resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + engines: {node: '>= 0.8.0'} + + expect@27.5.1: + resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + express@4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} + engines: {node: '>= 0.10.0'} + + exsolve@1.0.8: + resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + file-type@9.0.0: + resolution: {integrity: sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==} + engines: {node: '>=6'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + form-data@3.0.4: + resolution: {integrity: sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==} + engines: {node: '>= 6'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fraction.js@5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + generic-names@4.0.0: + resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + global@4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hash-sum@2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + html-encoding-sniffer@2.0.1: + resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} + engines: {node: '>=10'} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} + engines: {node: '>= 6'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + icss-replace-symbols@1.1.0: + resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} + + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + + import-local@3.2.0: + resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} + engines: {node: '>=8'} + hasBin: true + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + invert-kv@3.0.1: + resolution: {integrity: sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==} + engines: {node: '>=8'} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-function@1.0.2: + resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} + + is-generator-fn@2.1.0: + resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} + engines: {node: '>=6'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + isbinaryfile@5.0.7: + resolution: {integrity: sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==} + engines: {node: '>= 18.0.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + + jest-changed-files@27.5.1: + resolution: {integrity: sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-circus@27.5.1: + resolution: {integrity: sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-cli@27.5.1: + resolution: {integrity: sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jest-config@27.5.1: + resolution: {integrity: sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + peerDependencies: + ts-node: '>=9.0.0' + peerDependenciesMeta: + ts-node: + optional: true + + jest-diff@27.5.1: + resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-docblock@27.5.1: + resolution: {integrity: sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-each@27.5.1: + resolution: {integrity: sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-environment-jsdom@27.5.1: + resolution: {integrity: sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-environment-node@27.5.1: + resolution: {integrity: sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-get-type@27.5.1: + resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-haste-map@27.5.1: + resolution: {integrity: sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-jasmine2@27.5.1: + resolution: {integrity: sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-leak-detector@27.5.1: + resolution: {integrity: sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-matcher-utils@27.5.1: + resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-message-util@27.5.1: + resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-mock@27.5.1: + resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-pnp-resolver@1.2.3: + resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} + engines: {node: '>=6'} + peerDependencies: + jest-resolve: '*' + peerDependenciesMeta: + jest-resolve: + optional: true + + jest-regex-util@27.5.1: + resolution: {integrity: sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-resolve-dependencies@27.5.1: + resolution: {integrity: sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-resolve@27.5.1: + resolution: {integrity: sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-runner@27.5.1: + resolution: {integrity: sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-runtime@27.5.1: + resolution: {integrity: sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-serializer@27.5.1: + resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-snapshot@27.5.1: + resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-util@27.5.1: + resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-validate@27.5.1: + resolution: {integrity: sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-watcher@27.5.1: + resolution: {integrity: sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jest@27.0.4: + resolution: {integrity: sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + jimp@0.10.3: + resolution: {integrity: sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ==} + + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + + jpeg-js@0.3.7: + resolution: {integrity: sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + + js-yaml@3.14.2: + resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} + hasBin: true + + jsdom@16.7.0: + resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} + engines: {node: '>=10'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + lcid@3.1.1: + resolution: {integrity: sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==} + engines: {node: '>=8'} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + licia@1.48.0: + resolution: {integrity: sha512-bBWiT5CSdEtwuAHiYTJ74yItCjIFdHi4xiFk6BRDfKa+sdCpkUHp69YKb5udNOJlHDzFjNjcMgNZ/+wQIHrB8A==} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lines-and-columns@2.0.4: + resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + load-bmfont@1.4.2: + resolution: {integrity: sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==} + + loader-utils@3.3.1: + resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} + engines: {node: '>= 12.13.0'} + + local-pkg@0.5.1: + resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} + engines: {node: '>=14'} + + local-pkg@1.1.2: + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} + engines: {node: '>=14'} + + localstorage-polyfill@1.0.1: + resolution: {integrity: sha512-m4iHVZxFH5734oQcPKU08025gIz2+4bjWR9lulP8ZYxEJR0BpA0w32oJmkzh8y3UI9ci7xCBehQDc3oA1X+VHw==} + engines: {node: '>=6'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + luch-request@3.1.1: + resolution: {integrity: sha512-p7+mlcEtgRcd0OfXC4XZbyiwSr1XgCeqNT7LlVUjnk7InYl/8d5Rk7BUqAYNA2WRafI1wRIUQWRWZRpeUwWR0w==} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + meow@13.2.0: + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + merge@2.1.1: + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@3.0.0: + resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} + engines: {node: '>=10.0.0'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + min-document@2.19.2: + resolution: {integrity: sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mlly@1.8.0: + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} + + module-alias@2.2.3: + resolution: {integrity: sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==} + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + + mutation-observer@1.0.3: + resolution: {integrity: sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + node-fetch-native@1.6.7: + resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + nwsapi@2.2.22: + resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} + + omggif@1.0.10: + resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + os-locale-s-fix@1.0.8-fix-1: + resolution: {integrity: sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w==} + engines: {node: '>=10', yarn: ^1.22.4} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-manager-detector@1.5.0: + resolution: {integrity: sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + parse-bmfont-ascii@1.0.6: + resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} + + parse-bmfont-binary@1.0.6: + resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==} + + parse-bmfont-xml@1.1.6: + resolution: {integrity: sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==} + + parse-css-font@4.0.0: + resolution: {integrity: sha512-lnY7dTUfjRXsSo5G5C639L8RaBBaVSgL+5hacIFKsNHzeCJQ5SFSZv1DZmc7+wZv/22PFGOq2YbaEHLdaCS/mQ==} + + parse-headers@2.0.6: + resolution: {integrity: sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + phin@2.9.3: + resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + phin@3.7.1: + resolution: {integrity: sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==} + engines: {node: '>= 8'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pinia-plugin-persist-uni@1.3.1: + resolution: {integrity: sha512-E7HEj6Hy3ZZKXCDG7yKWQ7Dg99Ibtei2qssY6w8wlqVBl3X54xSydiju8kO7IYPHw8heYAPjPBAF8TGCTdvRGQ==} + peerDependencies: + '@vue/composition-api': ^1.0.0 + pinia: ^2.0.0 + vue: ^2.0.0 || >=3.0.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + pinia@2.3.1: + resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==} + peerDependencies: + typescript: '>=4.4.4' + vue: ^2.7.0 || ^3.5.11 + peerDependenciesMeta: + typescript: + optional: true + + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} + + pixelmatch@4.0.2: + resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} + hasBin: true + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pkg-types@2.3.0: + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + + pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + + postcss-import@14.1.0: + resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-load-config@3.1.4: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-modules-extract-imports@3.1.0: + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-local-by-default@4.2.0: + resolution: {integrity: sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.2.1: + resolution: {integrity: sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules@4.3.1: + resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} + peerDependencies: + postcss: ^8.0.0 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + pretty-format@27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qrcode-reader@1.0.4: + resolution: {integrity: sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==} + + qrcode-terminal@0.12.0: + resolution: {integrity: sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==} + hasBin: true + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + react-is@17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} + engines: {node: '>=4'} + + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.13.0: + resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resolve-cwd@3.0.0: + resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} + engines: {node: '>=8'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve.exports@1.1.1: + resolution: {integrity: sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==} + engines: {node: '>=10'} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rollup@4.53.3: + resolution: {integrity: sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-area-insets@1.4.1: + resolution: {integrity: sha512-r/nRWTjFGhhm3w1Z6Kd/jY11srN+lHt2mNl1E/emQGW8ic7n3Avu4noibklfSM+Y34peNphHD/BSZecav0sXYQ==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sass@1.78.0: + resolution: {integrity: sha512-AaIqGSrjo5lA2Yg7RvFZrlXDBCp3nV4XP73GrLGvdRWWwk+8H3l0SDvq/5bA4eF+0RFPLuWUk3E+P1U/YqnpsQ==} + engines: {node: '>=14.0.0'} + hasBin: true + + sax@1.4.3: + resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==} + + saxes@5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} + engines: {node: '>=10'} + + scule@1.3.0: + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.6: + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stack-utils@2.0.6: + resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} + engines: {node: '>=10'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + string-hash@1.1.3: + resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} + + string-length@4.0.2: + resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} + engines: {node: '>=10'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-literal@2.1.1: + resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + systemjs@6.15.1: + resolution: {integrity: sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA==} + + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + + terminal-link@2.1.1: + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} + + terser@5.44.1: + resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + throat@6.0.2: + resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} + + timm@1.7.1: + resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} + + tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + + tr46@2.1.0: + resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} + engines: {node: '>=8'} + + type-detect@4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + + unconfig-core@7.4.1: + resolution: {integrity: sha512-Bp/bPZjV2Vl/fofoA2OYLSnw1Z0MOhCX7zHnVCYrazpfZvseBbGhwcNQMxsg185Mqh7VZQqK3C8hFG/Dyng+yA==} + + unconfig@7.4.1: + resolution: {integrity: sha512-uyQ7LElcGizrOGZyIq9KU+xkuEjcRf9IpmDTkCSYv5mEeZzrXSj6rb51C0L+WTedsmAoVxW9WKrLWhSwebIM9Q==} + + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.2.0: + resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} + engines: {node: '>=4'} + + unimport@3.14.6: + resolution: {integrity: sha512-CYvbDaTT04Rh8bmD8jz3WPmHYZRG/NnvYVzwD6V1YAlvvKROlAeNDUBhkBGzNav2RKaeuXvlWYaa1V4Lfi/O0g==} + + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unocss-preset-weapp@66.0.2: + resolution: {integrity: sha512-K6H6we8WlTO1Lf1rLLeyPOKyqEWkO/r9z8/z1CTEnHgeZMYMvIE7lQa7GFyDQ/qYzU/By8OtJ5TcIRqp/2SbIw==} + + unocss@66.5.9: + resolution: {integrity: sha512-uMW5ZKayDQ1ZiqdrO7WiGOJ3H5PE3D4eN1xn0EZXU1Tiu37e5DtuNLa7AzT0z4Dx0AX8GK1xQrNC0US971mfFA==} + engines: {node: '>=14'} + peerDependencies: + '@unocss/webpack': 66.5.9 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 + peerDependenciesMeta: + '@unocss/webpack': + optional: true + vite: + optional: true + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + unplugin-attributify-to-class@0.2.5: + resolution: {integrity: sha512-0lTUi01mI19PmTTX4420QO6gJFic1wK4LqNnHeBNDrthQEKI0xw/lYg0bGnWYgPmyqXz88hAdLG+ibaypibXqg==} + + unplugin-auto-import@0.18.6: + resolution: {integrity: sha512-LMFzX5DtkTj/3wZuyG5bgKBoJ7WSgzqSGJ8ppDRdlvPh45mx6t6w3OcbExQi53n3xF5MYkNGPNR/HYOL95KL2A==} + engines: {node: '>=14'} + peerDependencies: + '@nuxt/kit': ^3.2.2 + '@vueuse/core': '*' + peerDependenciesMeta: + '@nuxt/kit': + optional: true + '@vueuse/core': + optional: true + + unplugin-transform-class@0.5.3: + resolution: {integrity: sha512-4xBvfoeBDqlqi9aD0Hv3TTs8JpRs2h9l8LBMXIRXFNTf8biRk6hAQir+zEM/GpBKoMzvt7JqqbMIYzMazQZysQ==} + + unplugin-transform-class@0.6.0: + resolution: {integrity: sha512-6aYNOH6hEVbi38mc7yDQD7kEDESuLJ3FfB9/rB2vHZobK4ajDS6Jkh5EktJF4Ubkz/hQizpjZ4+XS1aMOM82yg==} + peerDependencies: + '@farmfe/core': '>=1' + '@nuxt/kit': ^3 + '@nuxt/schema': ^3 + esbuild: '*' + rollup: ^3 + vite: '>=3' + webpack: ^4 || ^5 + peerDependenciesMeta: + '@farmfe/core': + optional: true + '@nuxt/kit': + optional: true + '@nuxt/schema': + optional: true + esbuild: + optional: true + rollup: + optional: true + vite: + optional: true + webpack: + optional: true + + unplugin-utils@0.3.1: + resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} + engines: {node: '>=20.19.0'} + + unplugin@1.16.1: + resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} + engines: {node: '>=14.0.0'} + + unplugin@1.7.1: + resolution: {integrity: sha512-JqzORDAPxxs8ErLV4x+LL7bk5pk3YlcWqpSNsIkAZj972KzFZLClc/ekppahKkOczGkwIG6ElFgdOgOlK4tXZw==} + + unplugin@2.3.2: + resolution: {integrity: sha512-3n7YA46rROb3zSj8fFxtxC/PqoyvYQ0llwz9wtUPUutr9ig09C8gGo5CWCwHrUzlqC1LLR43kxp5vEIyH1ac1w==} + engines: {node: '>=18.12.0'} + + unquote@1.1.1: + resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==} + + update-browserslist-db@1.1.4: + resolution: {integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + utif@2.0.1: + resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + v8-to-istanbul@8.1.1: + resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} + engines: {node: '>=10.12.0'} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vconsole@3.15.1: + resolution: {integrity: sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g==} + + vite-plugin-compression@0.5.1: + resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} + peerDependencies: + vite: '>=2.0.0' + + vite@5.2.8: + resolution: {integrity: sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vue-demi@0.12.5: + resolution: {integrity: sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-flow-layout@0.2.0: + resolution: {integrity: sha512-zKgsWWkXq0xrus7H4Mc+uFs1ESrmdTXlO0YNbR6wMdPaFvosL3fMB8N7uTV308UhGy9UvTrGhIY7mVz9eN+L0Q==} + + vue-i18n@9.14.5: + resolution: {integrity: sha512-0jQ9Em3ymWngyiIkj0+c/k7WgaPO+TNzjKSNq9BvBQaKJECqn9cd9fL4tkDhB5G1QBskGl9YxxbDAhgbFtpe2g==} + engines: {node: '>= 16'} + peerDependencies: + vue: ^3.0.0 + + vue-router@4.6.3: + resolution: {integrity: sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==} + peerDependencies: + vue: ^3.5.0 + + vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + + vue-tsc@1.8.27: + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' + + vue@3.5.25: + resolution: {integrity: sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + w3c-hr-time@1.0.2: + resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} + deprecated: Use your platform's native performance.now() and performance.timeOrigin. + + w3c-xmlserializer@2.0.0: + resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} + engines: {node: '>=10'} + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + webidl-conversions@5.0.0: + resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} + engines: {node: '>=8'} + + webidl-conversions@6.1.0: + resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} + engines: {node: '>=10.4'} + + webpack-sources@3.3.3: + resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} + engines: {node: '>=10.13.0'} + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + weixin-js-sdk@1.6.5: + resolution: {integrity: sha512-Gph1WAWB2YN/lMOFB/ymb+hbU/wYazzJgu6PMMktCy9cSCeW5wA6Zwt0dpahJbJ+RJEwtTv2x9iIu0U4enuVSQ==} + + whatwg-encoding@1.0.5: + resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} + + whatwg-mimetype@2.3.0: + resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} + + whatwg-url@8.7.0: + resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} + engines: {node: '>=10'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.3: + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xhr@2.6.0: + resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} + + xml-name-validator@3.0.0: + resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} + + xml-parse-from-string@1.0.1: + resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} + + xml2js@0.5.0: + resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} + engines: {node: '>=4.0.0'} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + xmlhttprequest@1.8.0: + resolution: {integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA==} + engines: {node: '>=0.4.0'} + + xregexp@3.1.0: + resolution: {integrity: sha512-4Y1x6DyB8xRoxosooa6PlGWqmmSKatbzhrftZ7Purmm4B8R4qIEJG1A2hZsdz5DhmIqS0msC0I7KEq93GphEVg==} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@antfu/install-pkg@1.1.0': + dependencies: + package-manager-detector: 1.5.0 + tinyexec: 1.0.2 + + '@antfu/utils@0.7.10': {} + + '@antfu/utils@9.3.0': {} + + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.28.5': {} + + '@babel/core@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helpers': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.28.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.27.3': + dependencies: + '@babel/types': 7.28.5 + + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.28.5 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.28.5 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + regexpu-core: 6.4.0 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + debug: 4.4.3 + lodash.debounce: 4.0.8 + resolve: 1.22.11 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-member-expression-to-functions@7.28.5': + dependencies: + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.27.1': + dependencies: + '@babel/types': 7.28.5 + + '@babel/helper-plugin-utils@7.27.1': {} + + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.28.3 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + dependencies: + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helper-wrap-function@7.28.3': + dependencies: + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.28.4': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + + '@babel/parser@7.27.7': + dependencies: + '@babel/types': 7.28.5 + + '@babel/parser@7.28.5': + dependencies: + '@babel/types': 7.28.5 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-globals': 7.28.0 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/template': 7.27.2 + + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/preset-env@7.28.5(@babel/core@7.28.5)': + dependencies: + '@babel/compat-data': 7.28.5 + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-exponentiation-operator': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.5) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) + core-js-compat: 3.47.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/types': 7.28.5 + esutils: 2.0.3 + + '@babel/runtime@7.28.4': {} + + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + + '@babel/traverse@7.27.7': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/parser': 7.27.7 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.3 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/traverse@7.28.5': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@bcoe/v8-coverage@0.2.3': {} + + '@dcloudio/types@2.6.12': {} + + '@dcloudio/types@3.4.28': {} + + '@dcloudio/uni-app-harmony@3.0.0-4030620241128001(postcss@8.5.6)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-app-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5)) + debug: 4.4.3 + fs-extra: 10.1.0 + licia: 1.48.0 + postcss-selector-parser: 6.1.2 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vite + - vue + + '@dcloudio/uni-app-plus@3.0.0-4030620241128001(postcss@8.5.6)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-app-uts': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-app-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-app-vue': 3.0.0-4030620241128001 + debug: 4.4.3 + fs-extra: 10.1.0 + licia: 1.48.0 + postcss-selector-parser: 6.1.2 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vite + - vue + + '@dcloudio/uni-app-uts@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-i18n': 3.0.0-4030620241128001 + '@dcloudio/uni-nvue-styler': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + '@rollup/pluginutils': 5.3.0 + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/consolidate': 1.0.0 + '@vue/shared': 3.4.21 + debug: 4.4.3 + es-module-lexer: 1.7.0 + estree-walker: 2.0.2 + fs-extra: 10.1.0 + magic-string: 0.30.21 + picocolors: 1.1.1 + source-map-js: 1.2.1 + unimport: 3.14.6 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-app-vite@3.0.0-4030620241128001(postcss@8.5.6)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-i18n': 3.0.0-4030620241128001 + '@dcloudio/uni-nvue-styler': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@rollup/pluginutils': 5.3.0 + '@vitejs/plugin-vue': 5.1.0(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5)) + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + debug: 4.4.3 + fs-extra: 10.1.0 + picocolors: 1.1.1 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vite + - vue + + '@dcloudio/uni-app-vue@3.0.0-4030620241128001': {} + + '@dcloudio/uni-app@3.0.0-4030620241128001(@dcloudio/types@3.4.28)(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/types': 3.4.28 + '@dcloudio/uni-cloud': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-components': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-i18n': 3.0.0-4030620241128001 + '@dcloudio/uni-push': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@dcloudio/uni-stat': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@vue/shared': 3.4.21 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-automator@3.0.0-4030620241128001(jest-environment-node@27.5.1)(jest@27.0.4)(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + address: 1.2.2 + cross-env: 7.0.3 + debug: 4.4.3 + default-gateway: 6.0.3 + fs-extra: 10.1.0 + jest: 27.0.4 + jest-environment-node: 27.5.1 + jsonc-parser: 3.3.1 + licia: 1.48.0 + merge: 2.1.1 + qrcode-reader: 1.0.4 + qrcode-terminal: 0.12.0 + ws: 8.18.3 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - bufferutil + - postcss + - rollup + - supports-color + - ts-node + - utf-8-validate + - vue + + '@dcloudio/uni-cli-shared@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.27.1 + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@dcloudio/uni-i18n': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@intlify/core-base': 9.1.9 + '@intlify/shared': 9.1.9 + '@intlify/vue-devtools': 9.1.9 + '@rollup/pluginutils': 5.3.0 + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/compiler-ssr': 3.4.21 + '@vue/server-renderer': 3.4.21(vue@3.5.25(typescript@4.9.5)) + '@vue/shared': 3.4.21 + adm-zip: 0.5.16 + autoprefixer: 10.4.22(postcss@8.5.6) + base64url: 3.0.1 + chokidar: 3.6.0 + compare-versions: 3.6.0 + debug: 4.4.3 + es-module-lexer: 1.7.0 + esbuild: 0.20.2 + estree-walker: 2.0.2 + fast-glob: 3.3.3 + fs-extra: 10.1.0 + hash-sum: 2.0.0 + isbinaryfile: 5.0.7 + jsonc-parser: 3.3.1 + lines-and-columns: 2.0.4 + magic-string: 0.30.21 + merge: 2.1.1 + mime: 3.0.0 + module-alias: 2.2.3 + os-locale-s-fix: 1.0.8-fix-1 + picocolors: 1.1.1 + postcss-import: 14.1.0(postcss@8.5.6) + postcss-load-config: 3.1.4(postcss@8.5.6) + postcss-modules: 4.3.1(postcss@8.5.6) + postcss-selector-parser: 6.1.2 + resolve: 1.22.11 + source-map-js: 1.2.1 + tapable: 2.3.0 + unplugin-auto-import: 0.18.6 + xregexp: 3.1.0 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-cloud@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-i18n': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/shared': 3.4.21 + fast-glob: 3.3.3 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-components@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cloud': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-h5': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-i18n': 3.0.0-4030620241128001 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-h5-vite@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@rollup/pluginutils': 5.3.0 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/server-renderer': 3.4.21(vue@3.5.25(typescript@4.9.5)) + '@vue/shared': 3.4.21 + debug: 4.4.3 + fs-extra: 10.1.0 + mime: 3.0.0 + module-alias: 2.2.3 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-h5-vue@3.0.0-4030620241128001(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/server-renderer': 3.4.21(vue@3.5.25(typescript@4.9.5)) + transitivePeerDependencies: + - vue + + '@dcloudio/uni-h5@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-h5-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-h5-vue': 3.0.0-4030620241128001(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-i18n': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/server-renderer': 3.4.21(vue@3.5.25(typescript@4.9.5)) + '@vue/shared': 3.4.21 + debug: 4.4.3 + localstorage-polyfill: 1.0.1 + postcss-selector-parser: 6.1.2 + safe-area-insets: 1.4.1 + vue-router: 4.6.3(vue@3.5.25(typescript@4.9.5)) + xmlhttprequest: 1.8.0 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-i18n@3.0.0-4030620241128001': {} + + '@dcloudio/uni-mp-alipay@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vue': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-mp-baidu@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-compiler': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vue': 3.0.0-4030620241128001 + '@dcloudio/uni-mp-weixin': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + jimp: 0.10.3 + licia: 1.48.0 + qrcode-reader: 1.0.4 + qrcode-terminal: 0.12.0 + ws: 8.18.3 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - bufferutil + - debug + - postcss + - rollup + - supports-color + - ts-node + - utf-8-validate + - vue + + '@dcloudio/uni-mp-compiler@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/shared': 3.4.21 + estree-walker: 2.0.2 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-mp-jd@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-compiler': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vue': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/shared': 3.4.21 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-mp-kuaishou@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-compiler': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vue': 3.0.0-4030620241128001 + '@dcloudio/uni-mp-weixin': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - bufferutil + - debug + - postcss + - rollup + - supports-color + - ts-node + - utf-8-validate + - vue + + '@dcloudio/uni-mp-lark@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-compiler': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-toutiao': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vue': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-mp-qq@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vue': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/shared': 3.4.21 + fs-extra: 10.1.0 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-mp-toutiao@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-compiler': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vue': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-mp-vite@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-i18n': 3.0.0-4030620241128001 + '@dcloudio/uni-mp-compiler': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vue': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/shared': 3.4.21 + debug: 4.4.3 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-mp-vue@3.0.0-4030620241128001': + dependencies: + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/shared': 3.4.21 + + '@dcloudio/uni-mp-weixin@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vue': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/shared': 3.4.21 + jimp: 0.10.3 + licia: 1.48.0 + qrcode-reader: 1.0.4 + qrcode-terminal: 0.12.0 + ws: 8.18.3 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - bufferutil + - debug + - postcss + - rollup + - supports-color + - ts-node + - utf-8-validate + - vue + + '@dcloudio/uni-mp-xhs@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-compiler': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vue': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/shared': 3.4.21 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-nvue-styler@3.0.0-4030620241128001': + dependencies: + parse-css-font: 4.0.0 + postcss: 8.5.6 + + '@dcloudio/uni-push@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-quickapp-webview@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vite': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-mp-vue': 3.0.0-4030620241128001 + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@vue/shared': 3.4.21 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-shared@3.0.0-4030620241128001': + dependencies: + '@vue/shared': 3.4.21 + + '@dcloudio/uni-stacktracey@3.0.0-4030620241128001': {} + + '@dcloudio/uni-stat@3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + debug: 4.4.3 + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@dcloudio/uni-ui@1.5.11': {} + + '@dcloudio/vite-plugin-uni@3.0.0-4030620241128001(postcss@8.5.6)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) + '@dcloudio/uni-cli-shared': 3.0.0-4030620241128001(postcss@8.5.6)(vue@3.5.25(typescript@4.9.5)) + '@dcloudio/uni-shared': 3.0.0-4030620241128001 + '@rollup/pluginutils': 5.3.0 + '@vitejs/plugin-legacy': 5.3.2(terser@5.44.1)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1)) + '@vitejs/plugin-vue': 5.1.0(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5)) + '@vitejs/plugin-vue-jsx': 3.1.0(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5)) + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-sfc': 3.4.21 + '@vue/shared': 3.4.21 + cac: 6.7.9 + debug: 4.4.3 + estree-walker: 2.0.2 + express: 4.21.2 + fast-glob: 3.3.3 + fs-extra: 10.1.0 + hash-sum: 2.0.0 + jsonc-parser: 3.3.1 + magic-string: 0.30.21 + picocolors: 1.1.1 + terser: 5.44.1 + unplugin-auto-import: 0.18.6 + vite: 5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1) + transitivePeerDependencies: + - '@nuxt/kit' + - '@vueuse/core' + - postcss + - rollup + - supports-color + - ts-node + - vue + + '@esbuild/aix-ppc64@0.20.2': + optional: true + + '@esbuild/android-arm64@0.20.2': + optional: true + + '@esbuild/android-arm@0.20.2': + optional: true + + '@esbuild/android-x64@0.20.2': + optional: true + + '@esbuild/darwin-arm64@0.20.2': + optional: true + + '@esbuild/darwin-x64@0.20.2': + optional: true + + '@esbuild/freebsd-arm64@0.20.2': + optional: true + + '@esbuild/freebsd-x64@0.20.2': + optional: true + + '@esbuild/linux-arm64@0.20.2': + optional: true + + '@esbuild/linux-arm@0.20.2': + optional: true + + '@esbuild/linux-ia32@0.20.2': + optional: true + + '@esbuild/linux-loong64@0.20.2': + optional: true + + '@esbuild/linux-mips64el@0.20.2': + optional: true + + '@esbuild/linux-ppc64@0.20.2': + optional: true + + '@esbuild/linux-riscv64@0.20.2': + optional: true + + '@esbuild/linux-s390x@0.20.2': + optional: true + + '@esbuild/linux-x64@0.20.2': + optional: true + + '@esbuild/netbsd-x64@0.20.2': + optional: true + + '@esbuild/openbsd-x64@0.20.2': + optional: true + + '@esbuild/sunos-x64@0.20.2': + optional: true + + '@esbuild/win32-arm64@0.20.2': + optional: true + + '@esbuild/win32-ia32@0.20.2': + optional: true + + '@esbuild/win32-x64@0.20.2': + optional: true + + '@iconify/types@2.0.0': {} + + '@iconify/utils@3.0.2': + dependencies: + '@antfu/install-pkg': 1.1.0 + '@antfu/utils': 9.3.0 + '@iconify/types': 2.0.0 + debug: 4.4.3 + globals: 15.15.0 + kolorist: 1.8.0 + local-pkg: 1.1.2 + mlly: 1.8.0 + transitivePeerDependencies: + - supports-color + + '@intlify/core-base@9.1.9': + dependencies: + '@intlify/devtools-if': 9.1.9 + '@intlify/message-compiler': 9.1.9 + '@intlify/message-resolver': 9.1.9 + '@intlify/runtime': 9.1.9 + '@intlify/shared': 9.1.9 + '@intlify/vue-devtools': 9.1.9 + + '@intlify/core-base@9.14.5': + dependencies: + '@intlify/message-compiler': 9.14.5 + '@intlify/shared': 9.14.5 + + '@intlify/devtools-if@9.1.9': + dependencies: + '@intlify/shared': 9.1.9 + + '@intlify/message-compiler@9.1.9': + dependencies: + '@intlify/message-resolver': 9.1.9 + '@intlify/shared': 9.1.9 + source-map: 0.6.1 + + '@intlify/message-compiler@9.14.5': + dependencies: + '@intlify/shared': 9.14.5 + source-map-js: 1.2.1 + + '@intlify/message-resolver@9.1.9': {} + + '@intlify/runtime@9.1.9': + dependencies: + '@intlify/message-compiler': 9.1.9 + '@intlify/message-resolver': 9.1.9 + '@intlify/shared': 9.1.9 + + '@intlify/shared@9.1.9': {} + + '@intlify/shared@9.14.5': {} + + '@intlify/vue-devtools@9.1.9': + dependencies: + '@intlify/message-resolver': 9.1.9 + '@intlify/runtime': 9.1.9 + '@intlify/shared': 9.1.9 + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.2 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/console@27.5.1': + dependencies: + '@jest/types': 27.5.1 + '@types/node': 24.10.1 + chalk: 4.1.2 + jest-message-util: 27.5.1 + jest-util: 27.5.1 + slash: 3.0.0 + + '@jest/core@27.5.1': + dependencies: + '@jest/console': 27.5.1 + '@jest/reporters': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 24.10.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.8.1 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 27.5.1 + jest-config: 27.5.1 + jest-haste-map: 27.5.1 + jest-message-util: 27.5.1 + jest-regex-util: 27.5.1 + jest-resolve: 27.5.1 + jest-resolve-dependencies: 27.5.1 + jest-runner: 27.5.1 + jest-runtime: 27.5.1 + jest-snapshot: 27.5.1 + jest-util: 27.5.1 + jest-validate: 27.5.1 + jest-watcher: 27.5.1 + micromatch: 4.0.8 + rimraf: 3.0.2 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + + '@jest/environment@27.5.1': + dependencies: + '@jest/fake-timers': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 24.10.1 + jest-mock: 27.5.1 + + '@jest/fake-timers@27.5.1': + dependencies: + '@jest/types': 27.5.1 + '@sinonjs/fake-timers': 8.1.0 + '@types/node': 24.10.1 + jest-message-util: 27.5.1 + jest-mock: 27.5.1 + jest-util: 27.5.1 + + '@jest/globals@27.5.1': + dependencies: + '@jest/environment': 27.5.1 + '@jest/types': 27.5.1 + expect: 27.5.1 + + '@jest/reporters@27.5.1': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 24.10.1 + chalk: 4.1.2 + collect-v8-coverage: 1.0.3 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 5.2.1 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.2.0 + jest-haste-map: 27.5.1 + jest-resolve: 27.5.1 + jest-util: 27.5.1 + jest-worker: 27.5.1 + slash: 3.0.0 + source-map: 0.6.1 + string-length: 4.0.2 + terminal-link: 2.1.1 + v8-to-istanbul: 8.1.1 + transitivePeerDependencies: + - supports-color + + '@jest/source-map@27.5.1': + dependencies: + callsites: 3.1.0 + graceful-fs: 4.2.11 + source-map: 0.6.1 + + '@jest/test-result@27.5.1': + dependencies: + '@jest/console': 27.5.1 + '@jest/types': 27.5.1 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.3 + + '@jest/test-sequencer@27.5.1': + dependencies: + '@jest/test-result': 27.5.1 + graceful-fs: 4.2.11 + jest-haste-map: 27.5.1 + jest-runtime: 27.5.1 + transitivePeerDependencies: + - supports-color + + '@jest/transform@27.5.1': + dependencies: + '@babel/core': 7.28.5 + '@jest/types': 27.5.1 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 1.9.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 27.5.1 + jest-regex-util: 27.5.1 + jest-util: 27.5.1 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + source-map: 0.6.1 + write-file-atomic: 3.0.3 + transitivePeerDependencies: + - supports-color + + '@jest/types@27.5.1': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 24.10.1 + '@types/yargs': 16.0.11 + chalk: 4.1.2 + + '@jimp/bmp@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + bmp-js: 0.1.0 + core-js: 3.47.0 + + '@jimp/core@0.10.3': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/utils': 0.10.3 + any-base: 1.1.0 + buffer: 5.7.1 + core-js: 3.47.0 + exif-parser: 0.1.12 + file-type: 9.0.0 + load-bmfont: 1.4.2 + mkdirp: 0.5.6 + phin: 2.9.3 + pixelmatch: 4.0.2 + tinycolor2: 1.6.0 + transitivePeerDependencies: + - debug + + '@jimp/custom@0.10.3': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/core': 0.10.3 + core-js: 3.47.0 + transitivePeerDependencies: + - debug + + '@jimp/gif@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + omggif: 1.0.10 + + '@jimp/jpeg@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + jpeg-js: 0.3.7 + + '@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-blur@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-circle@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-color@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + tinycolor2: 1.6.0 + + '@jimp/plugin-contain@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3)))': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-scale': 0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3)) + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-cover@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3)))': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/plugin-crop': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-scale': 0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3)) + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-displace@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-dither@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-fisheye@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-flip@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-rotate@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3)))': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/plugin-rotate': 0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3)) + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-gaussian@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-invert@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-mask@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-normalize@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-print@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3))': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3) + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + load-bmfont: 1.4.2 + transitivePeerDependencies: + - debug + + '@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-rotate@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3))': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-crop': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3) + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3))': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3) + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-shadow@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-blur@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3))': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/plugin-blur': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3) + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugin-threshold@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-color@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3))': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/plugin-color': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3) + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + + '@jimp/plugins@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-blur': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-circle': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-color': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-contain': 0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3))) + '@jimp/plugin-cover': 0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3))) + '@jimp/plugin-crop': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-displace': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-dither': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-fisheye': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-flip': 0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-rotate@0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3))) + '@jimp/plugin-gaussian': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-invert': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-mask': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-normalize': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-print': 0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3)) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3) + '@jimp/plugin-rotate': 0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3)) + '@jimp/plugin-scale': 0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3)) + '@jimp/plugin-shadow': 0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-blur@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3)) + '@jimp/plugin-threshold': 0.10.3(@jimp/custom@0.10.3)(@jimp/plugin-color@0.10.3(@jimp/custom@0.10.3))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3)) + core-js: 3.47.0 + timm: 1.7.1 + transitivePeerDependencies: + - debug + + '@jimp/png@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/utils': 0.10.3 + core-js: 3.47.0 + pngjs: 3.4.0 + + '@jimp/tiff@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + core-js: 3.47.0 + utif: 2.0.1 + + '@jimp/types@0.10.3(@jimp/custom@0.10.3)': + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/bmp': 0.10.3(@jimp/custom@0.10.3) + '@jimp/custom': 0.10.3 + '@jimp/gif': 0.10.3(@jimp/custom@0.10.3) + '@jimp/jpeg': 0.10.3(@jimp/custom@0.10.3) + '@jimp/png': 0.10.3(@jimp/custom@0.10.3) + '@jimp/tiff': 0.10.3(@jimp/custom@0.10.3) + core-js: 3.47.0 + timm: 1.7.1 + + '@jimp/utils@0.10.3': + dependencies: + '@babel/runtime': 7.28.4 + core-js: 3.47.0 + regenerator-runtime: 0.13.11 + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@meoc/utils@0.2.10': + dependencies: + dayjs: 1.11.19 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@polka/url@1.0.0-next.29': {} + + '@quansync/fs@0.1.5': + dependencies: + quansync: 0.2.11 + + '@rollup/pluginutils@5.3.0': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.3 + + '@rollup/rollup-android-arm-eabi@4.53.3': + optional: true + + '@rollup/rollup-android-arm64@4.53.3': + optional: true + + '@rollup/rollup-darwin-arm64@4.53.3': + optional: true + + '@rollup/rollup-darwin-x64@4.53.3': + optional: true + + '@rollup/rollup-freebsd-arm64@4.53.3': + optional: true + + '@rollup/rollup-freebsd-x64@4.53.3': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.53.3': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.53.3': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.53.3': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.53.3': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.53.3': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.53.3': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.53.3': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.53.3': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.53.3': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.53.3': + optional: true + + '@rollup/rollup-linux-x64-musl@4.53.3': + optional: true + + '@rollup/rollup-openharmony-arm64@4.53.3': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.53.3': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.53.3': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.53.3': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.53.3': + optional: true + + '@sinonjs/commons@1.8.6': + dependencies: + type-detect: 4.0.8 + + '@sinonjs/fake-timers@8.1.0': + dependencies: + '@sinonjs/commons': 1.8.6 + + '@tootallnate/once@1.1.2': {} + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.28.0 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.28.5 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.28.5 + + '@types/estree@1.0.8': {} + + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 24.10.1 + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/node@24.10.1': + dependencies: + undici-types: 7.16.0 + + '@types/prettier@2.7.3': {} + + '@types/stack-utils@2.0.3': {} + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@16.0.11': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@uni-helper/uni-app-types@1.0.0-alpha.6(typescript@4.9.5)(vue@3.5.25(typescript@4.9.5))': + dependencies: + typescript: 4.9.5 + vue: 3.5.25(typescript@4.9.5) + + '@uni-helper/uni-ui-types@1.0.0-alpha.6(@uni-helper/uni-app-types@1.0.0-alpha.6(typescript@4.9.5)(vue@3.5.25(typescript@4.9.5)))(typescript@4.9.5)(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@uni-helper/uni-app-types': 1.0.0-alpha.6(typescript@4.9.5)(vue@3.5.25(typescript@4.9.5)) + typescript: 4.9.5 + vue: 3.5.25(typescript@4.9.5) + + '@unocss/astro@66.5.9(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))': + dependencies: + '@unocss/core': 66.5.9 + '@unocss/reset': 66.5.9 + '@unocss/vite': 66.5.9(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1)) + optionalDependencies: + vite: 5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1) + + '@unocss/cli@66.5.9': + dependencies: + '@jridgewell/remapping': 2.3.5 + '@unocss/config': 66.5.9 + '@unocss/core': 66.5.9 + '@unocss/preset-uno': 66.5.9 + cac: 6.7.14 + chokidar: 3.6.0 + colorette: 2.0.20 + consola: 3.4.2 + magic-string: 0.30.21 + pathe: 2.0.3 + perfect-debounce: 1.0.0 + tinyglobby: 0.2.15 + unplugin-utils: 0.3.1 + + '@unocss/config@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + unconfig: 7.4.1 + + '@unocss/core@66.5.9': {} + + '@unocss/extractor-arbitrary-variants@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + + '@unocss/inspector@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + '@unocss/rule-utils': 66.5.9 + colorette: 2.0.20 + gzip-size: 6.0.0 + sirv: 3.0.2 + vue-flow-layout: 0.2.0 + + '@unocss/postcss@66.5.9(postcss@8.5.6)': + dependencies: + '@unocss/config': 66.5.9 + '@unocss/core': 66.5.9 + '@unocss/rule-utils': 66.5.9 + css-tree: 3.1.0 + postcss: 8.5.6 + tinyglobby: 0.2.15 + + '@unocss/preset-attributify@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + + '@unocss/preset-icons@66.5.9': + dependencies: + '@iconify/utils': 3.0.2 + '@unocss/core': 66.5.9 + ofetch: 1.5.1 + transitivePeerDependencies: + - supports-color + + '@unocss/preset-mini@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + '@unocss/extractor-arbitrary-variants': 66.5.9 + '@unocss/rule-utils': 66.5.9 + + '@unocss/preset-tagify@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + + '@unocss/preset-typography@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + '@unocss/rule-utils': 66.5.9 + + '@unocss/preset-uno@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + '@unocss/preset-wind3': 66.5.9 + + '@unocss/preset-web-fonts@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + ofetch: 1.5.1 + + '@unocss/preset-wind3@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + '@unocss/preset-mini': 66.5.9 + '@unocss/rule-utils': 66.5.9 + + '@unocss/preset-wind4@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + '@unocss/extractor-arbitrary-variants': 66.5.9 + '@unocss/rule-utils': 66.5.9 + + '@unocss/preset-wind@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + '@unocss/preset-wind3': 66.5.9 + + '@unocss/reset@66.5.9': {} + + '@unocss/rule-utils@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + magic-string: 0.30.21 + + '@unocss/transformer-attributify-jsx@66.5.9': + dependencies: + '@babel/parser': 7.27.7 + '@babel/traverse': 7.27.7 + '@unocss/core': 66.5.9 + transitivePeerDependencies: + - supports-color + + '@unocss/transformer-compile-class@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + + '@unocss/transformer-directives@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + '@unocss/rule-utils': 66.5.9 + css-tree: 3.1.0 + + '@unocss/transformer-variant-group@66.5.9': + dependencies: + '@unocss/core': 66.5.9 + + '@unocss/vite@66.5.9(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))': + dependencies: + '@jridgewell/remapping': 2.3.5 + '@unocss/config': 66.5.9 + '@unocss/core': 66.5.9 + '@unocss/inspector': 66.5.9 + chokidar: 3.6.0 + magic-string: 0.30.21 + pathe: 2.0.3 + tinyglobby: 0.2.15 + unplugin-utils: 0.3.1 + vite: 5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1) + + '@vant/area-data@2.1.0': {} + + '@vitejs/plugin-legacy@5.3.2(terser@5.44.1)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))': + dependencies: + '@babel/core': 7.28.5 + '@babel/preset-env': 7.28.5(@babel/core@7.28.5) + browserslist: 4.28.0 + browserslist-to-esbuild: 2.1.1(browserslist@4.28.0) + core-js: 3.47.0 + magic-string: 0.30.21 + regenerator-runtime: 0.14.1 + systemjs: 6.15.1 + terser: 5.44.1 + vite: 5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue-jsx@3.1.0(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) + '@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.5) + vite: 5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1) + vue: 3.5.25(typescript@4.9.5) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue@5.1.0(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1))(vue@3.5.25(typescript@4.9.5))': + dependencies: + vite: 5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1) + vue: 3.5.25(typescript@4.9.5) + + '@volar/language-core@1.11.1': + dependencies: + '@volar/source-map': 1.11.1 + + '@volar/source-map@1.11.1': + dependencies: + muggle-string: 0.3.1 + + '@volar/typescript@1.11.1': + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + + '@vue/babel-helper-vue-transform-on@1.5.0': {} + + '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.28.5)': + dependencies: + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/template': 7.27.2 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@vue/babel-helper-vue-transform-on': 1.5.0 + '@vue/babel-plugin-resolve-type': 1.5.0(@babel/core@7.28.5) + '@vue/shared': 3.5.25 + optionalDependencies: + '@babel/core': 7.28.5 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@1.5.0(@babel/core@7.28.5)': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/core': 7.28.5 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/parser': 7.28.5 + '@vue/compiler-sfc': 3.5.25 + transitivePeerDependencies: + - supports-color + + '@vue/compiler-core@3.4.21': + dependencies: + '@babel/parser': 7.28.5 + '@vue/shared': 3.4.21 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-core@3.5.25': + dependencies: + '@babel/parser': 7.28.5 + '@vue/shared': 3.5.25 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.4.21': + dependencies: + '@vue/compiler-core': 3.4.21 + '@vue/shared': 3.4.21 + + '@vue/compiler-dom@3.5.25': + dependencies: + '@vue/compiler-core': 3.5.25 + '@vue/shared': 3.5.25 + + '@vue/compiler-sfc@3.4.21': + dependencies: + '@babel/parser': 7.28.5 + '@vue/compiler-core': 3.4.21 + '@vue/compiler-dom': 3.4.21 + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.6 + source-map-js: 1.2.1 + + '@vue/compiler-sfc@3.5.25': + dependencies: + '@babel/parser': 7.28.5 + '@vue/compiler-core': 3.5.25 + '@vue/compiler-dom': 3.5.25 + '@vue/compiler-ssr': 3.5.25 + '@vue/shared': 3.5.25 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.6 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.4.21': + dependencies: + '@vue/compiler-dom': 3.4.21 + '@vue/shared': 3.4.21 + + '@vue/compiler-ssr@3.5.25': + dependencies: + '@vue/compiler-dom': 3.5.25 + '@vue/shared': 3.5.25 + + '@vue/consolidate@1.0.0': {} + + '@vue/devtools-api@6.6.4': {} + + '@vue/language-core@1.8.27(typescript@4.9.5)': + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.5.25 + '@vue/shared': 3.5.25 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + vue-template-compiler: 2.7.16 + optionalDependencies: + typescript: 4.9.5 + + '@vue/reactivity@3.5.25': + dependencies: + '@vue/shared': 3.5.25 + + '@vue/runtime-core@3.5.25': + dependencies: + '@vue/reactivity': 3.5.25 + '@vue/shared': 3.5.25 + + '@vue/runtime-dom@3.5.25': + dependencies: + '@vue/reactivity': 3.5.25 + '@vue/runtime-core': 3.5.25 + '@vue/shared': 3.5.25 + csstype: 3.2.3 + + '@vue/server-renderer@3.4.21(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@vue/compiler-ssr': 3.4.21 + '@vue/shared': 3.4.21 + vue: 3.5.25(typescript@4.9.5) + + '@vue/server-renderer@3.5.25(vue@3.5.25(typescript@4.9.5))': + dependencies: + '@vue/compiler-ssr': 3.5.25 + '@vue/shared': 3.5.25 + vue: 3.5.25(typescript@4.9.5) + + '@vue/shared@3.4.21': {} + + '@vue/shared@3.5.25': {} + + '@vue/tsconfig@0.1.3(@types/node@24.10.1)': + optionalDependencies: + '@types/node': 24.10.1 + + abab@2.0.6: {} + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-globals@6.0.0: + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + + acorn-walk@7.2.0: {} + + acorn@7.4.1: {} + + acorn@8.15.0: {} + + address@1.2.2: {} + + adm-zip@0.5.16: {} + + agent-base@6.0.2: + dependencies: + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + any-base@1.1.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + array-flatten@1.1.1: {} + + asynckit@0.4.0: {} + + autoprefixer@10.4.22(postcss@8.5.6): + dependencies: + browserslist: 4.28.0 + caniuse-lite: 1.0.30001757 + fraction.js: 5.3.4 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + + babel-jest@27.5.1(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 27.5.1(@babel/core@7.28.5) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.27.1 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-jest-hoist@27.5.1: + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.28.0 + + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5): + dependencies: + '@babel/compat-data': 7.28.5 + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) + core-js-compat: 3.47.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) + + babel-preset-jest@27.5.1(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + babel-plugin-jest-hoist: 27.5.1 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + base64url@3.0.1: {} + + baseline-browser-mapping@2.8.31: {} + + binary-extensions@2.3.0: {} + + bmp-js@0.1.0: {} + + body-parser@1.20.3: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browser-process-hrtime@1.0.0: {} + + browserslist-to-esbuild@2.1.1(browserslist@4.28.0): + dependencies: + browserslist: 4.28.0 + meow: 13.2.0 + + browserslist@4.28.0: + dependencies: + baseline-browser-mapping: 2.8.31 + caniuse-lite: 1.0.30001757 + electron-to-chromium: 1.5.260 + node-releases: 2.0.27 + update-browserslist-db: 1.1.4(browserslist@4.28.0) + + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + + buffer-equal@0.0.1: {} + + buffer-from@1.1.2: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bytes@3.1.2: {} + + cac@6.7.14: {} + + cac@6.7.9: {} + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001757: {} + + centra@2.7.0: + dependencies: + follow-redirects: 1.15.11 + transitivePeerDependencies: + - debug + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + char-regex@1.0.2: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + ci-info@3.9.0: {} + + cjs-module-lexer@1.4.3: {} + + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + co@4.6.0: {} + + collect-v8-coverage@1.0.3: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + colorette@2.0.20: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@2.20.3: {} + + compare-versions@3.6.0: {} + + computeds@0.0.1: {} + + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + confbox@0.2.2: {} + + consola@3.4.2: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + convert-source-map@1.9.0: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.0.6: {} + + cookie@0.7.1: {} + + copy-text-to-clipboard@3.2.2: {} + + core-js-compat@3.47.0: + dependencies: + browserslist: 4.28.0 + + core-js@3.47.0: {} + + cross-env@7.0.3: + dependencies: + cross-spawn: 7.0.6 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-font-size-keywords@1.0.0: {} + + css-font-stretch-keywords@1.0.1: {} + + css-font-style-keywords@1.0.1: {} + + css-font-weight-keywords@1.0.0: {} + + css-list-helpers@2.0.0: {} + + css-system-font-keywords@1.0.0: {} + + css-tree@3.1.0: + dependencies: + mdn-data: 2.12.2 + source-map-js: 1.2.1 + + cssesc@3.0.0: {} + + cssom@0.3.8: {} + + cssom@0.4.4: {} + + cssstyle@2.3.0: + dependencies: + cssom: 0.3.8 + + csstype@3.2.3: {} + + data-urls@2.0.0: + dependencies: + abab: 2.0.6 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + + dayjs@1.11.19: {} + + de-indent@1.0.2: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + decimal.js@10.6.0: {} + + dedent@0.7.0: {} + + deepmerge@4.3.1: {} + + default-gateway@6.0.3: + dependencies: + execa: 5.1.1 + + defu@6.1.4: {} + + delayed-stream@1.0.0: {} + + depd@2.0.0: {} + + destr@2.0.5: {} + + destroy@1.2.0: {} + + detect-newline@3.1.0: {} + + diff-sequences@27.5.1: {} + + dom-walk@0.1.2: {} + + domexception@2.0.1: + dependencies: + webidl-conversions: 5.0.0 + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + duplexer@0.1.2: {} + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.260: {} + + emittery@0.8.1: {} + + emoji-regex@8.0.0: {} + + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + entities@4.5.0: {} + + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@1.7.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + esbuild@0.20.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@5.0.0: {} + + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + esprima@4.0.1: {} + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.8 + + esutils@2.0.3: {} + + etag@1.8.1: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + exif-parser@0.1.12: {} + + exit@0.1.2: {} + + expect@27.5.1: + dependencies: + '@jest/types': 27.5.1 + jest-get-type: 27.5.1 + jest-matcher-utils: 27.5.1 + jest-message-util: 27.5.1 + + express@4.21.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.1 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.13.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.2 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + exsolve@1.0.8: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + file-type@9.0.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.3.1: + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + follow-redirects@1.15.11: {} + + form-data@3.0.4: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + + forwarded@0.2.0: {} + + fraction.js@5.3.4: {} + + fresh@0.5.2: {} + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + generic-names@4.0.0: + dependencies: + loader-utils: 3.3.1 + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-package-type@0.1.0: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@6.0.1: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + global@4.4.0: + dependencies: + min-document: 2.19.2 + process: 0.11.10 + + globals@11.12.0: {} + + globals@15.15.0: {} + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + gzip-size@6.0.0: + dependencies: + duplexer: 0.1.2 + + has-flag@4.0.0: {} + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hash-sum@2.0.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + html-encoding-sniffer@2.0.1: + dependencies: + whatwg-encoding: 1.0.5 + + html-escaper@2.0.2: {} + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-proxy-agent@4.0.1: + dependencies: + '@tootallnate/once': 1.1.2 + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + icss-replace-symbols@1.1.0: {} + + icss-utils@5.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + ieee754@1.2.1: {} + + immutable@4.3.7: {} + + import-local@3.2.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + invert-kv@3.0.1: {} + + ipaddr.js@1.9.1: {} + + is-arrayish@0.2.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-function@1.0.2: {} + + is-generator-fn@2.1.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-potential-custom-element-name@1.0.1: {} + + is-stream@2.0.1: {} + + is-typedarray@1.0.0: {} + + isbinaryfile@5.0.7: {} + + isexe@2.0.0: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.4.3 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jest-changed-files@27.5.1: + dependencies: + '@jest/types': 27.5.1 + execa: 5.1.1 + throat: 6.0.2 + + jest-circus@27.5.1: + dependencies: + '@jest/environment': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 24.10.1 + chalk: 4.1.2 + co: 4.6.0 + dedent: 0.7.0 + expect: 27.5.1 + is-generator-fn: 2.1.0 + jest-each: 27.5.1 + jest-matcher-utils: 27.5.1 + jest-message-util: 27.5.1 + jest-runtime: 27.5.1 + jest-snapshot: 27.5.1 + jest-util: 27.5.1 + pretty-format: 27.5.1 + slash: 3.0.0 + stack-utils: 2.0.6 + throat: 6.0.2 + transitivePeerDependencies: + - supports-color + + jest-cli@27.5.1: + dependencies: + '@jest/core': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/types': 27.5.1 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + import-local: 3.2.0 + jest-config: 27.5.1 + jest-util: 27.5.1 + jest-validate: 27.5.1 + prompts: 2.4.2 + yargs: 16.2.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + + jest-config@27.5.1: + dependencies: + '@babel/core': 7.28.5 + '@jest/test-sequencer': 27.5.1 + '@jest/types': 27.5.1 + babel-jest: 27.5.1(@babel/core@7.28.5) + chalk: 4.1.2 + ci-info: 3.9.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 27.5.1 + jest-environment-jsdom: 27.5.1 + jest-environment-node: 27.5.1 + jest-get-type: 27.5.1 + jest-jasmine2: 27.5.1 + jest-regex-util: 27.5.1 + jest-resolve: 27.5.1 + jest-runner: 27.5.1 + jest-util: 27.5.1 + jest-validate: 27.5.1 + micromatch: 4.0.8 + parse-json: 5.2.0 + pretty-format: 27.5.1 + slash: 3.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + + jest-diff@27.5.1: + dependencies: + chalk: 4.1.2 + diff-sequences: 27.5.1 + jest-get-type: 27.5.1 + pretty-format: 27.5.1 + + jest-docblock@27.5.1: + dependencies: + detect-newline: 3.1.0 + + jest-each@27.5.1: + dependencies: + '@jest/types': 27.5.1 + chalk: 4.1.2 + jest-get-type: 27.5.1 + jest-util: 27.5.1 + pretty-format: 27.5.1 + + jest-environment-jsdom@27.5.1: + dependencies: + '@jest/environment': 27.5.1 + '@jest/fake-timers': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 24.10.1 + jest-mock: 27.5.1 + jest-util: 27.5.1 + jsdom: 16.7.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + + jest-environment-node@27.5.1: + dependencies: + '@jest/environment': 27.5.1 + '@jest/fake-timers': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 24.10.1 + jest-mock: 27.5.1 + jest-util: 27.5.1 + + jest-get-type@27.5.1: {} + + jest-haste-map@27.5.1: + dependencies: + '@jest/types': 27.5.1 + '@types/graceful-fs': 4.1.9 + '@types/node': 24.10.1 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 27.5.1 + jest-serializer: 27.5.1 + jest-util: 27.5.1 + jest-worker: 27.5.1 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-jasmine2@27.5.1: + dependencies: + '@jest/environment': 27.5.1 + '@jest/source-map': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 24.10.1 + chalk: 4.1.2 + co: 4.6.0 + expect: 27.5.1 + is-generator-fn: 2.1.0 + jest-each: 27.5.1 + jest-matcher-utils: 27.5.1 + jest-message-util: 27.5.1 + jest-runtime: 27.5.1 + jest-snapshot: 27.5.1 + jest-util: 27.5.1 + pretty-format: 27.5.1 + throat: 6.0.2 + transitivePeerDependencies: + - supports-color + + jest-leak-detector@27.5.1: + dependencies: + jest-get-type: 27.5.1 + pretty-format: 27.5.1 + + jest-matcher-utils@27.5.1: + dependencies: + chalk: 4.1.2 + jest-diff: 27.5.1 + jest-get-type: 27.5.1 + pretty-format: 27.5.1 + + jest-message-util@27.5.1: + dependencies: + '@babel/code-frame': 7.27.1 + '@jest/types': 27.5.1 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 27.5.1 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@27.5.1: + dependencies: + '@jest/types': 27.5.1 + '@types/node': 24.10.1 + + jest-pnp-resolver@1.2.3(jest-resolve@27.5.1): + optionalDependencies: + jest-resolve: 27.5.1 + + jest-regex-util@27.5.1: {} + + jest-resolve-dependencies@27.5.1: + dependencies: + '@jest/types': 27.5.1 + jest-regex-util: 27.5.1 + jest-snapshot: 27.5.1 + transitivePeerDependencies: + - supports-color + + jest-resolve@27.5.1: + dependencies: + '@jest/types': 27.5.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 27.5.1 + jest-pnp-resolver: 1.2.3(jest-resolve@27.5.1) + jest-util: 27.5.1 + jest-validate: 27.5.1 + resolve: 1.22.11 + resolve.exports: 1.1.1 + slash: 3.0.0 + + jest-runner@27.5.1: + dependencies: + '@jest/console': 27.5.1 + '@jest/environment': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 24.10.1 + chalk: 4.1.2 + emittery: 0.8.1 + graceful-fs: 4.2.11 + jest-docblock: 27.5.1 + jest-environment-jsdom: 27.5.1 + jest-environment-node: 27.5.1 + jest-haste-map: 27.5.1 + jest-leak-detector: 27.5.1 + jest-message-util: 27.5.1 + jest-resolve: 27.5.1 + jest-runtime: 27.5.1 + jest-util: 27.5.1 + jest-worker: 27.5.1 + source-map-support: 0.5.21 + throat: 6.0.2 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + + jest-runtime@27.5.1: + dependencies: + '@jest/environment': 27.5.1 + '@jest/fake-timers': 27.5.1 + '@jest/globals': 27.5.1 + '@jest/source-map': 27.5.1 + '@jest/test-result': 27.5.1 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + chalk: 4.1.2 + cjs-module-lexer: 1.4.3 + collect-v8-coverage: 1.0.3 + execa: 5.1.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-haste-map: 27.5.1 + jest-message-util: 27.5.1 + jest-mock: 27.5.1 + jest-regex-util: 27.5.1 + jest-resolve: 27.5.1 + jest-snapshot: 27.5.1 + jest-util: 27.5.1 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + + jest-serializer@27.5.1: + dependencies: + '@types/node': 24.10.1 + graceful-fs: 4.2.11 + + jest-snapshot@27.5.1: + dependencies: + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/babel__traverse': 7.28.0 + '@types/prettier': 2.7.3 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) + chalk: 4.1.2 + expect: 27.5.1 + graceful-fs: 4.2.11 + jest-diff: 27.5.1 + jest-get-type: 27.5.1 + jest-haste-map: 27.5.1 + jest-matcher-utils: 27.5.1 + jest-message-util: 27.5.1 + jest-util: 27.5.1 + natural-compare: 1.4.0 + pretty-format: 27.5.1 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + jest-util@27.5.1: + dependencies: + '@jest/types': 27.5.1 + '@types/node': 24.10.1 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@27.5.1: + dependencies: + '@jest/types': 27.5.1 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 27.5.1 + leven: 3.1.0 + pretty-format: 27.5.1 + + jest-watcher@27.5.1: + dependencies: + '@jest/test-result': 27.5.1 + '@jest/types': 27.5.1 + '@types/node': 24.10.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + jest-util: 27.5.1 + string-length: 4.0.2 + + jest-worker@27.5.1: + dependencies: + '@types/node': 24.10.1 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@27.0.4: + dependencies: + '@jest/core': 27.5.1 + import-local: 3.2.0 + jest-cli: 27.5.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + + jimp@0.10.3: + dependencies: + '@babel/runtime': 7.28.4 + '@jimp/custom': 0.10.3 + '@jimp/plugins': 0.10.3(@jimp/custom@0.10.3) + '@jimp/types': 0.10.3(@jimp/custom@0.10.3) + core-js: 3.47.0 + regenerator-runtime: 0.13.11 + transitivePeerDependencies: + - debug + + jiti@2.6.1: {} + + jpeg-js@0.3.7: {} + + js-tokens@4.0.0: {} + + js-tokens@9.0.1: {} + + js-yaml@3.14.2: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + jsdom@16.7.0: + dependencies: + abab: 2.0.6 + acorn: 8.15.0 + acorn-globals: 6.0.0 + cssom: 0.4.4 + cssstyle: 2.3.0 + data-urls: 2.0.0 + decimal.js: 10.6.0 + domexception: 2.0.1 + escodegen: 2.1.0 + form-data: 3.0.4 + html-encoding-sniffer: 2.0.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.22 + parse5: 6.0.1 + saxes: 5.0.1 + symbol-tree: 3.2.4 + tough-cookie: 4.1.4 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 2.0.0 + webidl-conversions: 6.1.0 + whatwg-encoding: 1.0.5 + whatwg-mimetype: 2.3.0 + whatwg-url: 8.7.0 + ws: 7.5.10 + xml-name-validator: 3.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + jsesc@3.1.0: {} + + json-parse-even-better-errors@2.3.1: {} + + json5@2.2.3: {} + + jsonc-parser@3.3.1: {} + + jsonfile@6.2.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + kleur@3.0.3: {} + + kolorist@1.8.0: {} + + lcid@3.1.1: + dependencies: + invert-kv: 3.0.1 + + leven@3.1.0: {} + + licia@1.48.0: {} + + lilconfig@2.1.0: {} + + lines-and-columns@1.2.4: {} + + lines-and-columns@2.0.4: {} + + load-bmfont@1.4.2: + dependencies: + buffer-equal: 0.0.1 + mime: 1.6.0 + parse-bmfont-ascii: 1.0.6 + parse-bmfont-binary: 1.0.6 + parse-bmfont-xml: 1.1.6 + phin: 3.7.1 + xhr: 2.6.0 + xtend: 4.0.2 + transitivePeerDependencies: + - debug + + loader-utils@3.3.1: {} + + local-pkg@0.5.1: + dependencies: + mlly: 1.8.0 + pkg-types: 1.3.1 + + local-pkg@1.1.2: + dependencies: + mlly: 1.8.0 + pkg-types: 2.3.0 + quansync: 0.2.11 + + localstorage-polyfill@1.0.1: {} + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + lodash-es@4.17.21: {} + + lodash.camelcase@4.3.0: {} + + lodash.debounce@4.0.8: {} + + lodash@4.17.21: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + luch-request@3.1.1: + dependencies: + '@dcloudio/types': 2.6.12 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + make-dir@4.0.0: + dependencies: + semver: 7.7.3 + + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + + math-intrinsics@1.1.0: {} + + mdn-data@2.12.2: {} + + media-typer@0.3.0: {} + + meow@13.2.0: {} + + merge-descriptors@1.0.3: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + merge@2.1.1: {} + + methods@1.1.2: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + mime@3.0.0: {} + + mimic-fn@2.1.0: {} + + min-document@2.19.2: + dependencies: + dom-walk: 0.1.2 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 + + minimist@1.2.8: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mlly@1.8.0: + dependencies: + acorn: 8.15.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.1 + + module-alias@2.2.3: {} + + mrmime@2.0.1: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + muggle-string@0.3.1: {} + + mutation-observer@1.0.3: {} + + nanoid@3.3.11: {} + + natural-compare@1.4.0: {} + + negotiator@0.6.3: {} + + node-fetch-native@1.6.7: {} + + node-int64@0.4.0: {} + + node-releases@2.0.27: {} + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + nwsapi@2.2.22: {} + + object-inspect@1.13.4: {} + + ofetch@1.5.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.7 + ufo: 1.6.1 + + omggif@1.0.10: {} + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + os-locale-s-fix@1.0.8-fix-1: + dependencies: + lcid: 3.1.1 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-try@2.2.0: {} + + package-manager-detector@1.5.0: {} + + pako@1.0.11: {} + + parse-bmfont-ascii@1.0.6: {} + + parse-bmfont-binary@1.0.6: {} + + parse-bmfont-xml@1.1.6: + dependencies: + xml-parse-from-string: 1.0.1 + xml2js: 0.5.0 + + parse-css-font@4.0.0: + dependencies: + css-font-size-keywords: 1.0.0 + css-font-stretch-keywords: 1.0.1 + css-font-style-keywords: 1.0.1 + css-font-weight-keywords: 1.0.0 + css-list-helpers: 2.0.0 + css-system-font-keywords: 1.0.0 + unquote: 1.1.1 + + parse-headers@2.0.6: {} + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse5@6.0.1: {} + + parseurl@1.3.3: {} + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-to-regexp@0.1.12: {} + + pathe@2.0.3: {} + + perfect-debounce@1.0.0: {} + + phin@2.9.3: {} + + phin@3.7.1: + dependencies: + centra: 2.7.0 + transitivePeerDependencies: + - debug + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: {} + + pify@2.3.0: {} + + pinia-plugin-persist-uni@1.3.1(pinia@2.3.1(typescript@4.9.5)(vue@3.5.25(typescript@4.9.5)))(vue@3.5.25(typescript@4.9.5)): + dependencies: + pinia: 2.3.1(typescript@4.9.5)(vue@3.5.25(typescript@4.9.5)) + vue: 3.5.25(typescript@4.9.5) + vue-demi: 0.12.5(vue@3.5.25(typescript@4.9.5)) + + pinia@2.3.1(typescript@4.9.5)(vue@3.5.25(typescript@4.9.5)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.25(typescript@4.9.5) + vue-demi: 0.14.10(vue@3.5.25(typescript@4.9.5)) + optionalDependencies: + typescript: 4.9.5 + transitivePeerDependencies: + - '@vue/composition-api' + + pirates@4.0.7: {} + + pixelmatch@4.0.2: + dependencies: + pngjs: 3.4.0 + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.8.0 + pathe: 2.0.3 + + pkg-types@2.3.0: + dependencies: + confbox: 0.2.2 + exsolve: 1.0.8 + pathe: 2.0.3 + + pngjs@3.4.0: {} + + postcss-import@14.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.11 + + postcss-load-config@3.1.4(postcss@8.5.6): + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + optionalDependencies: + postcss: 8.5.6 + + postcss-modules-extract-imports@3.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + + postcss-modules-local-by-default@4.2.0(postcss@8.5.6): + dependencies: + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + postcss-value-parser: 4.2.0 + + postcss-modules-scope@3.2.1(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 7.1.0 + + postcss-modules-values@4.0.0(postcss@8.5.6): + dependencies: + icss-utils: 5.1.0(postcss@8.5.6) + postcss: 8.5.6 + + postcss-modules@4.3.1(postcss@8.5.6): + dependencies: + generic-names: 4.0.0 + icss-replace-symbols: 1.1.0 + lodash.camelcase: 4.3.0 + postcss: 8.5.6 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.6) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.6) + postcss-modules-scope: 3.2.1(postcss@8.5.6) + postcss-modules-values: 4.0.0(postcss@8.5.6) + string-hash: 1.1.3 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-selector-parser@7.1.0: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prettier@2.8.8: {} + + pretty-format@27.5.1: + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + + process@0.11.10: {} + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + psl@1.15.0: + dependencies: + punycode: 2.3.1 + + punycode@2.3.1: {} + + qrcode-reader@1.0.4: {} + + qrcode-terminal@0.12.0: {} + + qs@6.13.0: + dependencies: + side-channel: 1.1.0 + + quansync@0.2.11: {} + + querystringify@2.2.0: {} + + queue-microtask@1.2.3: {} + + range-parser@1.2.1: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + react-is@17.0.2: {} + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + regenerate-unicode-properties@10.2.2: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regenerator-runtime@0.13.11: {} + + regenerator-runtime@0.14.1: {} + + regexpu-core@6.4.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.2 + regjsgen: 0.8.0 + regjsparser: 0.13.0 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.1 + + regjsgen@0.8.0: {} + + regjsparser@0.13.0: + dependencies: + jsesc: 3.1.0 + + require-directory@2.1.1: {} + + requires-port@1.0.0: {} + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-from@5.0.0: {} + + resolve.exports@1.1.1: {} + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.1.0: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup@4.53.3: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.53.3 + '@rollup/rollup-android-arm64': 4.53.3 + '@rollup/rollup-darwin-arm64': 4.53.3 + '@rollup/rollup-darwin-x64': 4.53.3 + '@rollup/rollup-freebsd-arm64': 4.53.3 + '@rollup/rollup-freebsd-x64': 4.53.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.53.3 + '@rollup/rollup-linux-arm-musleabihf': 4.53.3 + '@rollup/rollup-linux-arm64-gnu': 4.53.3 + '@rollup/rollup-linux-arm64-musl': 4.53.3 + '@rollup/rollup-linux-loong64-gnu': 4.53.3 + '@rollup/rollup-linux-ppc64-gnu': 4.53.3 + '@rollup/rollup-linux-riscv64-gnu': 4.53.3 + '@rollup/rollup-linux-riscv64-musl': 4.53.3 + '@rollup/rollup-linux-s390x-gnu': 4.53.3 + '@rollup/rollup-linux-x64-gnu': 4.53.3 + '@rollup/rollup-linux-x64-musl': 4.53.3 + '@rollup/rollup-openharmony-arm64': 4.53.3 + '@rollup/rollup-win32-arm64-msvc': 4.53.3 + '@rollup/rollup-win32-ia32-msvc': 4.53.3 + '@rollup/rollup-win32-x64-gnu': 4.53.3 + '@rollup/rollup-win32-x64-msvc': 4.53.3 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-area-insets@1.4.1: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + sass@1.78.0: + dependencies: + chokidar: 3.6.0 + immutable: 4.3.7 + source-map-js: 1.2.1 + + sax@1.4.3: {} + + saxes@5.0.1: + dependencies: + xmlchars: 2.2.0 + + scule@1.3.0: {} + + semver@6.3.1: {} + + semver@7.7.3: {} + + send@0.19.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + serve-static@1.16.2: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0 + transitivePeerDependencies: + - supports-color + + setprototypeof@1.2.0: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@3.0.7: {} + + sirv@3.0.2: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + + sisteransi@1.0.5: {} + + slash@3.0.0: {} + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.6: {} + + sprintf-js@1.0.3: {} + + stack-utils@2.0.6: + dependencies: + escape-string-regexp: 2.0.0 + + statuses@2.0.1: {} + + string-hash@1.1.3: {} + + string-length@4.0.2: + dependencies: + char-regex: 1.0.2 + strip-ansi: 6.0.1 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-bom@4.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-json-comments@3.1.1: {} + + strip-literal@2.1.1: + dependencies: + js-tokens: 9.0.1 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-hyperlinks@2.3.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + symbol-tree@3.2.4: {} + + systemjs@6.15.1: {} + + tapable@2.3.0: {} + + terminal-link@2.1.1: + dependencies: + ansi-escapes: 4.3.2 + supports-hyperlinks: 2.3.0 + + terser@5.44.1: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + + throat@6.0.2: {} + + timm@1.7.1: {} + + tinycolor2@1.6.0: {} + + tinyexec@1.0.2: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + + tmpl@1.0.5: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + totalist@3.0.1: {} + + tough-cookie@4.1.4: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + + tr46@2.1.0: + dependencies: + punycode: 2.3.1 + + type-detect@4.0.8: {} + + type-fest@0.21.3: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + typedarray-to-buffer@3.1.5: + dependencies: + is-typedarray: 1.0.0 + + typescript@4.9.5: {} + + ufo@1.6.1: {} + + unconfig-core@7.4.1: + dependencies: + '@quansync/fs': 0.1.5 + quansync: 0.2.11 + + unconfig@7.4.1: + dependencies: + '@quansync/fs': 0.1.5 + defu: 6.1.4 + jiti: 2.6.1 + quansync: 0.2.11 + unconfig-core: 7.4.1 + + undici-types@7.16.0: {} + + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.2.0 + + unicode-match-property-value-ecmascript@2.2.1: {} + + unicode-property-aliases-ecmascript@2.2.0: {} + + unimport@3.14.6: + dependencies: + '@rollup/pluginutils': 5.3.0 + acorn: 8.15.0 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + fast-glob: 3.3.3 + local-pkg: 1.1.2 + magic-string: 0.30.21 + mlly: 1.8.0 + pathe: 2.0.3 + picomatch: 4.0.3 + pkg-types: 1.3.1 + scule: 1.3.0 + strip-literal: 2.1.1 + unplugin: 1.16.1 + transitivePeerDependencies: + - rollup + + universalify@0.2.0: {} + + universalify@2.0.1: {} + + unocss-preset-weapp@66.0.2(esbuild@0.20.2)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1)): + dependencies: + '@rollup/pluginutils': 5.3.0 + '@unocss/core': 66.5.9 + '@unocss/extractor-arbitrary-variants': 66.5.9 + '@unocss/rule-utils': 66.5.9 + unplugin-attributify-to-class: 0.2.5 + unplugin-transform-class: 0.6.0(esbuild@0.20.2)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1)) + transitivePeerDependencies: + - '@farmfe/core' + - '@nuxt/kit' + - '@nuxt/schema' + - esbuild + - rollup + - vite + - webpack + + unocss@66.5.9(postcss@8.5.6)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1)): + dependencies: + '@unocss/astro': 66.5.9(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1)) + '@unocss/cli': 66.5.9 + '@unocss/core': 66.5.9 + '@unocss/postcss': 66.5.9(postcss@8.5.6) + '@unocss/preset-attributify': 66.5.9 + '@unocss/preset-icons': 66.5.9 + '@unocss/preset-mini': 66.5.9 + '@unocss/preset-tagify': 66.5.9 + '@unocss/preset-typography': 66.5.9 + '@unocss/preset-uno': 66.5.9 + '@unocss/preset-web-fonts': 66.5.9 + '@unocss/preset-wind': 66.5.9 + '@unocss/preset-wind3': 66.5.9 + '@unocss/preset-wind4': 66.5.9 + '@unocss/transformer-attributify-jsx': 66.5.9 + '@unocss/transformer-compile-class': 66.5.9 + '@unocss/transformer-directives': 66.5.9 + '@unocss/transformer-variant-group': 66.5.9 + '@unocss/vite': 66.5.9(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1)) + optionalDependencies: + vite: 5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1) + transitivePeerDependencies: + - postcss + - supports-color + + unpipe@1.0.0: {} + + unplugin-attributify-to-class@0.2.5: + dependencies: + '@rollup/pluginutils': 5.3.0 + unplugin: 1.16.1 + unplugin-transform-class: 0.5.3 + transitivePeerDependencies: + - rollup + + unplugin-auto-import@0.18.6: + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.3.0 + fast-glob: 3.3.3 + local-pkg: 0.5.1 + magic-string: 0.30.21 + minimatch: 9.0.5 + unimport: 3.14.6 + unplugin: 1.16.1 + transitivePeerDependencies: + - rollup + + unplugin-transform-class@0.5.3: + dependencies: + '@meoc/utils': 0.2.10 + '@rollup/pluginutils': 5.3.0 + unplugin: 1.7.1 + transitivePeerDependencies: + - rollup + + unplugin-transform-class@0.6.0(esbuild@0.20.2)(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1)): + dependencies: + '@meoc/utils': 0.2.10 + '@rollup/pluginutils': 5.3.0 + unplugin: 2.3.2 + optionalDependencies: + esbuild: 0.20.2 + vite: 5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1) + + unplugin-utils@0.3.1: + dependencies: + pathe: 2.0.3 + picomatch: 4.0.3 + + unplugin@1.16.1: + dependencies: + acorn: 8.15.0 + webpack-virtual-modules: 0.6.2 + + unplugin@1.7.1: + dependencies: + acorn: 8.15.0 + chokidar: 3.6.0 + webpack-sources: 3.3.3 + webpack-virtual-modules: 0.6.2 + + unplugin@2.3.2: + dependencies: + acorn: 8.15.0 + picomatch: 4.0.3 + webpack-virtual-modules: 0.6.2 + + unquote@1.1.1: {} + + update-browserslist-db@1.1.4(browserslist@4.28.0): + dependencies: + browserslist: 4.28.0 + escalade: 3.2.0 + picocolors: 1.1.1 + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + + utif@2.0.1: + dependencies: + pako: 1.0.11 + + util-deprecate@1.0.2: {} + + utils-merge@1.0.1: {} + + v8-to-istanbul@8.1.1: + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 1.9.0 + source-map: 0.7.6 + + vary@1.1.2: {} + + vconsole@3.15.1: + dependencies: + '@babel/runtime': 7.28.4 + copy-text-to-clipboard: 3.2.2 + core-js: 3.47.0 + mutation-observer: 1.0.3 + + vite-plugin-compression@0.5.1(vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1)): + dependencies: + chalk: 4.1.2 + debug: 4.4.3 + fs-extra: 10.1.0 + vite: 5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1) + transitivePeerDependencies: + - supports-color + + vite@5.2.8(@types/node@24.10.1)(sass@1.78.0)(terser@5.44.1): + dependencies: + esbuild: 0.20.2 + postcss: 8.5.6 + rollup: 4.53.3 + optionalDependencies: + '@types/node': 24.10.1 + fsevents: 2.3.3 + sass: 1.78.0 + terser: 5.44.1 + + vue-demi@0.12.5(vue@3.5.25(typescript@4.9.5)): + dependencies: + vue: 3.5.25(typescript@4.9.5) + + vue-demi@0.14.10(vue@3.5.25(typescript@4.9.5)): + dependencies: + vue: 3.5.25(typescript@4.9.5) + + vue-flow-layout@0.2.0: {} + + vue-i18n@9.14.5(vue@3.5.25(typescript@4.9.5)): + dependencies: + '@intlify/core-base': 9.14.5 + '@intlify/shared': 9.14.5 + '@vue/devtools-api': 6.6.4 + vue: 3.5.25(typescript@4.9.5) + + vue-router@4.6.3(vue@3.5.25(typescript@4.9.5)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.25(typescript@4.9.5) + + vue-template-compiler@2.7.16: + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + vue-tsc@1.8.27(typescript@4.9.5): + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@4.9.5) + semver: 7.7.3 + typescript: 4.9.5 + + vue@3.5.25(typescript@4.9.5): + dependencies: + '@vue/compiler-dom': 3.5.25 + '@vue/compiler-sfc': 3.5.25 + '@vue/runtime-dom': 3.5.25 + '@vue/server-renderer': 3.5.25(vue@3.5.25(typescript@4.9.5)) + '@vue/shared': 3.5.25 + optionalDependencies: + typescript: 4.9.5 + + w3c-hr-time@1.0.2: + dependencies: + browser-process-hrtime: 1.0.0 + + w3c-xmlserializer@2.0.0: + dependencies: + xml-name-validator: 3.0.0 + + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + + webidl-conversions@5.0.0: {} + + webidl-conversions@6.1.0: {} + + webpack-sources@3.3.3: {} + + webpack-virtual-modules@0.6.2: {} + + weixin-js-sdk@1.6.5: {} + + whatwg-encoding@1.0.5: + dependencies: + iconv-lite: 0.4.24 + + whatwg-mimetype@2.3.0: {} + + whatwg-url@8.7.0: + dependencies: + lodash: 4.17.21 + tr46: 2.1.0 + webidl-conversions: 6.1.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrappy@1.0.2: {} + + write-file-atomic@3.0.3: + dependencies: + imurmurhash: 0.1.4 + is-typedarray: 1.0.0 + signal-exit: 3.0.7 + typedarray-to-buffer: 3.1.5 + + ws@7.5.10: {} + + ws@8.18.3: {} + + xhr@2.6.0: + dependencies: + global: 4.4.0 + is-function: 1.0.2 + parse-headers: 2.0.6 + xtend: 4.0.2 + + xml-name-validator@3.0.0: {} + + xml-parse-from-string@1.0.1: {} + + xml2js@0.5.0: + dependencies: + sax: 1.4.3 + xmlbuilder: 11.0.1 + + xmlbuilder@11.0.1: {} + + xmlchars@2.2.0: {} + + xmlhttprequest@1.8.0: {} + + xregexp@3.1.0: {} + + xtend@4.0.2: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yaml@1.10.2: {} + + yargs-parser@20.2.9: {} + + yargs@16.2.0: + dependencies: + cliui: 7.0.4 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 diff --git a/src/ForwardType.js b/src/ForwardType.js deleted file mode 100644 index 0c761b83..00000000 --- a/src/ForwardType.js +++ /dev/null @@ -1,17 +0,0 @@ -export default class ForwardType { - /** - * 普通转发 - * @type {number} - */ - static NORMAL = 0; - /** - * 逐条转发 - * @type {number} - */ - static ONE_BY_ONE = 1; - /** - * 合并转发 - * @type {number} - */ - static COMPOSITE = 2; -} diff --git a/src/assets/images/icon.png b/src/assets/images/icon.png deleted file mode 100644 index 3a55ca45..00000000 Binary files a/src/assets/images/icon.png and /dev/null differ diff --git a/src/assets/images/user-fallback.png b/src/assets/images/user-fallback.png deleted file mode 100644 index 346686d3..00000000 Binary files a/src/assets/images/user-fallback.png and /dev/null differ diff --git a/src/assets/lang/en.json b/src/assets/lang/en.json deleted file mode 100644 index 595375e5..00000000 --- a/src/assets/lang/en.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "login": { - "desc": "Scan the QR code to login Wildfire IM", - "tip": "Wildfire IM Web client needs to be used with your mobile", - "warning": "Don't use WeChat to scan the QR code!!!", - "scan_qr_success": "Scan code successfully", - "confirm_login_tip": "Please confirm the login on your mobile", - "remember_me": "Remember me", - "cancel_login": "Cancel Login", - "login": "Login", - "switch_user": "Switch User", - "auto_login_tip": "Automatically logging in..." - }, - "contact": { - "new_friend": "New friend", - "group": "Group Chat", - "contact": "Contact", - "channel": "Channel" - }, - "friend_request": { - "request": "Friend Request", - "send_request_tip": "Send friend request to {0}", - "accepted": "Accepted", - "sent": "Sent", - "denied": "Rejected", - "im": "I am", - "intro": "Hello" - }, - "group": { - "name": "Group name {0}", - "chat": "Start group chat", - "fav": "Save to contact list" - }, - "message":{ - "send_message": "Send Message", - "records": "Chat Records", - "unsupport_message_desc": "This message type is not supported, please check it on your phone", - "receipt": "Message Receipt", - "receipt_detail": "Message Receipt Detail", - "receipt_read_users": "Read", - "receipt_received_users": "Delivered", - "receipt_unreceived_users": "Undelivered", - "sender": "Message Sender", - "content": "Message content" - }, - "conversation": { - "forward_title": "Send separately", - "picked_contact": "Selected contact", - "create_group": "Create a group chat", - "recent_conversation": "Recent Chat", - "not_select_conversation": "Not select any chat", - "select_conversation_desc": "{0} chats selected", - "forward_extra": "Leave a message to friend", - "forward_one_by_one": "Forward one by one", - "forward_composite": "Merge Forward", - "user_message_records": "{0}’s chat records", - "group_message_records": "Group Chat Records", - "drag_to_send_to": "Drag here to send to {0}", - "no_more_message": "No more messages", - "all_message_load": "All messages have been loaded :(", - "drag_to_send_limit_tip": "Send up to 5 files at a time", - "not_support_send_folder": "Not support send folder", - "group_name": "Group name", - "group_announcement": "Group announcement", - "add_member": "Add member", - "remove_member": "Remove member", - "quit_group": "Quit group chat", - "click_to_edit_group_announcement": "click to edit group announcement", - "all_people": "Everyone", - "sticky_top": "sticky_top", - "cancel_sticky_top": "Cancel sticky top", - "enable_notification": "Allow notification", - "disable_notification": "Not disturb", - "mark_as_unread": "Mark as unread", - "mark_as_read": "Mark as read" - }, - "fav": { - "fav": "Collection", - "all": "All Collection", - "file": "File", - "media": "Album", - "composite": "Chat Record", - "from": "From", - "no_more": "No more favorites", - "all_fav_load": "All favorites have been loaded :(" - }, - "voip": { - "desc": "Audio and Video Call", - "not_answer": "The other party did not answer", - "ongoing": "Calling", - "duration": "Call duration" - }, - "pick": { - "pick_contact": "Select Contact", - "picked_contact": "Selected contact" - }, - "search": { - "new_user": "New User", - "view_all": "View All", - "message_history": "Chat History", - "search_message_history": "Search chat history..." - }, - "file_record": { - "no_more": "No more files", - "all_file_load": "All files have been loaded :(" - }, - "setting": { - "setting": "Settings", - "enable_notification": "Enable notification", - "enable_notification_detail": "Notification display message content", - "close_window_to_exit": "When closing the window, exit directly", - "auto_login": "Remember me", - "exit_switch_user": "Exit/Switch Account", - "feedback": "Send feedback to us", - "lang": "Language (valid after restart)", - "zh_cn": "简体中文", - "zh_tw": "繁體中文", - "en": "English", - "sync_draft": "Sync draft" - }, - "common": { - "add": "Add", - "remove": "Remove", - "send": "Send", - "contact": "Contact", - "confirm": "Confirm", - "cancel": "Cancel", - "alias": "Remarks", - "area": "Area", - "label": "Label", - "conversation": "Chat", - "sender": "Sender", - "all": "All", - "mine": "Mine", - "unknown": "Unknown", - "search": "Search", - "back": "Back", - "create": "Create", - "none": "None", - "copy": "Copy", - "paste": "Paste", - "cut": "Cut", - "delete": "Delete", - "forward": "forward", - "fav": "Collection", - "quote": "quote", - "multi_select": "Multiselect", - "recall": "Recall", - "open": "Open", - "open_dir": "Open Directory", - "draft": "Draft", - "save": "Save", - "month_1": "January", - "month_2": "February", - "month_3": "March Month", - "month_4": "April", - "month_5": "May", - "month_6": "June", - "month_7": "July", - "month_8": "August", - "month_9": "September", - "month_10": "October", - "month_11": "November", - "month_12": "December", - "wfc_id": "ID" - }, - "misc":{ - "beijing": "Beijing", - "test_user": "Test User", - "gen_qr_code": "Generating QR code", - "send_to_friend": "Send to Friend..." - - } -} \ No newline at end of file diff --git a/src/assets/lang/zh-CN.json b/src/assets/lang/zh-CN.json deleted file mode 100644 index 8f0c4ec8..00000000 --- a/src/assets/lang/zh-CN.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "login": { - "desc": "扫码登录野火IM", - "tip": "野火IM Web端需要配合您的手机客户端登录使用", - "warning": "不是使用微信扫码登录!!!", - "scan_qr_success": "扫码成功", - "confirm_login_tip": "请在手机上点击确认以登录", - "remember_me": "记住登录", - "cancel_login": "取消登录", - "login": "登录", - "switch_user": "切换用户", - "auto_login_tip": "自动登录中..." - }, - "contact": { - "new_friend": "新的朋友", - "group": "群聊", - "contact": "联系人", - "channel": "频道" - }, - "friend_request": { - "request": "好友请求", - "send_request_tip": "向{0}发送好球请求", - "accepted": "已添加", - "sent": "已发送", - "denied": "已拒绝", - "im": "我是", - "intro": "你好" - }, - "group": { - "name": "群名称{0}", - "chat": "进入群聊", - "fav": "保存到通讯录" - }, - "message":{ - "send_message": "发消息", - "records": "聊天记录", - "unsupport_message_desc": "不支持该消息类型,请在手机上查看", - "receipt": "消息回执", - "receipt_detail": "消息回执信息", - "receipt_read_users": "已读人员", - "receipt_received_users": "已送达", - "receipt_unreceived_users": "未送达", - "sender": "消息发送者", - "content": "消息内容" - }, - "conversation": { - "forward_title": "分别发送给", - "picked_contact": "已选择联系人", - "create_group": "创建群聊", - "recent_conversation": "最近聊天", - "not_select_conversation": "未选择聊天", - "select_conversation_desc": "已选择{0}个聊天", - "forward_extra": "给朋友留言", - "forward_one_by_one": "逐条转发", - "forward_composite": "合并转发", - "user_message_records": "{0}的聊天记录", - "group_message_records": "群聊的聊天记录", - "drag_to_send_to": "拖拽到此发送给{0}", - "no_more_message": "没有更多消息", - "all_message_load": "已加载全部消息 :(", - "drag_to_send_limit_tip": "一次最多发送5个文件", - "not_support_send_folder": "不支持发送文件夹", - "group_name": "群名", - "group_announcement": "群公告", - "add_member": "添加成员", - "remove_member": "移除成员", - "quit_group": "退出群聊", - "click_to_edit_group_announcement": "点击编辑群公告", - "all_people": "所有人", - "sticky_top": "置顶", - "cancel_sticky_top": "取消置顶", - "enable_notification": "允许通知", - "disable_notification": "消息免打扰", - "mark_as_unread": "标记为未读", - "mark_as_read": "标记为已读" - }, - "fav": { - "fav": "收藏", - "all": "全部收藏", - "file": "文件", - "media": "相册", - "composite": "聊天记录", - "from": "来自", - "no_more": "没有更多收藏", - "all_fav_load": "已加载全部收藏 :(" - }, - "voip": { - "desc": "音视频通话", - "not_answer": "对方未接听", - "ongoing": "通话中", - "duration": "通话时长" - }, - "pick": { - "pick_contact": "选择联系人", - "picked_contact": "已选择联系人" - }, - "search": { - "new_user": "新用户", - "view_all": "查看全部", - "message_history": "聊天记录", - "search_message_history": "搜索聊天记录..." - }, - "file_record": { - "no_more": "没有更多文件", - "all_file_load": "已加载全部文件 :(" - }, - "setting": { - "setting": "设置", - "enable_notification": "开启通知", - "enable_notification_detail": "通知显示消息内容", - "close_window_to_exit": "关闭窗口时,直接退出", - "enable_minimize": "支持最小化", - "auto_login": "记住登录", - "exit_switch_user": "退出/切换账号", - "feedback": "发送反馈给我们", - "lang": "语言(重启生效)", - "zh_cn": "简体中文", - "zh_tw": "繁體中文", - "en": "English", - "sync_draft": "同步草稿" - }, - "common": { - "add": "添加", - "remove": "移除", - "send": "发送", - "contact": "联系人", - "confirm": "确认", - "cancel": "取消", - "alias": "备注", - "area": "地区", - "label": "标签", - "conversation": "聊天", - "sender": "发送者", - "all": "全部", - "mine": "我的", - "unknown": "未知", - "search": "搜索", - "back": "返回", - "create": "创建", - "none": "无", - "copy": "复制", - "paste": "粘贴", - "cut": "剪切", - "delete": "删除", - "forward": "转发", - "fav": "收藏", - "quote": "引用", - "multi_select": "多选", - "recall": "撤回", - "open": "打开", - "open_dir": "打开目录", - "draft": "草稿", - "save": "存储", - "month_1": "一月", - "month_2": "二月", - "month_3": "三月", - "month_4": "四月", - "month_5": "五月", - "month_6": "六月", - "month_7": "七月", - "month_8": "八月", - "month_9": "九月", - "month_10": "十月", - "month_11": "十一月", - "month_12": "十二月", - "wfc_id": "野火号" - }, - "misc":{ - "beijing": "北京", - "test_user": "测试用户", - "gen_qr_code": "二维码生成中", - "send_to_friend": "发送给朋友..." - } -} \ No newline at end of file diff --git a/src/assets/lang/zh-TW.json b/src/assets/lang/zh-TW.json deleted file mode 100644 index 4b352cd2..00000000 --- a/src/assets/lang/zh-TW.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "login": { - "desc": "掃碼登錄野火IM", - "tip": "野火IM Web端需要配合您的手機客戶端登錄使用", - "warning": "不是使用微信掃碼登錄!!!", - "scan_qr_success": "掃碼成功", - "confirm_login_tip": "請在手機上點擊確認以登錄", - "remember_me": "記住登錄", - "cancel_login": "取消登錄", - "login": "登錄", - "switch_user": "切換用戶", - "auto_login_tip": "自動登錄中..." - }, - "contact": { - "new_friend": "新的朋友", - "group": "群聊", - "contact": "聯系人", - "channel": "频道" - }, - "friend_request": { - "request": "好友請求", - "send_request_tip": "向{0}發送好球請求", - "accepted": "已添加", - "sent": "已發送", - "denied": "已拒絕", - "im": "我是", - "intro": "你好" - }, - "group": { - "name": "群名稱{0}", - "chat": "進入群聊", - "fav": "保存到通訊錄" - }, - "message": { - "send_message": "發消息", - "records": "聊天記錄", - "unsupport_message_desc": "不支持該消息類型,請在手機上查看", - "receipt": "消息回執", - "receipt_detail": "消息回執信息", - "receipt_read_users": "已讀人員", - "receipt_received_users": "已送達", - "receipt_unreceived_users": "未送達", - "sender": "消息發送者", - "content": "消息內容" - }, - "conversation": { - "forward_title": "分別發送給", - "picked_contact": "已選擇聯系人", - "create_group": "創建群聊", - "recent_conversation": "最近聊天", - "not_select_conversation": "未選擇聊天", - "select_conversation_desc": "已選擇{0}個聊天", - "forward_extra": "給朋友留言", - "forward_one_by_one": "逐條轉發", - "forward_composite": "合並轉發", - "user_message_records": "{0}的聊天記錄", - "group_message_records": "群聊的聊天記錄", - "drag_to_send_to": "拖拽到此發送給{0}", - "no_more_message": "沒有更多消息", - "all_message_load": "已加載全部消息 :(", - "drag_to_send_limit_tip": "一次最多發送5個文件", - "not_support_send_folder": "不支持發送文件夾", - "group_name": "群名", - "group_announcement": "群公告", - "add_member": "添加成員", - "remove_member": "移除成員", - "quit_group": "退出群聊", - "click_to_edit_group_announcement": "點擊編輯群公告", - "all_people": "所有人", - "sticky_top": "置頂", - "cancel_sticky_top": "取消置頂", - "enable_notification": "允許通知", - "disable_notification": "消息免打擾", - "mark_as_unread": "標記為未讀", - "mark_as_read": "標記為已讀" - }, - "fav": { - "fav": "收藏", - "all": "全部收藏", - "file": "文件", - "media": "相冊", - "composite": "聊天記錄", - "from": "來自", - "no_more": "沒有更多收藏", - "all_fav_load": "已加載全部收藏 :(" - }, - "voip": { - "desc": "音視頻通話", - "not_answer": "對方未接聽", - "ongoing": "通話中", - "duration": "通話時長" - }, - "pick": { - "pick_contact": "選擇聯系人", - "picked_contact": "已選擇聯系人" - }, - "search": { - "new_user": "新用戶", - "view_all": "查看全部", - "message_history": "聊天記錄", - "search_message_history": "搜索聊天記錄..." - }, - "file_record": { - "no_more": "沒有更多文件", - "all_file_load": "已加載全部文件 :(" - }, - "setting": { - "setting": "設置", - "enable_notification": "開啟通知", - "enable_notification_detail": "通知顯示消息內容", - "close_window_to_exit": "關閉窗口時,直接退出", - "enable_minimize": "支持最小化", - "auto_login": "記住登錄", - "exit_switch_user": "退出/切換賬號", - "feedback": "發送反饋給我們", - "lang": "語言(重啟生效)", - "zh_cn": "简体中文", - "zh_tw": "繁體中文", - "en": "English", - "sync_draft": "同步草稿" - }, - "common": { - "add": "添加", - "remove": "移除", - "send": "發送", - "contact": "聯系人", - "confirm": "確認", - "cancel": "取消", - "alias": "備註", - "area": "地區", - "label": "標簽", - "conversation": "聊天", - "sender": "發送者", - "all": "全部", - "mine": "我的", - "unknown": "未知", - "search": "搜索", - "back": "返回", - "create": "創建", - "none": "無", - "copy": "復製", - "paste": "粘貼", - "cut": "剪切", - "delete": "刪除", - "forward": "轉發", - "fav": "收藏", - "quote": "引用", - "multi_select": "多選", - "recall": "撤回", - "open": "打開", - "open_dir": "打開目錄", - "draft": "草稿", - "save": "存儲", - "month_1": "一月", - "month_2": "二月", - "month_3": "三月", - "month_4": "四月", - "month_5": "五月", - "month_6": "六月", - "month_7": "七月", - "month_8": "八月", - "month_9": "九月", - "month_10": "十月", - "month_11": "十一月", - "month_12": "十二月", - "wfc_id": "野火號" - }, - "misc": { - "beijing": "北京", - "test_user": "測試用戶", - "gen_qr_code": "二維碼生成中", - "send_to_friend": "發送給朋友..." - } -} diff --git a/src/components/chunLei-popups/chunLei-popups.vue b/src/components/chunLei-popups/chunLei-popups.vue deleted file mode 100644 index 4158d5ed..00000000 --- a/src/components/chunLei-popups/chunLei-popups.vue +++ /dev/null @@ -1,332 +0,0 @@ - - - - - diff --git a/src/components/main-action-menu/main-action-menu.vue b/src/components/main-action-menu/main-action-menu.vue deleted file mode 100644 index 009c3d54..00000000 --- a/src/components/main-action-menu/main-action-menu.vue +++ /dev/null @@ -1,250 +0,0 @@ - - - - diff --git a/src/config.js b/src/config.js deleted file mode 100644 index abc41d13..00000000 --- a/src/config.js +++ /dev/null @@ -1,153 +0,0 @@ -export default class Config { - // 调试用 - static ENABLE_AUTO_LOGIN = true; - // 是否支持多人音视频通话 - static ENABLE_MULTI_VOIP_CALL = true; - // 是否支持1对1音视频通话 - static ENABLE_SINGLE_VOIP_CALL = true; - - static DEFAULT_PORTRAIT_URL = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAFfgAABX4BPgLDIQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAWCSURBVHic7Z3/T9R1HMefn7vPHXfenXeAw0a4UHSVmptKzK0knVqr+MEfwpyuzdqarVqzWcu5WrOfWuZixZitn8TNctRqTdaKvqDpzAoGZKQQaAQUJhwHx32/+/SDc7NT2u58fz7vJ/J+/AHv1xsevL9+Xu8XmmEYBhQ02GR3QPFflBAylBAylBAylBAylBAylBAylBAylBAylBAylBAylBAylBAydNkdyJdo3MDgSAojY2mkUlcurHVdw23FdpSV6HAVaJJ7mB8zSsjEVAYtP0TQ2hZFd38SqfSNvxzodg3LKpxYt9qNTWvc8M2ZOROBNhO+h8STBo58MYmPvgojFs+tu64CDVsf9GL7wz44Hfyjhl7IuYsJvPFBEEOXUjfVzoL5Ol57ugh33uEQ1DNzoBZy7Psp1B0JIZkS00WHruHF7QE8ev8cIe2ZAa2QD78M4+DHIeHtahrwbK0fWzZ5hbctAsrVruVMBO9/Il4GABgG0NAUwjc/Rk1p/2ahE9I/lMTbh8dh5rg1DGB/YxAXhpPmBckTOiH1R0M576TyIRo3cMBk8flAJeR0Vwxtv8Uti/fL7wkcb+eauqiENDZPWh6zqSVsecz/g0bIxeEUuvsTlsc925fAnyM3d8YRCY2QU53ypo5THTFpsbOhEfJrn/Wj4ypnJcbOhkbIwN/ypo0//uLZ/tIIGQ2lJcbOSIudDY0QK84e0xGNKyHXkZF4QMvw+OARoriCEkKGEkKGEkKGEkKGEkKGEkKGEkIGjRC7xJ44dJ58LRohHonZhR63EnIdJYV2abHnF8mLnQ2NkEVl8jIKKxbwZDPSCFl1V4G02JV3u6TFzoZGyJrlLikLu0PXcO9SeX8M2dAIKZxrwwOr3ZbH3VDlxlwvza+BRwgAPLbBC83CDY/NBtRu5MrxpRKyrMKJ9ZXWjZJH7vNgMdGCDpAJAYBd2wIo9pu/DS0r0fH8437T4+QKnRC/14Y9OwKmLvAFDg17niyEm/AdIp0QAKha7sLepwphM6F3Dl3DvmeKcM9ip/jGBUD7YAcAunoTeLVhFKGwmCwEv9eGN18oxtKFnDIA0hFylRVLnKheJW6Rr17lppYBkAuZjSghZCghZCghZCghZCghZFALSaUN9A+Je7sxeClF9+o2G9qDYc9AEm8dCqJ3QOxjmrUrXdi1LYB5AZ7PttdCJ6RvMInG5kmcaIua9kTBXaChZq0HtRu9mF/MJYZGSO9AEoeOTeJkR9SyaUW3a1hf6cbWh7w01/BShSRTBk60x/BZaxhdvXIfXq5Y4sTm9V5Ur3RJzdOSIiQcyaDp6zA+/W5K2MWhKAI+Gzav82DLJi88buv3PJYKSaUNfH48gsbmCQQnuERkU+S3Y0eNDzXVHkuTLywTcrorhoamkNTnz/lQXqrjuVo/qpZbkypkupBwJIP9jeNobeMq8pIr6yrdePmJALwmp7yaKqR/KInXD47NuFExHeWlOvbtLEZ5qXnFXE0T0tETx976MUxFudeKXAn4bHhn9zwsut2cbbIpQs5fTGDXgcuIxCiOOMIJ+Gyo2z0PC02QInxCHAul8cq7o7esDAAYn8zgpTpx3/qvRbiQ946GEJy8taapG3F5PI36o+ILdQoV0nE+jm9/mtm7qVxoORMRfsMgVIiMEn0yMQzgsOCfWZiQkdE02s9ZV8CShZ+7Y/gnKK60lDAhJzutu6VlImMApzrFlQgUJqSrh6dMntV09oibGYQJYawSbRUXhsXdRAgTMkZUJs9qRJYnFCYkEpu9QiJRcYunMCHp2etj2n+9lA/Cri337SwS1dSshibJQXEF6kS52YgSQoYSQoYSQoYSQoYSQoYSQoYSQoYSQoYSQoYSQoYSQoYSQoYSQoYSQsa/0LPTp+EdzPEAAAAASUVORK5CYII='; - static DEFAULT_GROUP_PORTRAIT_URL = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA+CAYAAAB3NHh5AAAGjUlEQVRoQ+1baWxUVRT+7pt57SydaaeFQodSoHUhIYRVUaGl1aCGIGDRuERkh0JSDJFUiU34AYmsKpsGNECoVhR/sCgB17IUJS0gohUbytYWBNoy087Wzrx3zX1DS6HLvDdvkNKZ82smc+fe853v3LPc9y5BKxkx94rB6KUJopbqOerTtP7tQfssEq2gpXA1cFzdiS1WV7P+xP+BksyZl0eLWs1UUGQA6AdA/6CBvEtfN4BLIDjM+YSCoq0pxQChhIFNn105kSPcWgqaBtyywQOO9rb6FASkQqTi20c+67uXZOZc6E8FfjcFhnQbjO0AIcBpovFOJhlzqhcDdBW6H7V3w6YAySMZc6tPgtJh3ZndFmyEnGIMOwFqCAvAIC6SMaeKhgdYP8oI4O7OdoThCMPdzAIRl+5mhLaBE3KGo3iC9KE6DOzPg+OA89U+HD3lgd0pdglbhgywxcRhQroRLz1jRJzpzlba7hDx3VEn9hxy4t9a4b4CDwlgfTTBO9PiMHqIHozh9oRSoKTMg3Vf2lB1/f6BDgngt16NxYtZMSABWmkGes8hBz7eVY9Gb/sVbVqyFpkj9LD20OKGTcDhk26cveSFGKIdoRpwWjKPlbkJ6GmRdyJUVy9g0doaXLzqa9XEAAOsPKZPMCFjuA6kleUEkeL4nx5s3duAc5VeMKOpEdWAJ2YYkftKbIeu3J5yH3xuw57DzpafeidokD/LgkFp0eA68JLz1V6s2mHD3xea1OBV1zwwIma8YMK0CWZFSuwucuDDQnvLfxa9HotJYzvfEozZg7+58FGhDe7G4GlWxTBjY9YkM94Yb1IE+NsjTqwusEn/iY0h+GZVEqK0gc/Sau0CFq6pQdW129tB0cKhaA+zs4xY8HIseBkKNyu3aZcdX//gkL4+OViHFbkJsvRmLC9eV4PSskZZ49sbpIphNuHgh6KwLCceFrO8oOVpoliw4gYqqrySPs8+ocd7M+NlA1i6uQ5FJ9gJbHCiGrCGA5bMsGDcqMCnRCIFfjzu34dOj38fMoNtzOspS3tBoMhdU4O/KoIPXKoBM00T4zV4d1ochg9kKaVj3c9VNmHlDhvKL/nZZcIKle1LE9EnURsQNPOKvPW1qLEFX7iEBDDTlOXhedkmPD3SAI3mTtSMy9IyD9YU2HCtTmiTS8eN0mPJjHgwb+lIfALF9n31KDzggKCiCAkZYKYoaxZGDIxG1kg9+iVpwXEE1dd9+LnEhZKyJnh97acTVprOnmyWanFdVFsXafJSFP/hwdoCGxpcKtCGIkp3xAhzbSVVkcnASYbKGqlDajIP9t3lpqio9uLoKTf2H3PB6Q4+/zbrGVKGA27CAAOYkcxGDkY9gVZDIAiA0yOi3il2nVq6GUM0TxAdRcBrIe3h5hKRRWYWXeudtEOXVmsoJf9XxTDrgR9O4dHfyqNvLy0SLRpYzIwh7lblxEACDpeIwu8dKCoNPn8qAdXZ2KAA9+mpxeRMIx4fFC01+yYDaROZWy/a4BSR/0ktfi9vmz81GuDRlCjphCSlN48ecRz0OiI9tGU1c61dROU1H8ovN+Gfi16wwkWNKAY8wKrF8vkJSO4VOG8yxZh6rHbe8JUdjbeUZXs01cpj/BgD0ofppQAlR5xuUWoV9xe7cPaiFw63qCgwsjUUA142Px4Zw+S/HMAa/Q07bdh3xP/WAWsFc6bEYuxwvZTGghEWzE6c9WD9TrvEvhJRDPjgxiToouRryqLs6h02/FLqlgC+9lwMZk40S1FYjfjbRSfe3+bvuuSKYsCHtvSRO7c0jrkha9xZwW/QEeRNtSDrMfke0tlizJjjF15VpM//CjjGwGHJ9DiMGRoawAzp2LnVEcAhTUtqXDrCsCJnbH9wxKUDGFFx0CrabL3j3DgQSS6PKPXBP5W4wVyaHRSwYiMUQilF5rwriqZSDPjT/EQ8ksLLXoQ1Dtv2NeCLAw1S7s2ZYka2jKcUchYov+zFnOXX5QxtGaMY8OghOuS9GdfmgVlnqx4/48HyrTelNm9QKo/82fHSoxQ1crNBkAqa4tMeRdMoBsxmT7Vq8fxTBlknlawiOlPRiIO/usFOLpiYYzhkZxqR1EMjnYoolZv1Ag4cc+H8FWVlJVsnKMBKFexK4yOAuxIb90KXCMP3wqpdac4Iw12JjXuhSzgyHG4viIfhFYDwuuQRdtd4wu6ilj/0h9VVvNvZjl22NIlivI/A0B0uW3I+4nbypLb1Zcv/AOmjBXoSCJhJAAAAAElFTkSuQmCC' - - static DEFAULT_ORGANIZATION_PORTRAIT_URL = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAABlUlEQVR4nO2aIW7DQBBFc409UJRD9AoFJr1DeUADSrogoDws8EslloKCLeUEOcDWEzWtii133d2xH/h0ZD/9Pzs72lVSMBRGM1gBL/zJQAAUAK1kinCgAGg4UH4nASIsABoOVPkoEmEtBGDcN5PodFgvA+Dm+WMSfUFcDMDm/WK79jObANgC0HAgETZ6oDhEjENEnMKMMWIONAbplkHauIlwlTPuwprhMuFhd74vFHJpccuEDeus6UHHfXMHXcJVVTswARCACQcGIpwqaDP0QAHQcKAYY4wxpkLFJQ3Sp8M6+1ONp5fX3ztublUHMP64xYuqBZgyfpiXmgAUAA0Higibh35FDxQADQc6jltkjAkATDjQb9wiEQ6+AY5dGqQZ1MwKcHu8DNLj23nwz9ZeMyvA7toP0vb4/W5lDjUBeAWg4UARYRf9KtIDewB2ONBv3CIR7gHY4UC/cYtEuAdghwP/Z00UndTMskwY+worzaBmFoAoADBlNgIOFACtZGvBgQKg4UD5PeGJsABoOFDlo0iEVQbgDWanvolAkB8PAAAAAElFTkSuQmCC'; - static DEFAULT_DEPARTMENT_PORTRAIT_URL = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAAAXNSR0IArs4c6QAAAIRlWElmTU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgEoAAMAAAABAAIAAIdpAAQAAAABAAAAWgAAAAAAAABIAAAAAQAAAEgAAAABAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAFCgAwAEAAAAAQAAAFAAAAAAwtohTAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KGV7hBwAAAjlJREFUeAHt28FOwkAQgOGt8UF4Cg0nOJjo1bfgEfRkPekj8BZeOGjigRuRcNeTJ30NsW0g2UzatTNTpE3+JiS7dGba/dgAW0oIbAgggAACCCCAAAIIIIAAAgMTyI59vlcPq2lxDuVDtT3fjnNVwoGCTw9UV1N2us3CnSZhF5sbcjpP6QNgNajri7NWg/v4/A7vxaMv20lfTmSo5wGg85UDEECngDOdGQigU8CZzgwE0CngTGcGAugUcKYzAwF0CjjTmYEAOgWc6b25nPX0unYO5TjpfQBcZtvawY9+QhgV7zHL2r08mRYoLvXnl4+retp06r/u5UPEyQ0ggE4BZzozEECngDOdGQigU8CZ3smtHdbbM1LnXnyJnmZZmBRfsu9TcZZ9Xd4W0tVKxHp7RuP496+s8baPxrq7HflfAW33dwVYHe/lZrwfd9vjN8aVK5ES7xA1Gw9q2MGHiAEtTgEw1jC0ATSgxSkAxhqGNoAGtDgFwFjD0AbQgBanABhrGNoAGtDiFNXKIbHmTf4AlFp7DqVmjBa3tUu5xjVv+UoUvwBN4uJRO4/asjmUmvK8q74WsEqaz85ri8knF5uvsNi0+0vCUGrKMfIeKEWUfQCVYDIcQCmi7AOoBJPhAEoRZR9AJZgMB1CKKPsAKsFkOIBSRNkHUAkmwwGUIso+gEowGQ6gFFH2AVSCyXDT5azZ/E3WcfeHUlMOVAvY9JcEWVfTH0pNzZiIRQABBBBAAAEEEEAAAQQQ6K/ALz1vZTdxNVa5AAAAAElFTkSuQmCC'; - - // 视频消息发送完成之前,无法拿到缩略图,故显示一个占位图,256x256 - static DEFAULT_VIDEO_POSTER = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAY/klEQVR4nO3de6yV1ZnH8W9PTggxhBhCDEOIMYYSYgyxDOMwjsOsodYyahHvtVbrhdZ6q+NUShtCiGMYq9bqVNEW75eqY62ll1GGWnyGOMQSa40xxjiEEEIIYwhhDCGEkJP541n7uDnuc/btffd6L79PQjgczn7PI5732etd61nPAhEREamfz6UOQHpjZpOAk4DZwFzg8/HjE4CpwBRguOn3g8DRpkuMxM+NNP3dIeBI/PPh+Hvj4/+LHx9o+rU//toXQjic13+r5EcJoODMbAg4GVgA/BV+s8/Gb/5J6SL7jAPAbmAn8D7wJ2AbsDuEMJIwLpmAEkCBxJt9Fp/e7AuA+cC0lHH1aQ/wDvBH4G1gWwhhf9qQpEEJIKF4w88EFgNfAgKeAKrsCPAesBl4A9gaQvgkbUj1pQQwQPGGnwoswm/4xfiQfihlXIkdxh8VDHgNeCeEcCRpRDWiBJCzpmH9MuB84EyK9exeNLuAjcCvgC0hhEOJ46k0JYAcxJt+NrAUuAh/lh9OGlQ5HQA24clgYwjhQOJ4KkcJICPxpj8R+DpwAXAa9R7aZ+0AsAF4FnhTjwnZUALok5lNBpYA3wTOQsP7QdgBvAT8HPhAy4y9UwLoQdMQ/xr8Hb/qM/dFNQK8CTwC/C6EcDBxPKWjBNCFWH23BLgFX7LTc31x7AIeB55CxUcdUwLogJlNBS4GbgXmJQ5HJnYInytYhxcdHW3z9bWmBDABMzsBuBa4AZ/gk/IYwVcQ7sYnDZUIWlACaMHMTgRuA66i3GW44olgM3AfsFmrB8dSAmhiZtPxYf7NwPGJw5HsbQHuAl7XiMApAQBmNgUf6q/Ea/OluhqPBmuAt+s+WVjrBBDX8C8EVuM1+VIfR/BagjuB7XVNBLVMAHEdfyFwL3BG4nAkrYPAeuDeEMLe1MEMWu0SQJzZXw0sByYnDkeKYzf+CPhynSYKa5MAYhHPMnxZ6KS00UiB/QZYEUL4KHUgg1CLBGBmc/Ebf2nqWKQU9gNrgZ9WfTtypRNAnORbjk/0aFlPurUVuCGE8F7qQPJS2QQQi3n+DR/2i/TqAPAD4Kkqdj6uXAIws2HgPOBBtEtPsvMycFsIYXfqQLJUqQRgZtOAO4Bvo516kr1dwE14d6JKVBJWJgGY2TzgSbyNtkhejgA/AtZWYYKw9AkgDvmX4ds/T0gcjtTHq8D1ZX8kKHUCMLPjgFXA7agVlwzedrwr1NaylhKXNgGY2UzgZ/iEn0gqnwAr8FWC0lUQljIBmNlpwAtoA48UwwjwE2BV2eYFSpUA4iaexXhr6BmJwxEZ62V8XqA0Zx+Wpm99vPm/BvwS3fxSTBcDv45FaKVQigQQS3pvx5f5piYOR2QiZwK/j4+phVf4R4A4038X8J3UsYh0YS9wWQhhS+pAJlLoBBBbdd2Pb+gRKZt9wJUhhI2pAxlPYRNAvPnX4Z15RcrqAHAFXj5cuFqBQs4BxIM4Hkc3v5Tf8fiS9YVxIrtQCjcCiDf/k3izTpGqOAhch7ccK8xIoFAJIN78T6M9/FJNB/HS4VeKkgQKMySJs/3r0M0v1TUFf7RdkjqQhkIkgLjOfx9+1LZIlU0FnjWzkDoQKEACiN16G008ROpgGvCCmZ2eOpCkCSDu5f9e/CVSJzOAX5rZqSmDSDYJGJdErgIeRe27pL7eB74cQtiT4punHAEEvGuvbn6ps1OBJ+MK2MAlSQBmdgq+3KeNPSJwNnBXnA8bqIEngHg237OoZbdIsxuBmwddLTjQbxbX+h9FnXtFWlnLgI+vG1gCiJltJTqfT2Q8k4GfxUfkgRjkCOAc4PsD/H4iZXQC8LiZDeQsy4EkADObg3fwVetukfYWAmtjnUyuck8AcXnjUWBm3t9LpEK+jffAzFWuCSBmsDXAojy/j0gFDQH3591bMO8RwNnAzTl/D5GqmoZPCk7J6xvklgDMbAZe6afnfpHenQ6szKs+IJeLxqH/XcDsPK4vUjO3A2fkceG8RgDLUD8/kaxMBtblsTSYeQIws1n40D95rwGRCpkHrMn6USDTi8Wh/91oyU8kDzfiJw9lJut36bOASzO+ZtUcTR2AlNYk4L64pyYTmSWAWPBzL9rf386LwCagdGfJSyEsAL6V1cWyHAF8B29uIBN7A7gAuAnYjp8tL9KNVWZ2UhYXyiQBmNlcYEUW16qBkRDCoRDCY8DfAw8ApTlPXgphOhntFeg7AcQg1qLuPp062Pgg9oFbAfwjeiyQ7lyKt9XrSxYjgIAO8+jGMZOAIYSREMI24HzgBvRYIJ0ZxkcBk/u5SF8JIH7zO/q9To0cZZxVgBDC4RDCE8AXgfXAJ4MMTErpdODifi7Q7427jJxKFCtqhDbD/BDCLnyC8AJgS7uvl9pb3U9H4Z4TQNyhtKbX18v44mPBZuBc4LvATvRYIK3NAZb3+uJ+RgDXAnP7eL20EUI4GEJ4CPgS8AxNE4giTVbEbttd6ykBxE0JK3t5rXQvhLAd+CZwGbANVRPKsWYAt/bywl5HAFehev+BCiEcDSG8CnwZf/RKcpSUFNZyM5ve7Yu6TgDx2b+nbCOM0Oe7dwjhQAjhX/HagZeBQ1kEJqV3Aj3MBfQyArgUOLmH14nf/JnM6ocQ3gOuAK4B3kOThAK3dLsi0FUCiOv+KvktiBDCkRDCS/gk4T3AvsQhSVozgau7eUG3I4ClaOa/cEIIHwOr8GXDV4HDaSOShG7ppoloxwkg1vzf1lNIkrumkuJL8JLij9BjQR3NpovS/G5GAPPx0kMpsLjT8Cm8pPgh4EDaiCSB6zvdKdhNAri+y6+XhEIIu/ER2/nAZlRSXCdn4D0E2+roho5VRn1tOpDBi48FW/AkoJLi+hjCHwM7+sJOfA3t9y+tMSXFT6CdhnVwaSeFQW0TgJlNwstQpX9HSFi4E0uKb8BLit9CJcVVNhX4ersv6mQEsBA4pe9wpBBiSfFGvJJwNSoprrJr2k0GdpIArswoGCmQWFL8Q3xvwUuopLiK5tFmMnDCBBALCtTuq8JCCO/jSV4lxdV0xUR/2W4EsATvQCoV1lRS/GXgR6ikuEoujPN4LY2bAOIZZBNmD6mWEMJe4AfAV4CNqHagCk5iguPEJhoBTAfOzjoaKbZYO/AWcBFwC+pSXAWXj/cXEyWApUBmZ5BJucSS4vV47YC6FJfbsvHah0+UAM7NKRgpkRDCTnwkcBHwJqodKKPp+HL+Z7RMAPH00cV5RlRjpRtOx9qB1/G5gZXArsQhSfe+0uqT440AFqHS3zwcpcR79WPtwI/xIqLnUJfiMlkSJ/aPMV4CaJktpG+le/dvJYTwAXAdXj/wNnosKIO5eK+AY3wmAcTSwSWDiEjKK9YObMBHA3cCexOHJBMbAs5p9cmx5qKmn9KhEMK+EMK/4JPGGyjxI04NfGZiv1UCCPnHIVUTQngHX2++DviAijzuVMzCOME/qlUC+IcBBSMVE084fh4vKX4A2J84JDnWFGBB8yeOSQDx+X/cskGRTsR2ZCvwE45fRyXFRbKo+Q9jRwBz8BNGRPrS1I7sArw34Q70WFAEf9f8h7EJYBEiGYrtyB7GHwvUjiy9hc1lwWMTgJ7/JRdN7cguR+3IUpoKnNb4w9gE0LJeWCQLTSccn4ufcLw7cUh1dUbjg9EEEFt/z0oSTn2MoAkxQgj74wnH56J2ZCl8ofFB8wjgNHTwR976Ph68SuIJx99A7cgGbX7jg7EJQGSgYu2A2pEN1pzGAaLNCeAvEwUjonZkgzUMnArHJoD5rb9WZDCa2pFdAtyK2pHlaT7EBGBmU/HmgSLJxdqBn+I7DVU7kI8vwKcjgNn4sECkMMYcZbYVTaBmaS4cmwBECqfpKLOvAKtQ7UBWTgYlACmJWDtwD/5Y8CKqHejXDDOb0kgAn08aikiH4lFm1+D1A++iScJeDQGzGwngxJSRiHQj1g68jI8G7kG1A706sZEAtAVYSifWDqwCzke1A72Y3kgAM5KGIdKjWDuwFa8d0FFm3ZkxFLsATUsdiUg/Yu3Aeryk+DFUO9CJ4SF8+K9NQFIJIYQdwE34iEC1A20MAcenDkIkS7F2YBOqHWhrCO8UKlI5TbUDjb4DOrNgDCUAqbymvgPfAN5Hk4SjlACkFsb0HfgxOrMA8ASgU4ClNkIIe/Ajzs/Hzyyo9SThEFoBkJqJtQNvAhcB3wV2JQ4pmSFgUuogRFIIIXwSQvgJ/ljwHDXcYDQEHNf2q0QqLITwIX6o6ZXUrDmphv8iQAjhSAjhFXw0UJsNRkoAIk3GbDCq/CShEoDIGE0bjC7CTzmubCWhEoDIOOIk4QP4eYZ7UseTBzUCFRmHmQ3h5+itoaI9M4ZREwWRz4hnZd4GLAemJw4nN8PUcO1TZDxmNgk4B1hNDc7LHKZGa54iEzGzufjxZBdTk/qYYeBg6iBEUoonY12NlwXXqkGuEoDUVpzkC/hw/0xqOCmuBCC1ZGaz8DX+q6hxVywlAKkVM5sMLMOr/U6h4pN87Qyj7qlSE2Y2D7/xlwKTE4dTCMPUZNOD1JeZTQe+hXcLnpk4nEIZDiEcMrMD1Pg5SKopnnlxNj7Jt4AaTvK1MdL4B9mHEoBUiJmdjLf++hrqezmefY0EsAcdES4VYGZT8Jt+BXAyNZ/ka2NvcwIQKa24pr8QH+4vRq3uOrGnkQB2JA1DpA9mNhO4FbiWCm/cycH2RgL4n6RhiPQgrukvxZf2TkXD/W7sCyHsbySAj5KGItIlMzsVH+6fR0027mRsO3y6LLI9YSAiHTOz4/E1/VuAWYnDKbMd8GkC2If3PdM/qBRSXNNfjL/rL0Rr+v36M8RnphDCCPBu0nBExhHX9B8EfkFNd+3l4B049h/yXfx5SqQQ4pr+V/E1/dloki8rI/gBKMckgD+liUXkWHFN/3R8uH8WWtPP2q4Qwj44NgG8kygYkVFmNoNP1/Qr2Ym3AEbv9eYEsBv4GP2jSwKxGWdjTX8eGu7n6c+ND0b/keNE4NtJwpFai2v6TwJPU4NOvAXwVuODsbOpb+AtkSU/+uGO4pr+cnxNv1bNOBM6zAQJ4M3BxlI7w6gTTWNNP+An7mhNf7DeDSGMtgEc+w//Lt4ibOpAQ5LaiGv6K/DlPfWgGLwtzX84ZjgaQjhmeCCSFTObYmbLgdfwUl7d/Gn8V/MfWg293sDbKIn0TWv6hXIE2Nr8iVYJYEuLz4l0TWv6hfNuCOFA8ydaJYC3UT2A9KFpTX812qdfJBvHfuIz/2NCCEeA1wcSjlROXNN/Ov5SQU+x/HbsJ8Zbfvkt3lhRpCPap194u2ix43e8BLAJLxio/Zq1TKxpn/4afLJPa/rFtCmEcHTsJ8cbnh1gzGyhyFhxTX8dvk//DHTzF9l/tPpkywQQ9wW0fIFIXNP/FvCfeCmvCseK7SCwudVfTJSxXwHubvM10p1hSrwO3rSmfwdeylva/5aa2RhCaHkI8EQztLvQ3oCsDVHShBrX9O/CJ4jPRjd/mbww3l+MmwDiY8DPcwlHSsPMJpnZpfhw/3Z08EbZ7MMn9Vtqt0a7AX9+kBoys3nAs/hefa3pl9OG5t1/Y7Ubju7Hq4cuzjQkKTQzmwZ8G7gJmJk4HOnPuMN/aJPR9RhQL2Y2bGbn4CtAd6Cbv+x20mYer5MJqU3o0JDKM7M5wErgUmBK4nAkG8/H0v5xtX2mCyEcAp7JLCQplLimfzM+yXc1uvmr4gjweLsv6nRJ6kl8BlhLPxUR1/TPxIf6Z6D/t1XzKv4IMKFOZ3V3MMFSgpSLmc0C/g34NSroqapH4hzehDpKAPFCj/QdkiStBDSzyWZ2NfB74EbUlquqPgCsky/sZl13MzpGvF/JKgHNbAG+aecRYC5a06+yx9tN/jV0/EMQG4au6zkkScLMppvZHfjS3nloi3fV7aOLSftu342ewZeKZnT5OhmwuE//HHyf/jxKugdBuvZY4+DPTnQ1DAwh7EdzAYUX1/Qfx4u45qObvy4+octRei8/GD/FO71O6+G1kiMzm4Lvz78NL9zSc369PBNC2N3NC7r+AQkhfAw80e3rJD9mNmRmi/Hn/Hvxc/Z089fLYeD+bl/U6w/Jg/hwQxIzsxPxYd8vgUVouF9XL9JB4c9YPSWAEMIuYH0vr625zJYBzey42JbrDXTUVt0dBO7upPBnrH5+GO8DrkIHiHSj70KgWMK7EC/hXdTv9aQSngghfNjLC3t+Tgwh7MWfN2VAYluuu/G2XDpnT8DX/e/u9cX9DkfXA9cDs/u8jkwgHrV1MbAKVfHJse4PIezp9cV9/SDFTqNr+7mGTCy25fp3fF3/FHTzy6d2Ag/3c4EsJqRewltHLcjgWhLFtlw3Azegyktp7c6xp/12q+93k9gw5Lt4AwJpb8J/89iWaxm+Y281uvmltS3A8/1eJKvh5FbguYyuVWWTmGAzjpmdgnfhVQmvTOQwsDJu0OtLJgkgHjq4BtibxfXqxsymmtn3gD8AXwWOSxySFNt6YFsWF8psQinWIK/J6noVNnqOXhzuL8GH+2vRcF/a2wWs7aXop5WsZ5SfQceJtTMEozv2HsWbdOhYbenUqrgfJxOfy+pCDbHzzBuou+x4VuMTpreivvvSnQ3AZZ12++lEHglgCO8g3HN1UsUdxCcC9Y4v3dgL/E0IYWeWF808AYBvVMHLVRfncX2RmhkBrgghvJj1hXOpKou1AbfgZwuKSH+eB17J48K5lZWGED7Aa9dFpHc7gBVZPvc3y7uu/Cng5Zy/h0hVHQFuijtvc5FrAoiVSrcCH+X5fUQq6ofkfCJXLpOAY5nZmcBraGlQpFOvApfE+bTcDGpr6VY0HyDSqZ3ADXnf/DCgBBDLFteTwe4lkYo7DFwf+27mbmDNJeJ8wG3Ae4P6niIltAZ4fVDfbKDdZWIN8xVo16BIK48BP8lqo08nBjIJOJaZnQX8Ck0KijS8DlwU2+wNTKr+cpvx5cGjib6/SJF8AFwz6JsfEiWAOMR5Bl/nFKmzvcDl3Z7pl5UkjwANZjYZP2346pRxiCTyCb7Wn2uxz0SStphuqhT8Tco4RBI4DFzHAGf8W0k6AmiILbB/gbYPSz0cBb6JH+c9sBn/VgpxyEQIYT++PPhW6lhEcjaCt9FPfvNDQRIAjJ41eBnwfupYRHK0Bni4CDc/FCgBwOix4xfhyyIiVTKCr3rdE9voF0Ih5gDGMrMT8UKh+aljEcnACN4M9kd5NfboVaFGAA1xJHABvotQpMyOAiso4M0PBR0BNJjZDHx14MzUsYj04Ag+4ffTIg37mxU6AQCY2XT8vLwlqWMR6cJh/GTnQsz2j6eQjwDNQgj78NWBZ1LHItKh/cDlFPzmhxKMABpi2fBq4PuUIHFJbe3Ca/tLMX9VmgQAfpgmsBy4nwmO2RZJ5B385i9NE9xSJQAYPXpsKfA4MC1xOCING/EtvaVqdlO6BNAQDyF9GjgldSxSayPAQ8DqFPv5+1XaBACjy4TrgAtTxyK1dADvc/lcUZf52il1AoDRg0j/GZ8gnJQ4HKmPD4FvhBC2pQ6kH6VPADA6L3Ae8DNgRuJwpPo24H37S/W830olEkCDmc3FHwnUV0DycBC4E3hoEId2DEKlEgCMPhL8E34S0XGJw5HqeA+4HthW9OKeblQuAcDoI8EZ+COBVgmkH0fxU61Wx8Y1lVLJBNAQW43dBVwLDCcOR8pnN3AL8LuyzvK3U+kEAKPVg2cD9wFzE4cj5XAUeA5YFULYkzqYPFU+ATTE0cBK4GY0NyDjex/fwru5qu/6zWqTAGB0bmABPhpQjwFpdgh4ALg3hHAgdTCDUqsE0BBXCq7Ci4dmJg5H0hoBNgE/AN6r0gx/J2qZABrM7AS8lPNGYGricGTw3sG79G4qYruuQah1Amgws9n4aOCrqJy4DnbhBT3PV6Wgp1dKAFHT/MAafNVAy4bV8zHwIN6Xv3Jr+r1QAhgjLhuejj8TLkGJoAr24ofQPhxbzEmkBDCOOCKYjyeC89CjQRntwd/x1+sdvzUlgDZiIjgVXxu+EJiSNiLpwIf4O/5TZWzSMUhKAB2KiWAGcDV+rPPJSQOSsY7iR22vA16PR89LG0oAPYgdis/D+74H1KU4pf3A8/g7/od1W8fvlxJAH5oeD67AlxBPTBtRbRwF3sQPjNmg5/veKQFkxMwm4aOBK/GuxSosyt4HwAv4O/5Ovdv3TwkgB3Hj0VLgEjwpaPNR73YCv8Fv/LfrsEFnkJQAchQfEaYCZ+GnHZ8NTE8aVPGN4DvyfocfEf+ubvr8KAEMUNyEdCZwPt63cA6aQATfifcW8Br+br9dw/vBUAJIJI4OZuGPCF+Mv9dlEvEIvhFnM/AHvM/ewbQh1ZMSQEHEhDAHWAT8Lb4vYQ7VKEU+gN/w24D/Bt6s0577IlMCKDAzOx5PBKcDfx0/nkGxHxsO45V424A/xt8/1HN8MSkBlExcYZiNJ4JZwF8AJ+AHpR6PTzoeh5csT8FHEI3fu3UIH64fir8Oxl8H4q99wP/iNfd78CaaO+q6t15ERESkHP4fiYK9HbFef34AAAAASUVORK5CYII=' - - // APP SERVER的地址,不能省略http(s)前缀。 - // 默认的app server使用端口是8888,注意端口号别忘记了。 - // 上线建议使用https,使用https更安全。 - //static APP_SERVER = 'http://wildfirechat.net:8888'; - static APP_SERVER = 'https://app.wildfirechat.net'; - - // 组织结构服务地址,如果没有部署组织结构服务,或者不需要组织结构的话,可置为 null - // 组织结构项目:https://github.com/wildfirechat/organization-platform 或 https://gitee.com/wfchat/organization-platform - static ORGANIZATION_SERVER = 'https://org.wildfirechat.cn'; - - // 工作台地址,如果不需要工作台,请删除 pages.json 里面,WorkspacePage 相关配置 - static WORKSPACE_URL = "https://open.wildfirechat.cn/work.html"; - - - // 请仔细看注释 - // 仅仅是 HOST,没有 http 前缀,后面也没有端口 - // IM SERVER 的 host 地址,一定要和 APP_SERVER 对应起来,即 APP_SERVER 上配置的 im-server 和下面所配置的im-server 是同一个 - static IM_SERVER_HOST = 'wildfirechat.net'/** 请仔细看上面的注释,仅仅是 HOST,没有 http 前缀,后面也没有端口 **/; - - static QR_CODE_PREFIX_PC_SESSION = "wildfirechat://pcsession/"; - - // 如果使用的是高级版音视频 SDK,则不需要配置 ICE_SERVER,否则需要配置。
- // 请参考 src/wfc/av/internal/README.MD 切换音视频 SDK
- // turn server 配置,可以添加多个
- // 格式: [uri, 用户名, 密码],可以添加多个
- // Turn服务配置,用户音视频通话功能,详情参考 https://docs.wildfirechat.net/webrtc/
- // 我们提供的服务能力有限,总体带宽仅3Mbps,只能用于用户测试和体验,为了保证测试可用,我们会不定期的更改密码。
- // 上线时请一定要切换成你们自己的服务。可以购买腾讯云或者阿里云的轻量服务器,价格很便宜,可以避免影响到您的用户体验。
- static ICE_SERVERS = [{uri: 'turn:turn.wildfirechat.net:3478', userName: 'wfchat', password: 'wfchatpwd'}]; - static LANGUAGE = 'zh_CN'; - - // 允许主动加入多人音视频通话 - static ENABLE_MULTI_CALL_AUTO_JOIN = true; - - // 是否启用语音对讲功能,语音对讲是和对讲机类似的功能,不是和微信类似的,发送语音消息功能 - // 启用后,请联系官方获取对讲插件 - static ENABLE_PTT = false; - - // 是否启用音视频通话功能 - static ENABLE_VOIP = true; - - static SDK_PLATFORM_WINDOWS = 3; - static SDK_PLATFORM_OSX = 4; - static SDK_PLATFORM_WEB = 5; - static SDK_PLATFORM_WX = 6; - - // uni-app 默认录音格式为mp3 - // 如果只有 uni-app 端,没有Android、iOS、Web、小程序 或者 PC 端时,录音可以直接播放,可将下面的AMR_TO_MP3_SERVER_ADDRESS置为"" - - // html5 audio 标签不能播放amr格式的音频,需要将amr格式转换为mp3格式 - // 本服务传入amr音频文件的地址,将音频文件转换为mp3格式,并以application/octet-stream的格式返回 - // 如果语音消息很多,建议使用cdn - //static AMR_TO_MP3_SERVER_ADDRESS = Config.APP_SERVER + '/amr2mp3?path='; - static AMR_TO_MP3_SERVER_ADDRESS = ''; - // 文件传输助手ID - static FILE_HELPER_ID = 'wfc_file_transfer'; - - /** - * 允许重新编辑多长时间内的撤回消息,单位是秒 - */ - static RECALL_REEDIT_TIME_LIMIT = 60; - - static platform = -1; - - static DEFAULT_SILENT_WHEN_PC_ONLINE = true; - - static getWFCPlatform() { - if (Config.platform > 0) { - return Config.platform; - } - let info = uni.getSystemInfoSync(); - console.log('systemInfo', info); - if (info.osName === 'ios' || info.platform === 'ios') { - Config.platform = info.deviceType !== 'phone' ? 8 : 1; - } else if (info.osName === 'android' || info.platform === 'android') { - Config.platform = info.deviceType !== 'phone' ? 9 : 2; - } else { - Config.platform = 0; - } - return Config.platform; - } - - - static config(options) { - Object.keys(options).forEach(key => { - Config[key] = options[key]; - }); - } - - /** - * 网络地址重定向 - * - * 仅当双网环境时,需要特殊处理,默认原样返回 - * - * @param {string} url - * @return {string} newUrl - */ - static urlRedirect(url) { - if (!url) { - return url; - } - // 示例代码 - // url = url.replace('oss.xxxx.com', '192.168.2.19'); - return url; - } - - /** - * 表情 base 路径 - * @return {string} - */ - static emojiBaseUrl() { - // 表情的 baseUrl,一定要求以 / 结尾 - let emojiBaseUrl = 'https://static.wildfirechat.net/twemoji/assets/'; - // 实例代码 - // 双网环境时,将表情地址切换到备选网络 - // if (!wfc.connectedToMainNetwork()) { - // emojiBaseUrl = 'https://192.168.2.169/twemoji/assets/'; - // } - return emojiBaseUrl; - } - - /** - * 动态表情 base 路径 - * @return {string} - */ - static stickerBaseUrl() { - // 动态表情的 baseUrl,一定要求以 / 结尾 - let stickerBaseUrl = 'https://static.wildfirechat.net/sticker/'; - // 实例代码 - // 双网环境时,将动态表情地址切换到备选网络 - // if (!wfc.connectedToMainNetwork()) { - // stickerBaseUrl = 'https://192.168.2.169/sticker/'; - // } - return stickerBaseUrl; - } -} diff --git a/src/main.ts b/src/main.ts index 0e5b25e1..244d5b56 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,93 +1,25 @@ +// @ts-nocheck +import request from './common/request'; +import emotion from './common/emotion.js'; +import url from './common/url.js'; +import str from './common/str.js'; +import * as enums from './common/enums.js'; +import * as date from './common/date'; +import * as socketApi from './common/wssocket'; +import * as messageType from './common/messageType'; + import App from './App.vue'; import { createSSRApp } from 'vue'; // @ts-ignore import { setupPinia } from './sheep/store'; import './main.scss'; import 'virtual:uno.css'; -// @ts-ignore -import wfc from './wfc/client/wfc'; -// @ts-ignore -import Config from './config'; -// @ts-ignore -import store from './store'; -// @ts-ignore -import { getItem } from '@/sheep/util/storageHelper'; -import { createI18n } from 'vue-i18n'; -// @ts-ignore -import zhCNLang from './assets/lang/zh-CN.json'; -// @ts-ignore -import zhTWLang from './assets/lang/zh-TW.json'; -// @ts-ignore -import enLang from './assets/lang/en.json'; -import mitt from 'mitt'; export function createApp() { const app = createSSRApp(App); setupPinia(app); - const i18n = createI18n({ - // 使用localStorage存储语言状态是为了保证页面刷新之后还是保持原来选择的语言状态 - locale: getItem('lang') ? getItem('lang') : 'zh-CN', // 定义默认语言为中文 - // allowComposition: true, - messages: { - 'zh-CN': zhCNLang, - 'zh-TW': zhTWLang, - en: enLang, - }, - }); - app.use(i18n); - - // 如果不存在会话页面,则入栈,如果已经存在会话页面,则返回到该页面 - app.config.globalProperties.$go2ConversationPage = () => { - let pages = getCurrentPages(); - let cvRoute = 'pages/conversation/ConversationPage'; - let delta = 0; - let found = false; - for (let i = pages.length - 1; i >= 0; i--) { - if (pages[i].route === cvRoute) { - found = true; - break; - } else { - delta++; - } - } - if (found) { - uni.navigateBack({ - delta: delta, - fail: (err) => { - console.log('nav back to conversationView err', err); - }, - }); - } else { - uni.navigateTo({ - url: '/pages/conversation/ConversationPage', - success: () => { - console.log('nav to conversationPage success'); - }, - fail: (err) => { - console.log('nav to conversationPage err', err); - }, - }); - } - }; - - const eventBus = mitt(); - // @ts-ignore - eventBus.$on = eventBus.on; - // @ts-ignore - eventBus.$off = eventBus.off; - // @ts-ignore - eventBus.$emit = eventBus.emit; - app.config.globalProperties.$eventBus = eventBus; - // @ts-ignore - app.config.globalProperties.$set = (obj, key, value) => (obj[key] = value); - - // #ifdef APP-PLUS - wfc.init(); - store.init(); - // #endif - return { app, }; diff --git a/src/pages.json b/src/pages.json index 3fd684f2..d72ee072 100644 --- a/src/pages.json +++ b/src/pages.json @@ -86,7 +86,6 @@ // "group": "商城" // } // }, - { "path": "pages/home/home", "style": { @@ -115,51 +114,6 @@ "navigationStyle": "custom" } } - // { - // "path": "pages/conversation/ConversationPage", - // "style": { - // "navigationBarTitleText": "会话详情", - // "enablePullDownRefresh": false, - // "disableScroll": true, - // "app-plus": { - // "titleNView": { - // "buttons": [ - // { - // "text": "\ue623", - // "fontSrc": "/static/iconfonts/wx_iconfont.ttf", - // "fontSize": "28px" - // } - // ] - // }, - // "softinputMode": "adjustResize", - // "bounce": "none" - // } - // } - // } - // { - // "path": "pages/conversation/message/CompositeMessagePage", - // "style": { - // "navigationBarTitleText": "组合消息预览" - // } - // }, - // { - // "path": "pages/conversation/SingleConversationInfoPage", - // "style": { - // "navigationBarTitleText": "单人会话信息" - // } - // }, - // { - // "path": "pages/conversation/message/forward/ForwardMessagePage", - // "style": { - // "navigationBarTitleText": "消息转发" - // } - // }, - // { - // "path": "pages/conversation/GroupConversationInfoPage", - // "style": { - // "navigationBarTitleText": "群会话信息" - // } - // } ], "subPackages": [ { @@ -285,7 +239,6 @@ // "group": "商品" // } // }, - // { // "path": "seckill", // "style": { diff --git a/src/pages/common/LoadingView.vue b/src/pages/common/LoadingView.vue deleted file mode 100644 index b5d3c39d..00000000 --- a/src/pages/common/LoadingView.vue +++ /dev/null @@ -1,143 +0,0 @@ - - - - - diff --git a/src/pages/components/HighlightNumberText.vue b/src/pages/components/HighlightNumberText.vue index 0b00f352..80d00f58 100644 --- a/src/pages/components/HighlightNumberText.vue +++ b/src/pages/components/HighlightNumberText.vue @@ -1,8 +1,11 @@ + + + + + + + + + {{ message.username || '发放' }} + {{ message.time || 'ww' }} + + + + {{ message.lastMessage || '啊发发看来福娃' }} + + + + + + - - - - - {{ connectionStatusDesc }} - - - - - - - - - - - - diff --git a/src/pages/profile/profile.vue b/src/pages/profile/profile.vue index ad7e985b..8d181fad 100644 --- a/src/pages/profile/profile.vue +++ b/src/pages/profile/profile.vue @@ -16,15 +16,6 @@ - 野火登录测试 - - - - - - { - uni.showToast({ - title: '发送验证码成功', - icon: 'none', - }); - }) - .catch((reason) => { - uni.showToast({ - title: reason, - icon: 'none', - }); - }); - } - function bindLoginTap(e) { - console.log(phone.value); - login(phone.value, code.value); - } - function login(phone, code) { - console.log('login', wfc.getClientId(), Config.getWFCPlatform()); - appServerApi - .loginWithAuthCode(phone, code) - .then((result) => { - console.log('login result', result); - let userId = result.userId; - let token = result.token; - wfc.connect(userId, token); - setItem('userId', userId); - setItem('im-token', token); - }) - .catch((r) => { - console.log('login failed', r); - uni.showToast({ - title: r, - icon: 'none', - }); - }); - } diff --git a/src/permission.js b/src/permission.js deleted file mode 100644 index 575d30ed..00000000 --- a/src/permission.js +++ /dev/null @@ -1,264 +0,0 @@ -/// null = 未请求,1 = 已允许,0 = 拒绝|受限, 2 = 系统未开启 - -var isIOS - -function album() { - var result = 0; - var PHPhotoLibrary = plus.ios.import("PHPhotoLibrary"); - var authStatus = PHPhotoLibrary.authorizationStatus(); - if (authStatus === 0) { - result = null; - } else if (authStatus == 3) { - result = 1; - } else { - result = 0; - } - plus.ios.deleteObject(PHPhotoLibrary); - return result; -} - -function camera() { - var result = 0; - var AVCaptureDevice = plus.ios.import("AVCaptureDevice"); - var authStatus = AVCaptureDevice.authorizationStatusForMediaType('vide'); - if (authStatus === 0) { - result = null; - } else if (authStatus == 3) { - result = 1; - } else { - result = 0; - } - plus.ios.deleteObject(AVCaptureDevice); - return result; -} - -function location() { - var result = 0; - var cllocationManger = plus.ios.import("CLLocationManager"); - var enable = cllocationManger.locationServicesEnabled(); - var status = cllocationManger.authorizationStatus(); - if (!enable) { - result = 2; - } else if (status === 0) { - result = null; - } else if (status === 3 || status === 4) { - result = 1; - } else { - result = 0; - } - plus.ios.deleteObject(cllocationManger); - return result; -} - -function push() { - var result = 0; - var UIApplication = plus.ios.import("UIApplication"); - var app = UIApplication.sharedApplication(); - var enabledTypes = 0; - if (app.currentUserNotificationSettings) { - var settings = app.currentUserNotificationSettings(); - enabledTypes = settings.plusGetAttribute("types"); - if (enabledTypes == 0) { - result = 0; - console.log("推送权限没有开启"); - } else { - result = 1; - console.log("已经开启推送功能!") - } - plus.ios.deleteObject(settings); - } else { - enabledTypes = app.enabledRemoteNotificationTypes(); - if (enabledTypes == 0) { - result = 3; - console.log("推送权限没有开启!"); - } else { - result = 4; - console.log("已经开启推送功能!") - } - } - plus.ios.deleteObject(app); - plus.ios.deleteObject(UIApplication); - return result; -} - -function contact() { - var result = 0; - var CNContactStore = plus.ios.import("CNContactStore"); - var cnAuthStatus = CNContactStore.authorizationStatusForEntityType(0); - if (cnAuthStatus === 0) { - result = null; - } else if (cnAuthStatus == 3) { - result = 1; - } else { - result = 0; - } - plus.ios.deleteObject(CNContactStore); - return result; -} - -function record() { - var result = null; - var avaudiosession = plus.ios.import("AVAudioSession"); - var avaudio = avaudiosession.sharedInstance(); - var status = avaudio.recordPermission(); - console.log("permissionStatus:" + status); - if (status === 1970168948) { - result = null; - } else if (status === 1735552628) { - result = 1; - } else { - result = 0; - } - plus.ios.deleteObject(avaudiosession); - return result; -} - -function calendar() { - var result = null; - var EKEventStore = plus.ios.import("EKEventStore"); - var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(0); - if (ekAuthStatus == 3) { - result = 1; - console.log("日历权限已经开启"); - } else { - console.log("日历权限没有开启"); - } - plus.ios.deleteObject(EKEventStore); - return result; -} - -function memo() { - var result = null; - var EKEventStore = plus.ios.import("EKEventStore"); - var ekAuthStatus = EKEventStore.authorizationStatusForEntityType(1); - if (ekAuthStatus == 3) { - result = 1; - console.log("备忘录权限已经开启"); - } else { - console.log("备忘录权限没有开启"); - } - plus.ios.deleteObject(EKEventStore); - return result; -} - - -function requestIOS(permissionIDs) { - let ps = []; - for (const permissionID of permissionIDs) { - let p = new Promise((resolve, reject) => { - switch (permissionID) { - case "push": - resolve(push()); - break; - case "location": - resolve(location()); - break; - case "record": - resolve(record()); - break; - case "camera": - resolve(camera()); - break; - case "album": - resolve(album()); - break; - case "contact": - resolve(contact()); - break; - case "calendar": - resolve(calendar()); - break; - case "memo": - resolve(memo()); - break; - default: - resolve(0); - break; - } - }); - ps.push(p); - } - - return new Promise((resolve, reject) => { - Promise.all(ps).then(value => { - let result = 1; - for (const v of value) { - if (v !== 1 && v != null) { - result = v; - break; - } - } - resolve(result); - }, reason => { - reject(reason); - }) - }) -} - -function requestAndroid(permissionIDs) { - return new Promise((resolve, reject) => { - plus.android.requestPermissions( - permissionIDs, - function (resultObj) { - var result = 0; - for (var i = 0; i < resultObj.granted.length; i++) { - var grantedPermission = resultObj.granted[i]; - console.log('已获取的权限:' + grantedPermission); - result = 1 - } - for (var i = 0; i < resultObj.deniedPresent.length; i++) { - var deniedPresentPermission = resultObj.deniedPresent[i]; - console.log('拒绝本次申请的权限:' + deniedPresentPermission); - result = 0 - } - for (var i = 0; i < resultObj.deniedAlways.length; i++) { - var deniedAlwaysPermission = resultObj.deniedAlways[i]; - console.log('永久拒绝申请的权限:' + deniedAlwaysPermission); - result = -1 - } - resolve(result); - }, - function (error) { - console.log('result error: ' + error.message) - resolve({ - code: error.code, - message: error.message - }); - } - ); - }); -} - -function gotoAppPermissionSetting() { - if (permission.isIOS) { - var UIApplication = plus.ios.import("UIApplication"); - var application2 = UIApplication.sharedApplication(); - var NSURL2 = plus.ios.import("NSURL"); - var setting2 = NSURL2.URLWithString("app-settings:"); - application2.openURL(setting2); - plus.ios.deleteObject(setting2); - plus.ios.deleteObject(NSURL2); - plus.ios.deleteObject(application2); - } else { - var Intent = plus.android.importClass("android.content.Intent"); - var Settings = plus.android.importClass("android.provider.Settings"); - var Uri = plus.android.importClass("android.net.Uri"); - var mainActivity = plus.android.runtimeMainActivity(); - var intent = new Intent(); - intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); - var uri = Uri.fromParts("package", mainActivity.getPackageName(), null); - intent.setData(uri); - mainActivity.startActivity(intent); - } -} - -const permission = { - get isIOS() { - return typeof isIOS === 'boolean' ? isIOS : (isIOS = uni.getSystemInfoSync().platform === 'ios') - }, - requestIOS: requestIOS, - requestAndroid: requestAndroid, - gotoAppSetting: gotoAppPermissionSetting -} - -export default permission diff --git a/src/pstore.js b/src/pstore.js deleted file mode 100644 index b30cfc5c..00000000 --- a/src/pstore.js +++ /dev/null @@ -1,176 +0,0 @@ -import {defineStore} from 'pinia' -import {ref} from "vue"; -import ConnectionStatus from "./wfc/client/connectionStatus"; -import Config from "./config"; - -export const pstore = defineStore('store-p', () => { - const conversationStore = ref({ - - currentConversationInfo: null, - conversationInfoList: [], - currentConversationMessageList: [], - currentConversationOldestMessageId: 0, - currentConversationOldestMessageUid: 0, - - currentConversationRead: null, - - // TODO 调用setUserEnableReceipt时,需要更新 - isMessageReceiptEnable: false, - - inputtingUser: null, - inputClearHandler: null, - - shouldAutoScrollToBottom: true, - - previewMediaItems: [], - previewMediaIndex: null, - - enableMessageMultiSelection: false, - showChannelMenu: false, - quotedMessage: null, - - // 为什么不用 map? - // map 里面的元素并不是 reactive 的 - downloadingMessages: [], - sendingMessages: [], - floatingConversations: [], - - currentVoiceMessage: null, - contextMenuConversationInfo: null, - - _reset() { - this.currentConversationInfo = null; - this.conversationInfoList = [] - this.currentConversationMessageList = []; - this.currentConversationOldestMessageId = 0; - this.currentConversationOldestMessageUid = 0; - this.currentConversationRead = null; - this.isMessageReceiptEnable = false; - this.inputtingUser = null; - this.inputClearHandler = null; - this.shouldAutoScrollToBottom = true; - this.previewMediaItems = []; - this.previewMediaIndex = null; - this.enableMessageMultiSelection = false; - this.showChannelMenu = false; - this.quotedMessage = null; - this.downloadingMessages = []; - this.sendingMessages = []; - this.floatingConversations = []; - this.currentVoiceMessage = null; - this.contextMenuConversationInfo = null; - } - }) - - const contactStore = ref({ - currentFriendRequest: null, - currentGroup: null, - currentChannel: null, - currentFriend: null, - currentOrganization: null, - currentChatroom: null, - currentUser: null, - - expandFriendRequestList: false, - expandFriendList: true, - expandGroup: false, - expandChanel: false, - expandOrganization: false, - expandChatroom: false, - - unreadFriendRequestCount: 0, - friendList: [], - friendRequestList: [], - favGroupList: [], - channelList: [], - favContactList: [], - - selfUserInfo: null, - contextMenuUserInfo: null, - - - _reset() { - this.currentFriendRequest = null; - this.currentGroup = null; - this.currentChannel = null; - this.currentFriend = null; - this.currentOrganization = null; - this.currentChatroom = null; - this.currentUser = null; - - this.expandFriendRequestList = false; - this.expandFriendList = true; - this.expandGroup = false; - this.expandChanel = false; - - this.unreadFriendRequestCount = 0; - this.friendList = []; - this.friendRequestList = []; - this.favGroupList = []; - this.channelList = []; - this.favContactList = []; - - this.selfUserInfo = null; - this.contextMenuUserInfo = null; - } - }) - - const searchStore = ref({ - query: null, - userSearchResult: [], - channelSearchResult: [], - contactSearchResult: [], - groupSearchResult: [], - conversationSearchResult: [], - messageSearchResult: [], - - _reset() { - this.query = null - this.userSearchResult = []; - this.channelSearchResult = []; - this.contactSearchResult = []; - this.groupSearchResult = []; - this.conversationSearchResult = []; - this.messageSearchResult = [] - } - }) - - const pickStore = ref({ - users: [], - organizations: [], - conversations: [], - messages: [], - _reset() { - this.users = []; - this.organizations = []; - this.conversations = []; - this.messages = []; - - } - }) - const miscStore = ref({ - connectionStatus: ConnectionStatus.ConnectionStatusUnconnected, - enableNotification: true, - enableNotificationMessageDetail: true, - enableAutoLogin: false, - isMainWindow: false, - isCommercialServer: false, - isDisableSyncDraft: false, - isVoipOngoing: false, - config: Config, - userOnlineStateMap: new Map(), - - _reset() { - this.connectionStatus = ConnectionStatus.ConnectionStatusUnconnected; - this.enableNotification = true; - this.enableAutoLogin = false; - this.isCommercialServer = false; - this.isDisableSyncDraft = false; - this.isVoipOngoing = false; - this.config = Config; - this.userOnlineStateMap = new Map(); - } - }) - - return {conversationStore, contactStore, pickStore, searchStore, miscStore} -}) \ No newline at end of file diff --git a/src/sheep/api/imchat/appServerApi.js b/src/sheep/api/imchat/appServerApi.js deleted file mode 100644 index bcce737e..00000000 --- a/src/sheep/api/imchat/appServerApi.js +++ /dev/null @@ -1,225 +0,0 @@ -// #ifdef APP-PLUS -import Config from '@/config'; -import FavItem from '@/wfc/model/favItem'; -import { stringValue } from '@/wfc/util/longUtil'; -import AppServerError from './appServerError'; -import wfc from '@/wfc/client/wfc'; -import { getItem, setItem } from '@/sheep/util/storageHelper'; - -export class AppServerApi { - constructor() {} - - requestAuthCode(mobile) { - return this._post('/send_code', { mobile }); - } - - loinWithPassword(mobile, password) { - return new Promise((resolve, reject) => { - let responsePromise = this._post( - '/login_pwd', - { - mobile, - password, - platform: Config.getWFCPlatform(), - clientId: wfc.getClientId(), - }, - true, - ); - this._interceptLoginResponse(responsePromise, resolve, reject); - }); - } - - loginWithAuthCode(mobile, authCode) { - return new Promise((resolve, reject) => { - let responsePromise = this._post( - '/login', - { - mobile, - code: authCode, - platform: Config.getWFCPlatform(), - clientId: wfc.getClientId(), - }, - true, - ); - this._interceptLoginResponse(responsePromise, resolve, reject); - }); - } - - changePassword(oldPassword, newPassword) { - return this._post('/change_pwd', { - oldPassword, - newPassword, - }); - } - - requestResetPasswordAuthCode() { - return this._post('/send_reset_code'); - } - - resetPassword(resetPasswordAuthCode, newPassword) { - return this._post('/reset_pwd', { - resetCode: resetPasswordAuthCode, - newPassword: newPassword, - }); - } - - getGroupAnnouncement(groupId) { - return this._post('/get_group_announcement', { groupId: groupId }); - } - - updateGroupAnnouncement(author, groupId, announcement) { - return this._post('/put_group_announcement', { - author, - groupId, - text: announcement, - }); - } - - favMessage(message) { - let favItem = FavItem.fromMessage(message); - return this._post('/fav/add', { - messageUid: stringValue(favItem.messageUid), - type: favItem.favType, - convType: favItem.conversation.type, - convTarget: favItem.conversation.target, - convLine: favItem.conversation.line, - origin: favItem.origin, - sender: favItem.sender, - title: favItem.title, - url: favItem.url, - thumbUrl: favItem.thumbUrl, - data: favItem.data, - }); - } - - getFavList(startId, count = 20) { - return this._post('/fav/list', { id: startId, count: count }, false, true); - } - - delFav(favItemId) { - return this._post('/fav/del/' + favItemId, ''); - } - - _interceptLoginResponse(responsePromise, resolve, reject) { - responsePromise - .then((response) => { - if (response.data.code === 0) { - let appAuthToken = response.header['authtoken']; - if (!appAuthToken) { - appAuthToken = response.header['authToken']; - } - - if (appAuthToken) { - setItem('authToken-app', appAuthToken); - } - resolve(response.data.result); - } else { - reject(new AppServerError(response.data.code, response.data.message)); - } - }) - .catch((err) => { - reject(err); - }); - } - - /** - * - * @param path - * @param data - * @param rawResponse - * @param rawResponseData - * @return {Promise|*|T>} - * @private - */ - _post(path, data = {}, rawResponse = false, rawResponseData = false) { - let response; - path = Config.APP_SERVER + path; - let p = new Promise((resolve, reject) => { - console.log('_post', path, data); - uni.request({ - url: path, - data: data, - header: { - 'content-type': 'application/json', // 默认值 - authToken: getItem('authToken-app'), - }, - method: 'POST', - - success: (res) => { - console.log('_post result', res); - if (res.statusCode === 200) { - if (rawResponse) { - resolve(res); - return; - } - if (rawResponseData) { - resolve(res.data); - return; - } - if (res.data.code === 0) { - resolve(res.data.result); - } else { - throw new AppServerError(res.data.code, res.data.message); - } - } else { - throw new Error('request error, status code: ' + res.status); - } - }, - fail: (res) => { - console.log('fail', res); - throw new Error('request error: ' + res); - }, - }); - }); - return p; - } - - login(phone, code) { - let appServer = Config.APP_SERVER + '/login'; - let clientId = wfc.getClientId(); - console.log('login', wfc.getClientId(), Config.getWFCPlatform()); - uni.request({ - url: appServer, - data: { - mobile: phone, - code: code, - clientId: clientId, - platform: Config.getWFCPlatform(), - }, - header: { - 'content-type': 'application/json', // 默认值 - }, - method: 'POST', - - success: (res) => { - if (res.statusCode === 200) { - let loginResult = res.data; - - if (loginResult.code === 0) { - let userId = loginResult.result.userId; - let token = loginResult.result.token; - wfc.connect(userId, token); - setItem('userId', userId); - setItem('token', token); - - let authToken = res.header['authToken']; - if (!authToken) { - authToken = res.header['authtoken']; - } - - console.log('setupAppserver', Config.APP_SERVER, authToken); - // wfcUIKit.setupAppServer(Config.APP_SERVER, authToken); - - this.go2ConversationList(); - } else { - console.log('login failed', loginResult); - } - } - }, - }); - } -} - -const appServerApi = new AppServerApi(); -export default appServerApi; -// #endif diff --git a/src/sheep/api/imchat/appServerError.js b/src/sheep/api/imchat/appServerError.js deleted file mode 100644 index fcf42693..00000000 --- a/src/sheep/api/imchat/appServerError.js +++ /dev/null @@ -1,12 +0,0 @@ -export default class AppServerError extends Error { - errorCode; - - constructor(errorCode, message) { - super(message); - this.errorCode = errorCode; - } - - toString() { - return this.errorCode + '-' + this.message; - } -} diff --git a/src/sheep/api/imchat/conferenceApi.js b/src/sheep/api/imchat/conferenceApi.js deleted file mode 100644 index 22742078..00000000 --- a/src/sheep/api/imchat/conferenceApi.js +++ /dev/null @@ -1,77 +0,0 @@ -// #ifdef APP-PLUS -import { AppServerApi } from './appServerApi'; - -class ConferenceApi extends AppServerApi { - constructor() { - super(); - } - - /** - * - * @return {Promise} - */ - getMyPrivateConferenceId() { - return this._post('/conference/get_my_id'); - } - - /** - * - * @param conferenceInfo - * @return {Promise} - */ - createConference(conferenceInfo) { - return this._post('/conference/create', conferenceInfo); - } - - /** - * - * @param conferenceId - * @param password - * @return {Promise} - */ - queryConferenceInfo(conferenceId, password) { - let obj; - if (password) { - obj = { conferenceId, password }; - } else { - obj = { conferenceId }; - } - return this._post('/conference/info', obj); - } - - destroyConference(conferenceId) { - return this._post('/conference/destroy/' + conferenceId); - } - - favConference(conferenceId) { - return this._post('/conference/fav/' + conferenceId); - } - - unfavConference(conferenceId) { - return this._post('/conference/unfav/' + conferenceId); - } - - isFavConference(conferenceId) { - return this._post('/conference/is_fav/' + conferenceId); - } - - getFavConferences() { - return this._post('/conference/fav_conferences'); - } - - updateConference(conferenceInfo) { - return this._post('/conference/put_info', conferenceInfo); - } - - recordConference(conferenceId, record) { - return this._post('/conference/recording/' + conferenceId, { recording: record }); - } - - setConferenceFocusUserId(conferenceId, userId) { - return this._post('/conference/focus/' + conferenceId, { userId: userId ? userId : '' }); - } -} - -const conferenceApi = new ConferenceApi(); -export default conferenceApi; -// #endif diff --git a/src/sheep/api/imchat/organizationServerApi.js b/src/sheep/api/imchat/organizationServerApi.js deleted file mode 100644 index d1c1bd65..00000000 --- a/src/sheep/api/imchat/organizationServerApi.js +++ /dev/null @@ -1,190 +0,0 @@ -// #ifdef APP-PLUS -import Config from '@/config'; -import { getItem, setItem } from '@/sheep/util/storageHelper'; -import wfc from '@/wfc/client/wfc'; -import OrganizationServerError from './organizationServerError'; -import UserInfo from '@/wfc/model/userInfo'; - -export class OrganizationServerApi { - isServiceAvailable = true; - serviceUnavailbelError = new OrganizationServerError(-1, '未登录或服务不可用'); - - constructor() { - // do nothing - } - - login() { - return new Promise((resolve, reject) => { - // int ApplicationType_Robot = 0; - // int ApplicationType_Channel = 1; - // int ApplicationType_Admin = 2; - if (!Config.ORGANIZATION_SERVER) { - return Promise.reject(this.serviceUnavailbelError); - } - wfc.getAuthCode( - 'admin', - 2, - '', - (code) => { - let path = '/api/user_login'; - this._post( - path, - { - authCode: code, - }, - true, - ).then((response) => { - if (response.data.code === 0) { - // uni.request 的 response 是 header, 不是 headers - let appAuthToken = response.header['authtoken']; - if (!appAuthToken) { - appAuthToken = response.header['authToken']; - } - - if (appAuthToken) { - setItem('authToken-org', appAuthToken); - } - this.isServiceAvailable = true; - resolve(response.data.result); - } else { - reject(new OrganizationServerError(response.data.code, response.data.message)); - } - }); - }, - (error) => { - console.error('getAuthCode error', error); - reject(new OrganizationServerError(-1, '未登录,或服务不可用')); - }, - ); - }); - } - - getRootOrganization() { - return this._post('/api/organization/root'); - } - - getRelationShip(employeeId) { - return this._post('/api/relationship/employee', { employeeId }); - } - - getOrganizationEx(orgId) { - return this._post('/api/organization/query_ex', { id: orgId }); - } - - getOrganizations(orgIds) { - return this._post('/api/organization/query_list', { ids: orgIds }); - } - - async getOrganizationEmployees(orgIds) { - let employeeIds = await this._post('/api/organization/batch_employees', { ids: orgIds }); - return this.getEmployeeList(employeeIds); - } - - getOrgEmployees(orgId) { - return this._post('/api/organization/employees', { ids: orgId }); - } - - getEmployee(employeeId) { - return this._post('/api/employee/query', { employeeId }); - } - - getEmployeeEx(employeeId) { - return this._post('/api/employee/query_ex', { employeeId }); - } - - getEmployeeList(employeeIds) { - return this._post('/api/employee/query_list', { employeeIds: employeeIds }); - } - - searchEmployee(orgId, keyword) { - return this._post('/api/employee/search', { organizationId: orgId, keyword: keyword }); - } - - async getOrganizationPath(organizationId) { - let pathList = []; - let org = await this._getOrganizationSync(organizationId); - if (org) { - pathList.push(org); - if (org.parentId) { - pathList.push(...(await this.getOrganizationPath(org.parentId))); - } - } - return pathList; - } - - employeeToUserInfo(employee) { - let userInfo = new UserInfo(); - userInfo.uid = employee.employeeId; - userInfo.name = employee.name; - userInfo.displayName = employee.name; - userInfo.portrait = employee.portrait ? employee.portrait : Config.DEFAULT_PORTRAIT_URL; - userInfo.gender = employee.gender; - userInfo.mobile = employee.mobile; - userInfo.email = employee.email; - userInfo.updateDt = employee.updateDt; - //0 normal; 1 robot; 2 thing; - userInfo.type = 1; - userInfo.deleted = 0; - return userInfo; - } - - async _getOrganizationSync(orgId) { - let orgs = await this.getOrganizations([orgId]); - return orgs && orgs.length > 0 ? orgs[0] : null; - } - - /** - * - * @param path - * @param data - * @param rawResponse - * @param rawResponseData - * @return {Promise|*|T>} - * @private - */ - _post(path, data = {}, rawResponse = false, rawResponseData = false) { - let response; - path = Config.ORGANIZATION_SERVER + path; - let p = new Promise((resolve, reject) => { - uni.request({ - url: path, - data: data, - header: { - 'content-type': 'application/json', // 默认值 - authToken: getItem('authToken-org'), - }, - method: 'POST', - - success: (res) => { - console.log('_post result', res); - if (res.statusCode === 200) { - if (rawResponse) { - resolve(res); - return; - } - if (rawResponseData) { - resolve(res.data); - return; - } - if (res.data.code === 0) { - resolve(res.data.result); - } else { - throw new OrganizationServerError(res.data.code, res.data.message); - } - } else { - throw new Error('request error, status code: ' + res.status); - } - }, - fail: (res) => { - console.log('fail', res); - throw new Error('request error: ' + res); - }, - }); - }); - return p; - } -} - -const organizationServerApi = new OrganizationServerApi(); -export default organizationServerApi; -// #endif diff --git a/src/sheep/api/imchat/organizationServerError.js b/src/sheep/api/imchat/organizationServerError.js deleted file mode 100644 index 05b761a5..00000000 --- a/src/sheep/api/imchat/organizationServerError.js +++ /dev/null @@ -1,12 +0,0 @@ -export default class OrganizationServerError extends Error { - errorCode; - - constructor(errorCode, message) { - super(message); - this.errorCode = errorCode; - } - - toString() { - return this.errorCode + '-' + this.message; - } -} diff --git a/src/sheep/util/draft.js b/src/sheep/util/draft.js deleted file mode 100644 index c4bbc361..00000000 --- a/src/sheep/util/draft.js +++ /dev/null @@ -1,55 +0,0 @@ -import wfc from '@/wfc/client/wfc'; -import { _patchToJavaLong, _reverseToJsLongString, stringValue } from '@/wfc/util/longUtil'; -import store from '@/store'; - -export default class Draft { - static setConversationDraft(conversation, draftText, quoteInfo, mentions = null) { - if (!draftText && !quoteInfo) { - wfc.setConversationDraft(conversation, ''); - return; - } - let obj = { - content: draftText, - mentions: mentions, - quoteInfo: quoteInfo, - }; - let jsonStr = JSON.stringify(obj, (key, value) => { - if (key === 'messageUid') { - return stringValue(value); - } - return value; - }); - jsonStr = _patchToJavaLong(jsonStr, 'messageUid'); - wfc.setConversationDraft(conversation, jsonStr); - } - - static getConversationDraftEx(conversationInfo) { - let obj = { - text: '', - quotedMessage: null, - }; - if (!conversationInfo || !conversationInfo.draft) { - return obj; - } - // 兼容处理 - if (!conversationInfo.draft.startsWith('{')) { - obj.text = conversationInfo.draft; - return obj; - } - let draftStr = conversationInfo.draft; - draftStr = _reverseToJsLongString(draftStr, 'messageUid'); - let draft = JSON.parse(draftStr); - obj.text = draft.content; - obj.text = obj.text ? obj.text : ''; - if (draft.quoteInfo) { - let msg = store.getMessageByUid(draft.quoteInfo.messageUid); - obj.quotedMessage = msg; - } - return obj; - } - - static getConversationDraft(conversation) { - let conversationInfo = wfc.getConversationInfo(conversation); - return this.getConversationDraftEx(conversationInfo); - } -} diff --git a/src/sheep/util/helper.js b/src/sheep/util/helper.js deleted file mode 100644 index 28a879b4..00000000 --- a/src/sheep/util/helper.js +++ /dev/null @@ -1,234 +0,0 @@ -// ie11 not support browser-md5-file -// import MD5 from 'browser-md5-file'; -import { numberValue } from '@/wfc/util/longUtil'; - -const helper = { - parseXml: (text, tagName) => { - var parser = new window.DOMParser(); - var xml = parser.parseFromString(text.replace(/</g, '<').replace(/>/g, '>'), 'text/xml'); - var value = {}; - - tagName = Array.isArray(tagName) ? tagName : [tagName]; - - tagName.map((e) => { - value[e] = xml.getElementsByTagName(e)[0].childNodes[0].nodeValue; - }); - - return { xml, value }; - }, - - humanSize: (size) => { - var value = (size / 1024).toFixed(1); - - if (size > 1024 << 10) { - value = (value / 1024).toFixed(1); - return `${value} M`; - } else { - return `${value} KB`; - } - }, - - getFiletypeIcon: (extension) => { - var filename = 'unknow'; - - extension = (extension || '').toLowerCase().replace(/^\./, ''); - - switch (true) { - case ['mp3', 'flac', 'aac', 'm4a', 'wma'].includes(extension): - filename = 'audio'; - break; - - case ['mp4', 'mkv', 'avi', 'flv'].includes(extension): - filename = 'audio'; - break; - - case ['zip', 'rar', 'tar', 'tar.gz'].includes(extension): - filename = 'archive'; - break; - - case ['doc', 'docx'].includes(extension): - filename = 'word'; - break; - - case ['xls', 'xlsx'].includes(extension): - filename = 'excel'; - break; - - case ['ai', 'apk', 'exe', 'ipa', 'pdf', 'ppt', 'psd'].includes(extension): - filename = extension; - break; - default: - break; - } - - return `${filename}.png`; - }, - - getPallet: (image) => { - return new Promise((resolve, reject) => { - new window.AlbumColors(image).getColors((colors, err) => { - if (err) { - resolve([ - [0, 0, 0], - [0, 0, 0], - [0, 0, 0], - ]); - } else { - resolve(colors); - } - }); - }); - }, - - decodeHTML: (text = '') => { - return text.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&'); - }, - - isImage: (ext) => { - return ['bmp', 'gif', 'jpeg', 'jpg', 'png'].includes(ext); - }, - - // 3 types supported: pic, video, doc - getMediaType: (ext = '') => { - ext = ext.toLowerCase(); - - switch (true) { - case helper.isImage(ext): - return 'pic'; - - case ['mp4'].includes(ext): - return 'video'; - - default: - return 'doc'; - } - }, - - getDataURL: (src) => { - var image = new window.Image(); - - return new Promise((resolve, reject) => { - image.src = src; - image.onload = () => { - var canvas = document.createElement('canvas'); - var context = canvas.getContext('2d'); - - canvas.width = image.width; - canvas.height = image.height; - - context.drawImage(image, 0, 0, image.width, image.height); - resolve(canvas.toDataURL('image/png')); - }; - - image.onerror = () => { - resolve(''); - }; - }); - }, - - // md5: (file) => { - // return new Promise((resolve, reject) => { - // new MD5().md5(file, (err, md5) => { - // resolve(err ? false : md5); - // }); - // }); - // }, - - weekFormat: (num) => { - let str; - switch (num) { - case 1: - str = '星期一'; - break; - case 2: - str = '星期二'; - break; - case 3: - str = '星期三'; - break; - case 4: - str = '星期四'; - break; - case 5: - str = '星期五'; - break; - case 6: - str = '星期六'; - break; - default: - str = '星期天'; - } - return str; - }, - - /** - * 会话时间显示 - */ - - dateFormat(date) { - if (!date) return ''; - if (typeof date === 'object') { - date = numberValue(date); - } - let today = new Date().setHours(0, 0, 0, 0); - let that = new Date(date).setHours(0, 0, 0, 0); - if (today === that) { - return this.timeFormat(date); - } else { - let thatDate = new Date(date); - return thatDate.getFullYear() + '/' + (thatDate.getMonth() + 1) + '/' + thatDate.getDate(); - } - }, - - /** - * 消息会话时间显示 - */ - timeFormat: (date) => { - if (!date) return ''; - if (typeof date === 'object') { - date = numberValue(date); - } - let newtime; - let nowtime = new Date(); - // if (date.constructor !== Date) { - // date = new Date(date.replace(/\-/g, '/')) // 解决ios日期显示NAN问题 - // } - date = new Date(date); - // 获取消息发送时间 - let Y = date.getFullYear(); - let M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1; - let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate(); - let W = date.getDay(); - let H = date.getHours() < 10 ? '0' + date.getHours() : date.getHours(); - let Min = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes(); - // 获取当前时间 - let nowY = nowtime.getFullYear(); - let nowM = - nowtime.getMonth() + 1 < 10 ? '0' + (nowtime.getMonth() + 1) : nowtime.getMonth() + 1; - let nowD = nowtime.getDate() < 10 ? '0' + nowtime.getDate() : nowtime.getDate(); - let isWeek = Math.abs(date - nowtime) < 7 * 24 * 3600 * 1000; - if (Y < nowY) { - // 去年 - newtime = Y + '-' + M + '-' + D + ' ' + H + ':' + Min; - } else { - if (Y === nowY && M === nowM && nowD - D <= 7) { - // 昨天 - if (nowD - D === 1) { - newtime = '昨天' + ' ' + H + ':' + Min; - } else if (nowD === D) { - // 当天 - newtime = H + ':' + Min; - } else { - // 一周内 - newtime = helper.weekFormat(W) + ' ' + H + ':' + Min; - } - } else { - // 一年内 - newtime = M + '-' + D + ' ' + H + ':' + Min; - } - } - return newtime; - }, -}; - -export default helper; diff --git a/src/sheep/util/imageUtil.js b/src/sheep/util/imageUtil.js deleted file mode 100644 index f6cc0819..00000000 --- a/src/sheep/util/imageUtil.js +++ /dev/null @@ -1,411 +0,0 @@ -import resizeImage from "resize-image"; - -function mergeImages(sources = [], options = {}) { - // Defaults - let defaultOptions = { - format: 'image/png', - quality: 0.92, - width: undefined, - height: undefined, - Canvas: undefined - }; - return new Promise(resolve => { - options = Object.assign({}, defaultOptions, options); - - sources = sources.filter(source => source !== null && source !== undefined); - - // Setup browser/Node.js specific variables - const canvas = options.Canvas ? new options.Canvas() : window.document.createElement('canvas'); - const Image = options.Canvas ? options.Canvas.Image : window.Image; - if (options.Canvas) { - options.quality *= 100; - } - - let targetSize = 64; - let divider = 1; - var size = 0; - - switch (sources.length) { - case 2: - size = (targetSize - 3 * divider) / 2; - break; - case 3: - size = (targetSize - 3 * divider) / 2; - break; - case 4: - size = (targetSize - 3 * divider) / 2; - break; - case 5: - size = (targetSize - 4 * divider) / 3; - break; - case 6: - size = (targetSize - 4 * divider) / 3; - break; - case 7: - size = (targetSize - 4 * divider) / 3; - break; - case 8: - size = (targetSize - 4 * divider) / 3; - break; - case 9: - size = (targetSize - 4 * divider) / 3; - break; - default: - break; - } - - sources = sources.slice(0, sources.length >= 9 ? 9 : sources.length); - - // Load sources - const images = sources.map(source => new Promise((resolve, reject) => { - // Convert sources to objects - if (source.constructor.name !== 'Object') { - source = {src: source}; - } - - // Resolve source and img when loaded - const img = new Image(); - img.setAttribute('crossOrigin', 'anonymous'); - //img.onerror = () => reject(new Error('Couldn\'t load image')); - img.onerror = () => resolve(null); - img.onload = () => resolve(Object.assign({}, source, {data: resizeImage.resize(img, size, size, resizeImage.PNG)})); - img.src = source.src; - })); - - const loadResizedImages = (resizedImagesBase64) => resizedImagesBase64.map(image => new Promise((resolve, reject) => { - // Resolve source and img when loaded - const img = new Image(); - img.setAttribute('crossOrigin', 'anonymous'); - //img.onerror = () => reject(new Error('Couldn\'t load image2')); - img.onerror = () => resolve(null); - img.onload = () => resolve(Object.assign({}, {img})); - img.src = image.data; - })); - - // Get canvas context - const ctx = canvas.getContext('2d'); - - // When sources have loaded - resolve(Promise.all(images) - .then((images) => { - images = images.filter(i => i !== null); - return Promise.all(loadResizedImages(images)); - }) - .then(images => { - - images = images.filter(i => i !== null); - - // Set canvas dimensions - // const getSize = dim => options[dim] || Math.max(...images.map(image => image.img[dim])); - // canvas.width = getSize('width'); - // canvas.height = getSize('height'); - canvas.width = targetSize; - canvas.height = targetSize; - switch (images.length) { - case 2: - images[0].x = divider; - images[0].y = targetSize / 4; - images[1].x = images[0].x + size + divider; - images[1].y = images[0].y; - break; - case 3: - images[0].x = targetSize / 4; - images[0].y = divider; - - images[1].x = divider; - images[1].y = images[0].y + size + divider; - images[2].x = images[1].x + size + divider; - images[2].y = images[1].y; - break; - case 4: - images[0].x = divider; - images[0].y = divider; - images[1].x = images[0].x + size + divider; - images[1].y = divider; - - images[2].x = divider; - images[2].y = images[0].y + size + divider; - images[3].x = images[2].x + size + divider; - images[3].y = images[2].y; - break; - case 5: - images[0].x = (targetSize - 2 * size - divider) / 2; - images[0].y = (targetSize - 2 * size - divider) / 2; - images[1].x = images[0].x + size + divider; - images[1].y = images[0].y; - - images[2].x = divider; - images[2].y = images[1].y + size + divider; - images[3].x = images[2].x + size + divider; - images[3].y = images[2].y; - images[4].x = images[3].x + size + divider; - images[4].y = images[2].y; - break; - case 6: - images[0].x = divider; - images[0].y = (targetSize - 2 * size - divider) / 2; - images[1].x = images[0].x + size + divider; - images[1].y = images[0].y; - images[2].x = images[1].x + size + divider; - images[2].y = images[0].y; - - images[3].x = divider; - images[3].y = images[0].y + size + divider; - images[4].x = images[3].x + size + divider; - images[4].y = images[3].y; - images[5].x = images[4].x + size + divider; - images[5].y = images[3].y; - break; - case 7: - images[0].x = divider + size + divider; - images[0].y = divider; - - images[1].x = divider; - images[1].y = images[0].y + size + divider; - images[2].x = images[1].x + size + divider; - images[2].y = images[1].y; - images[3].x = images[2].x + size + divider; - images[3].y = images[1].y; - - images[4].x = divider; - images[4].y = images[1].y + size + divider; - images[5].x = images[4].x + size + divider; - images[5].y = images[4].y; - images[6].x = images[5].x + size + divider; - images[6].y = images[4].y; - break; - case 8: - images[0].x = (targetSize - 2 * size - divider) / 2; - images[0].y = divider; - images[1].x = images[0].x + size + divider; - images[1].y = images[0].y; - - images[2].x = divider; - images[2].y = images[0].y + size + divider; - images[3].x = images[2].x + size + divider; - images[3].y = images[2].y - images[4].x = images[3].x + size + divider; - images[4].y = images[2].y; - - images[5].x = divider; - images[5].y = images[2].y + size + divider; - images[6].x = images[5].x + size + divider; - images[6].y = images[5].y; - images[7].x = images[6].x + size + divider; - images[7].y = images[5].y; - break; - case 9: - images[0].x = divider; - images[0].y = divider; - images[1].x = images[0].x + size + divider; - images[1].y = images[0].y; - images[2].x = images[1].x + size + divider; - images[2].y = images[0].y; - - images[3].x = divider; - images[3].y = images[0].y + size + divider; - images[4].x = images[3].x + size + divider; - images[4].y = images[3].y; - images[5].x = images[4].x + size + divider; - images[5].y = images[3].y; - - images[6].x = divider; - images[6].y = images[3].y + size + divider; - images[7].x = images[6].x + size + divider; - images[7].y = images[6].y; - images[8].x = images[7].x + size + divider; - images[8].y = images[6].y; - break; - } - - ctx.fillStyle = '#CCCCCC'; - ctx.fillRect(0, 0, canvas.width, canvas.height); - // Draw images to canvas - images.forEach(image => { - ctx.globalAlpha = image.opacity ? image.opacity : 1; - return ctx.drawImage(image.img, image.x || 0, image.y || 0); - }); - - if (options.Canvas && options.format === 'image/jpeg') { - // Resolve data URI for node-canvas jpeg async - return new Promise(resolve => { - canvas.toDataURL(options.format, { - quality: options.quality, - progressive: false - }, (err, jpeg) => { - if (err) { - throw err; - } - resolve(jpeg); - }); - }); - } - - // Resolve all other data URIs sync - return canvas.toDataURL(options.format, options.quality); - })); - }) -} - -async function genGroupPortrait(groupMemberUsers) { - let groupMemberPortraits = []; - for (let i = 0; i < Math.min(9, groupMemberUsers.length); i++) { - groupMemberPortraits.push(groupMemberUsers[i].portrait) - } - return await mergeImages(groupMemberPortraits); -} - -// return {data uri, width, height} -function imageThumbnail(file) { - return new Promise((resolve, reject) => { - var img = new Image(); - img.setAttribute('crossOrigin', 'anonymous'); - img.onload = () => { - let resizedCanvas = resizeImage.resize2Canvas(img, 200, 200); - resizedCanvas.toBlob((blob) => { - var reader = new FileReader(); - reader.readAsDataURL(blob); - reader.onloadend = () => { - let base64data = reader.result; - resolve({thumbnail: base64data, width: img.naturalWidth, height: img.naturalHeight}); - } - reader.onerror = () => { - resolve(null); - } - }, 'image/jpeg', 0.4); - }; - img.onerror = () => { - resolve(null); - } - if (file.path) { - if (file.path.startsWith('/')) { - img.src = 'local-resource://' + (file.path.indexOf(file.name) > -1 ? file.path : file.path + file.name); // local image url - } else { - img.src = file.path; - } - } else { - let reader = new FileReader(); - reader.onload = function (event) { - img.src = event.target.result; - }; - reader.readAsDataURL(file); - } - }); -} - -// return {data uri, width, height} -function videoThumbnail(file) { - return new Promise( - (resolve, reject) => { - let video = document.getElementById('bgvid'); - video.onplay = () => { - console.log('------------ video onplay'); - - var canvas = document.createElement("canvas"); - canvas.width = video.videoWidth; - canvas.height = video.videoHeight; - canvas.getContext('2d') - .drawImage(video, 0, 0, canvas.width, canvas.height); - var img = document.createElement("img"); - img.src = canvas.toDataURL(); - img.onload = () => { - let resizedCanvas = resizeImage.resize2Canvas(img, 200, 200); - resizedCanvas.toBlob((blob) => { - var reader = new FileReader(); - reader.readAsDataURL(blob); - reader.onloadend = () => { - let base64data = reader.result; - resolve({thumbnail: base64data, width: video.videoWidth, height: video.videoHeight}); - video.src = null; - }; - reader.onerror = () => { - resolve(null); - } - }, 'image/jpeg', 0.4); - }; - img.onerror = () => { - resolve(null); - }; - }; - video.onerror = () => { - resolve(null); - }; - _loadVideo(file) - console.log('----------', video); - }); -} - -function _loadVideo(file) { - let video = document.getElementById('bgvid'); - if (file.path) { - if (file.path.startsWith('/')) { - video.src = 'local-resource://' + (file.path.indexOf(file.name) > -1 ? file.path : file.path + file.name); // local video url - } else { - video.src = file.path; - } - } else { - let reader = new FileReader(); - reader.onload = function (event) { - video.src = event.target.result; - }; - reader.readAsDataURL(file); - } -} - -function videoDuration(file) { - return new Promise( - (resolve, reject) => { - let video = document.getElementById('bgvid'); - video.onplay = () => { - resolve(video.duration); - }; - video.onerror = () => { - resolve(0); - }; - _loadVideo(file) - console.log('----------', video); - }); -} - -function dataURItoBlob(dataURI) { - // convert base64 to raw binary data held in a string - // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this - let byteString = atob(dataURI.split(',')[1]); - - // separate out the mime component - let mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; - - // write the bytes of the string to an ArrayBuffer - let ab = new ArrayBuffer(byteString.length); - let ia = new Uint8Array(ab); - for (let i = 0; i < byteString.length; i++) { - ia[i] = byteString.charCodeAt(i); - } - return new Blob([ab], {type: mimeString}); -} - -function fileFromDataUri(dataUri, fileName) { - const blob = dataURItoBlob(dataUri); - const resultFile = new File([blob], fileName); - return resultFile; -} - -function scaleDown(width, height, maxWidth, maxHeight) { - if (width < maxWidth && height < maxHeight) { - return {width, height} - } - - const widthRatio = maxWidth / width; - const heightRatio = maxHeight / height; - - // 计算比例最小的缩放倍数 - const scale = Math.min(widthRatio, heightRatio); - - // 缩放后的宽度和高度 - const scaledWidth = width * scale; - const scaledHeight = height * scale; - - return {width: Math.ceil(scaledWidth), height: Math.ceil(scaledHeight)}; -} - -export {mergeImages, genGroupPortrait, videoThumbnail, videoDuration, imageThumbnail, fileFromDataUri, scaleDown}; diff --git a/src/sheep/util/storageHelper.js b/src/sheep/util/storageHelper.js deleted file mode 100644 index f8d780ac..00000000 --- a/src/sheep/util/storageHelper.js +++ /dev/null @@ -1,15 +0,0 @@ -export function removeItem(key) { - uni.removeStorageSync(key) -} - -export function getItem(key) { - return uni.getStorageSync(key); -} - -export function setItem(key, value) { - uni.setStorageSync(key, value); -} - -export function clear() { - uni.clearStorageSync(); -} diff --git a/src/store.js b/src/store.js deleted file mode 100644 index 49f71b8e..00000000 --- a/src/store.js +++ /dev/null @@ -1,2062 +0,0 @@ -import ConnectionStatus from './wfc/client/connectionStatus'; -import wfc from './wfc/client/wfc'; -import EventType from './wfc/client/wfcEvent'; -import ConversationType from './wfc/model/conversationType'; -import { eq, gt, numberValue, stringValue } from './wfc/util/longUtil'; -import helper from '@/sheep/util/helper'; -import pinyin from 'pinyin/lib/esm/pinyin'; -import GroupType from './wfc/model/groupType'; -// import {imageThumbnail, videoDuration, videoThumbnail} from "./ui/util/imageUtil"; -import MessageContentMediaType from './wfc/messages/messageContentMediaType'; -import Conversation from './wfc/model/conversation'; -import MessageContentType from './wfc/messages/messageContentType'; -import Message from './wfc/messages/message'; -import ImageMessageContent from './wfc/messages/imageMessageContent'; -import VideoMessageContent from './wfc/messages/videoMessageContent'; -import FileMessageContent from './wfc/messages/fileMessageContent'; -import ForwardType from './ForwardType'; -import TextMessageContent from './wfc/messages/textMessageContent'; -import SearchType from './wfc/model/searchType'; -import Config from './config'; -import { clear, getItem, removeItem, setItem } from '@/sheep/util/storageHelper'; -import CompositeMessageContent from './wfc/messages/compositeMessageContent'; -// import {getConversationPortrait} from "./ui/util/imageUtil"; -import DismissGroupNotification from './wfc/messages/notification/dismissGroupNotification'; -import KickoffGroupMemberNotification from './wfc/messages/notification/kickoffGroupMemberNotification'; -import QuitGroupNotification from './wfc/messages/notification/quitGroupNotification'; -import MessageStatus from './wfc/messages/messageStatus'; -import MessageConfig from './wfc/client/messageConfig'; -import PersistFlag from './wfc/messages/persistFlag'; -import NullGroupInfo from './wfc/model/nullGroupInfo'; -import NullUserInfo from './wfc/model/nullUserInfo'; -import LeaveChannelChatMessageContent from './wfc/messages/leaveChannelChatMessageContent'; -import ArticlesMessageContent from './wfc/messages/articlesMessageContent'; -import EnterChannelChatMessageContent from './wfc/messages/enterChannelChatMessageContent'; -import NullChannelInfo from './wfc/model/NullChannelInfo'; -import CallStartMessageContent from './wfc/av/messages/callStartMessageContent'; -import { storeToRefs } from 'pinia'; -import { pstore } from './pstore'; -import SoundMessageContent from './wfc/messages/soundMessageContent'; - -/** - * 一些说明 - * _开头的字段,是为了UI层展示方便,而打补丁上出去的 - * __开头的字段,仅内部使用 - * _开头的函数,是内部函数 - * 外部不直接更新字段,而是通过提供各种action方法更新 - */ - -let conversationState; -let contactState; -let searchState; -let pickState; -let miscState; - -let store = { - debug: true, - state: { - conversation: null, - contact: null, - search: null, - pick: null, - misc: null, - }, - - init() { - console.log('init store'); - - const { conversationStore, contactStore, pickStore, searchStore, miscStore } = storeToRefs( - pstore(), - ); - conversationState = conversationStore.value; - contactState = contactStore.value; - searchState = searchStore.value; - pickState = pickStore.value; - miscState = miscStore.value; - - store.state.conversation = conversationState; - store.state.contact = contactState; - store.state.search = searchState; - store.state.pick = pickState; - store.state.misc = miscState; - - wfc.eventEmitter.on(EventType.ConnectionStatusChanged, (status) => { - miscState.connectionStatus = status; - console.log('connection status changed', status); - if (status === ConnectionStatus.ConnectionStatusConnected) { - this._loadDefaultData(); - } else if ( - status === ConnectionStatus.ConnectionStatusLogout || - status === ConnectionStatus.ConnectionStatusRejected || - status === ConnectionStatus.ConnectionStatusSecretKeyMismatch || - status === ConnectionStatus.ConnectionStatusKickedOff || - status === ConnectionStatus.ConnectionStatusTokenIncorrect - ) { - // 清除 token 等 - clear(); - if (status === ConnectionStatus.ConnectionStatusKickedOff) { - wfc.disconnect(); - } - _reset(); - } - }); - - wfc.eventEmitter.on(EventType.UserInfosUpdate, (userInfos) => { - console.log('store UserInfosUpdate', userInfos, miscState.connectionStatus); - this._reloadSingleConversationIfExist(userInfos); - // TODO optimize - this._loadCurrentConversationMessages(); - this._loadFriendList(); - this._loadFriendRequest(); - this._loadSelfUserInfo(); - // TODO 其他相关逻辑 - }); - - wfc.eventEmitter.on(EventType.SettingUpdate, () => { - console.log('store SettingUpdate'); - this._loadDefaultConversationList(); - this._loadFavContactList(); - this._loadFavGroupList(); - this._loadChannelList(); - this._loadCurrentConversationMessages(); - }); - - wfc.eventEmitter.on(EventType.FriendRequestUpdate, (newFrs) => { - this._loadFriendRequest(); - }); - - wfc.eventEmitter.on(EventType.FriendListUpdate, (updatedFriendIds) => { - this._loadFriendList(); - this._loadFriendRequest(); - this._loadFavContactList(); - this._loadDefaultConversationList(); - this._loadCurrentConversationMessages(); - }); - - wfc.eventEmitter.on(EventType.GroupInfosUpdate, (groupInfos) => { - // TODO optimize - console.log('store GroupInfosUpdate', groupInfos); - this._reloadGroupConversationIfExist(groupInfos); - this._loadFavGroupList(); - // TODO 其他相关逻辑 - }); - - wfc.eventEmitter.on(EventType.GroupMembersUpdate, (groupId, members) => { - // TODO optimize - console.log('store GroupMembersUpdate', groupId); - this._reloadGroupConversationIfExist([new NullGroupInfo(groupId)]); - // this._loadFavGroupList(); - // TODO 其他相关逻辑 - }); - - wfc.eventEmitter.on(EventType.ChannelInfosUpdate, (groupInfos) => { - this._loadDefaultConversationList(); - this._loadChannelList(); - }); - - wfc.eventEmitter.on(EventType.ConversationInfoUpdate, (conversationInfo) => { - this._reloadConversation(conversationInfo.conversation); - if ( - conversationState.currentConversationInfo && - conversationState.currentConversationInfo.conversation.equal(conversationInfo.conversation) - ) { - this._loadCurrentConversationMessages(); - } - }); - - wfc.eventEmitter.on(EventType.ReceiveMessages, (msgs, hasMore) => { - //console.log('receiveMessage', msg, hasMore); - if (miscState.connectionStatus === ConnectionStatus.ConnectionStatusReceiveing) { - return; - } - - for (const msg of msgs) { - if ( - msg.messageContent instanceof DismissGroupNotification || - (msg.messageContent instanceof KickoffGroupMemberNotification && - msg.messageContent.kickedMembers.indexOf(wfc.getUserId()) >= 0) || - (msg.messageContent instanceof QuitGroupNotification && - msg.messageContent.operator === wfc.getUserId()) - ) { - this.setCurrentConversationInfo(null); - return; - } - - if (!hasMore) { - this._reloadConversation(msg.conversation); - } - if ( - conversationState.currentConversationInfo && - msg.conversation.equal(conversationState.currentConversationInfo.conversation) - ) { - // 移动端,目前只有单聊会发送typing消息 - if (msg.messageContent.type === MessageContentType.Typing) { - let groupId = msg.conversation.type === 1 ? msg.conversation.target : ''; - let userInfo = wfc.getUserInfo(msg.from, false, groupId); - userInfo = Object.assign({}, userInfo); - userInfo._displayName = wfc.getGroupMemberDisplayNameEx(userInfo); - conversationState.inputtingUser = userInfo; - - if (!conversationState.inputClearHandler) { - conversationState.inputClearHandler = () => { - conversationState.inputtingUser = null; - }; - } - clearTimeout(conversationState.inputClearHandler); - setTimeout(conversationState.inputClearHandler, 3000); - } else { - clearTimeout(conversationState.inputClearHandler); - conversationState.inputtingUser = null; - } - - if ( - !this._isDisplayMessage(msg) || - msg.messageContent.type === MessageContentType.RecallMessage_Notification - ) { - return; - } - - // 会把下来加载更多加载的历史消息给清理了 - let lastTimestamp = 0; - let msgListLength = conversationState.currentConversationMessageList.length; - if (msgListLength > 0) { - lastTimestamp = - conversationState.currentConversationMessageList[msgListLength - 1].timestamp; - } - this._patchMessage(msg, lastTimestamp); - let msgIndex = conversationState.currentConversationMessageList.findIndex((m) => { - return ( - m.messageId === msg.messageId || - (gt(m.messageUid, 0) && eq(m.messageUid, msg.messageUid)) || - (m.messageContent.type === MessageContentType.Streaming_Text_Generating && - (msg.messageContent.type === MessageContentType.Streaming_Text_Generating || - msg.messageContent.type === MessageContentType.Streaming_Text_Generated) && - m.messageContent.streamId === msg.messageContent.streamId) - ); - }); - if (msgIndex > -1) { - // FYI: https://v2.vuejs.org/v2/guide/reactivity#Change-Detection-Caveats - conversationState.currentConversationMessageList.splice(msgIndex, 1, msg); - console.log('msg duplicate', msg.messageId, msg.messageUid); - return; - } - conversationState.currentConversationMessageList.push(msg); - } - - // 没有使用 uikit 默认的通知处理 - if ( - msg.conversation.type !== 2 && - miscState.isAppHidden && - (miscState.enableNotification || - msg.status === MessageStatus.AllMentioned || - msg.status === MessageStatus.Mentioned) - ) { - this.notify(msg); - } - } - }); - - wfc.eventEmitter.on(EventType.RecallMessage, (operator, messageUid) => { - this._reloadConversationByMessageUidIfExist(messageUid); - if (conversationState.currentConversationInfo) { - let msg = wfc.getMessageByUid(messageUid); - if (msg && msg.conversation.equal(conversationState.currentConversationInfo.conversation)) { - if (conversationState.currentConversationMessageList) { - let lastTimestamp = 0; - conversationState.currentConversationMessageList = - conversationState.currentConversationMessageList.map((msg) => { - if (eq(msg.messageUid, messageUid)) { - let newMsg = wfc.getMessageByUid(messageUid); - this._patchMessage(newMsg, lastTimestamp); - return newMsg; - } - lastTimestamp = msg.timestamp; - return msg; - }); - } - } - } - }); - - wfc.eventEmitter.on(EventType.UserOnlineEvent, (userOnlineStatus) => { - userOnlineStatus.forEach((e) => { - miscState.userOnlineStateMap.set(e.userId, e); - }); - // 更新在线状态 - contactState.friendList = this._patchAndSortUserInfos(contactState.friendList, ''); - }); - // 服务端删除 - wfc.eventEmitter.on(EventType.MessageDeleted, (messageUid) => { - this._reloadConversationByMessageUidIfExist(messageUid); - if (conversationState.currentConversationInfo) { - if (conversationState.currentConversationMessageList) { - conversationState.currentConversationMessageList = - conversationState.currentConversationMessageList.filter( - (msg) => !eq(msg.messageUid, messageUid), - ); - } - } - }); - // 本地删除 - wfc.eventEmitter.on(EventType.DeleteMessage, (messageId) => { - this._reloadConversationByMessageIdIfExist(messageId); - if (conversationState.currentConversationInfo) { - if (conversationState.currentConversationMessageList) { - conversationState.currentConversationMessageList = - conversationState.currentConversationMessageList.filter( - (msg) => msg.messageId !== messageId, - ); - } - } - }); - - wfc.eventEmitter.on(EventType.SendMessage, (message) => { - // 删除频道,或者从频道会话切到其他会话时,会发送一条离开频道的消息 - if (message.messageContent instanceof LeaveChannelChatMessageContent) { - return; - } - this._reloadConversation(message.conversation); - if (!this._isDisplayMessage(message)) { - return; - } - if ( - !conversationState.currentConversationInfo || - !message.conversation.equal(conversationState.currentConversationInfo.conversation) - ) { - console.log('not current conv'); - return; - } - let index = conversationState.currentConversationMessageList.findIndex( - (m) => m.messageId === message.messageId, - ); - if (index !== -1) { - return; - } - let length = conversationState.currentConversationMessageList.length; - let lastTimestamp = 0; - if (length > 0) { - let lastMessage = conversationState.currentConversationMessageList[length - 1]; - lastTimestamp = lastMessage.timestamp; - } - this._patchMessage(message, lastTimestamp); - - conversationState.currentConversationMessageList.push(message); - }); - - wfc.eventEmitter.on(EventType.MessageStatusUpdate, (message) => { - console.log('message status update', message); - if (!this._isDisplayMessage(message)) { - return; - } - if ( - !conversationState.currentConversationInfo || - !message.conversation.equal(conversationState.currentConversationInfo.conversation) - ) { - console.log('not current conv'); - return; - } - - let index = conversationState.currentConversationMessageList.findIndex( - (m) => m.messageId === message.messageId, - ); - if (index < 0) { - return; - } - let msg = conversationState.currentConversationMessageList[index]; - Object.assign(msg, message); - - if ( - conversationState.currentConversationInfo.lastMessage && - conversationState.currentConversationInfo.lastMessage.messageId === message.messageId - ) { - Object.assign(conversationState.currentConversationInfo.lastMessage, message); - } - }); - - wfc.eventEmitter.on(EventType.MessageRead, (readEntries) => { - // optimization - if (conversationState.currentConversationInfo) { - // wfc.getConversationRead 每次返回同一个对象,只是该对象的值不一样。 - // 由于 VUE 不能检测到初始化时,不存在的属性的变更,故此处重新 new 一个新的对象,并赋值。 - // FYI:https://vuejs.org/v2/guide/reactivity.html - conversationState.currentConversationRead = new Map( - wfc.getConversationRead(conversationState.currentConversationInfo.conversation), - ); - } - }); - - if (wfc.getConnectionStatus() === ConnectionStatus.ConnectionStatusConnected) { - this._loadDefaultData(); - } - miscState.connectionStatus = wfc.getConnectionStatus(); - }, - - _loadDefaultData() { - console.log('store.js', '_loadDefaultData'); - this._loadFavGroupList(); - this._loadChannelList(); - this._loadFriendList(); - this._loadFavContactList(); - this._loadFriendRequest(); - this._loadSelfUserInfo(); - this._loadDefaultConversationList(); - this._loadUserLocalSettings(); - conversationState.isMessageReceiptEnable = wfc.isReceiptEnabled() && wfc.isUserReceiptEnabled(); - if (conversationState.currentConversationInfo) { - this._loadCurrentConversationMessages(); - } - }, - - // conversation actions - - _isDisplayMessage(message) { - // return [PersistFlag.Persist, PersistFlag.Persist_And_Count].indexOf(MessageConfig.getMessageContentPersitFlag(message.messageContent.type)) > -1; - return ( - message.messageId !== 0 || - message.messageContent.type === MessageContentType.Streaming_Text_Generating - ); - }, - - _loadDefaultConversationList() { - this._loadConversationList([0, 1, 3], [0]); - }, - - _loadConversationList(conversationType = [0, 1, 3], lines = [0]) { - let conversationList = wfc.getConversationList(conversationType, lines); - let toLoadUserIdSet = new Set(); - let toLoadGroupIds = []; - console.log('_loadConversationList size', conversationList.length); - conversationList.forEach((info) => { - if (info.conversation.type === ConversationType.Single) { - toLoadUserIdSet.add(info.conversation.target); - if (info.lastMessage) { - toLoadUserIdSet.add(info.lastMessage.from); - } - } else if (info.conversation.type === ConversationType.Group) { - toLoadGroupIds.push(info.conversation.target); - if (info.lastMessage) { - toLoadUserIdSet.add(info.lastMessage.from); - } - } - }); - let userInfoMap = new Map(); - let groupInfoMap = new Map(); - toLoadUserIdSet.forEach((uid) => { - userInfoMap.set(uid, new NullUserInfo(uid)); - }); - toLoadGroupIds.forEach((gid) => { - groupInfoMap.set(gid, new NullGroupInfo(gid)); - }); - - console.log('to load userIds', toLoadUserIdSet.size); - wfc.getUserInfos([...toLoadUserIdSet], '').forEach((u) => { - userInfoMap.set(u.uid, u); - }); - wfc.getGroupInfos(toLoadGroupIds).forEach((g) => { - groupInfoMap.set(g.target, g); - }); - - conversationList.forEach((info) => { - this._patchConversationInfo(info, true, userInfoMap, groupInfoMap); - // side affect - if ( - conversationState.currentConversationInfo && - conversationState.currentConversationInfo.conversation.equal(info.conversation) - ) { - conversationState.currentConversationInfo = info; - this._patchCurrentConversationOnlineStatus(); - } - }); - conversationState.conversationInfoList = conversationList; - }, - - _reloadConversation(conversation, insertIfNoExist = true) { - let conversationInfo = wfc.getConversationInfo(conversation); - if (conversationInfo) { - conversationInfo = this._patchConversationInfo(conversationInfo); - } - let index = conversationState.conversationInfoList.findIndex((info) => - info.conversation.equal(conversation), - ); - if (index >= 0) { - Object.assign(conversationState.conversationInfoList[index], conversationInfo); - } else { - if ( - insertIfNoExist && - gt(conversationInfo.timestamp, 0) && - conversation.type !== ConversationType.ChatRoom - ) { - conversationState.conversationInfoList.push(conversationInfo); - } else { - return conversationInfo; - } - } - - if ( - conversationState.currentConversationInfo && - conversationState.currentConversationInfo.conversation.equal(conversation) - ) { - conversationState.currentConversationInfo = conversationInfo; - } - - // sort - conversationState.conversationInfoList.sort((a, b) => { - if ((a.top && b.top) || (!a.top && !b.top)) { - return gt(a.timestamp, b.timestamp) ? -1 : 1; - } else { - if (a.top) { - return -1; - } else { - return 1; - } - } - }); - return conversationInfo; - }, - - _reloadSingleConversationIfExist(userInfos) { - if (userInfos.length > 10) { - this._loadDefaultConversationList(); - } else { - userInfos.forEach((ui) => { - let conv = new Conversation(ConversationType.Single, ui.uid, 0); - this._reloadConversation(conv, false); - }); - } - }, - - _reloadGroupConversationIfExist(groupInfos) { - if (groupInfos.length > 10) { - this._loadDefaultConversationList(); - } else { - groupInfos.forEach((gi) => { - let conv = new Conversation(ConversationType.Group, gi.target, 0); - this._reloadConversation(conv, false); - }); - } - }, - - _reloadConversationByMessageIdIfExist(messageId) { - if (messageId === 0) { - return; - } - let toLoadConversationInfo = null; - for (let i = 0; i < conversationState.conversationInfoList.length; i++) { - let info = conversationState.conversationInfoList[i]; - if (info.lastMessage && info.lastMessage.messageId === messageId) { - toLoadConversationInfo = info; - break; - } - } - - if (toLoadConversationInfo) { - this._reloadConversation(toLoadConversationInfo.conversation); - } - }, - _reloadConversationByMessageUidIfExist(messageUid) { - let toLoadConversationInfo = null; - for (let i = 0; i < conversationState.conversationInfoList.length; i++) { - let info = conversationState.conversationInfoList[i]; - if (info.lastMessage && eq(info.lastMessage.messageUid, messageUid)) { - toLoadConversationInfo = info; - break; - } - } - - if (toLoadConversationInfo) { - this._reloadConversation(toLoadConversationInfo.conversation); - } - }, - - setCurrentConversation(conversation) { - if (!conversation) { - this.setCurrentConversationInfo(null); - return; - } - if ( - conversationState.currentConversationInfo && - conversation.equal(conversationState.currentConversationInfo.conversation) - ) { - return; - } - let convs = conversationState.conversationInfoList.filter((info) => - info.conversation.equal(conversation), - ); - let info; - if (convs && convs.length > 0) { - info = convs[0]; - } else { - wfc.setConversationTimestamp(conversation, new Date().getTime()); - info = this._reloadConversation(conversation); - } - this.setCurrentConversationInfo(info); - }, - - setCurrentConversationInfo(conversationInfo) { - if (!conversationInfo) { - if (conversationState.currentConversationInfo) { - let conversation = conversationState.currentConversationInfo.conversation; - if ([ConversationType.Single, ConversationType.Group].indexOf(conversation.type) >= 0) { - wfc.unwatchOnlineState(conversation.type, [conversation.target]); - } else if (conversation.type === ConversationType.Channel) { - let content = new LeaveChannelChatMessageContent(); - wfc.sendConversationMessage(conversation, content); - } else if (conversation.type === ConversationType.ChatRoom) { - wfc.quitChatroom(conversation.target); - } - } - conversationState.currentConversationInfo = null; - conversationState.shouldAutoScrollToBottom = false; - conversationState.currentConversationMessageList.length = 0; - conversationState.currentConversationOldestMessageId = 0; - conversationState.currentConversationOldestMessageUid = 0; - conversationState.currentConversationRead = null; - conversationState.enableMessageMultiSelection = false; - - return; - } - - if ( - conversationState.currentConversationInfo && - conversationState.currentConversationInfo.conversation.equal(conversationInfo.conversation) - ) { - return; - } - - let conversation = conversationInfo.conversation; - if ( - conversation.type === ConversationType.Group || - (conversation.type === ConversationType.Single && !wfc.isMyFriend(conversation.target)) - ) { - wfc.watchOnlineState( - conversation.type, - [conversation.target], - 1000, - (states) => { - states.forEach((e) => { - miscState.userOnlineStateMap.set(e.userId, e); - }); - this._patchCurrentConversationOnlineStatus(); - }, - (err) => { - console.log('watchOnlineState error', err); - }, - ); - } - if (conversation.type === ConversationType.Channel) { - let content = new EnterChannelChatMessageContent(); - wfc.sendConversationMessage(conversation, content); - } else if (conversation.type === ConversationType.ChatRoom) { - wfc.joinChatroom(conversation.target); - } - conversationState.currentConversationInfo = conversationInfo; - conversationState.shouldAutoScrollToBottom = true; - conversationState.currentConversationMessageList.length = 0; - conversationState.currentConversationOldestMessageId = 0; - conversationState.currentConversationOldestMessageUid = 0; - this._loadCurrentConversationMessages(); - - conversationState.currentConversationRead = wfc.getConversationRead( - conversationInfo.conversation, - ); - - conversationState.enableMessageMultiSelection = false; - conversationState.showChannelMenu = false; - if (conversation.type === ConversationType.Channel) { - let channelInfo = wfc.getChannelInfo(conversation.target, true); - if (channelInfo.menus && channelInfo.menus.length > 0) { - conversationState.showChannelMenu = true; - } - } else if (conversation.type === ConversationType.Group) { - wfc.getGroupInfo(conversation.target, true); - } else if (conversation.type === ConversationType.Single) { - wfc.getUserInfo(conversation.target, true); - } - conversationState.quotedMessage = null; - conversationState.currentVoiceMessage = null; - - clearTimeout(conversationState.inputClearHandler); - conversationState.inputtingUser = null; - - pickState.messages.length = 0; - }, - - quitGroup(groupId) { - wfc.quitGroup( - groupId, - [0], - null, - () => { - this.setCurrentConversationInfo(null); - let conversation = new Conversation(ConversationType.Group, groupId, 0); - conversationState.conversationInfoList = conversationState.conversationInfoList.filter( - (info) => !info.conversation.equal(conversation), - ); - }, - (err) => { - console.log('quit group error', err); - }, - ); - }, - dismissGroup(groupId) { - wfc.dismissGroup( - groupId, - [0], - null, - () => { - this.setCurrentConversationInfo(null); - let conversation = new Conversation(ConversationType.Group, groupId, 0); - conversationState.conversationInfoList = conversationState.conversationInfoList.filter( - (info) => !info.conversation.equal(conversation), - ); - }, - (err) => { - console.log('dismiss group error', err); - }, - ); - }, - subscribeChannel(channelId, subscribe) { - wfc.listenChannel( - channelId, - subscribe, - () => { - //this.setCurrentConversationInfo(null) - }, - (err) => { - console.log('unsubscribe channel error', err); - }, - ); - }, - - toggleMessageMultiSelection(message) { - conversationState.enableMessageMultiSelection = !conversationState.enableMessageMultiSelection; - pickState.messages.length = 0; - if (conversationState.enableMessageMultiSelection && message) { - pickState.messages.push(message); - } - }, - - toggleChannelMenu(toggle) { - conversationState.showChannelMenu = toggle; - }, - - selectOrDeselectMessage(message) { - let index = pickState.messages.findIndex((m) => m.messageId === message.messageId); - if (index >= 0) { - pickState.messages.splice(index, 1); - } else { - pickState.messages.push(message); - } - }, - - deleteSelectedMessages() { - conversationState.enableMessageMultiSelection = false; - if (pickState.messages.length < 1) { - return; - } - pickState.messages.sort((m1, m2) => m1.messageId - m2.messageId); - pickState.messages.forEach((m) => { - wfc.deleteMessage(m.messageId); - }); - pickState.messages.length = 0; - }, - - forwardMessage(forwardType, targetConversations, messages, extraMessageText) { - targetConversations.forEach((conversation) => { - // let msg =new Message(conversation, message.messageContent) - // wfc.sendMessage(msg) - // 或者下面这种 - if (forwardType === ForwardType.NORMAL || forwardType === ForwardType.ONE_BY_ONE) { - messages.forEach((message) => { - if (message.messageContent instanceof ArticlesMessageContent) { - let linkContents = message.messageContent.toLinkMessageContent(); - linkContents.forEach((lm) => { - wfc.sendConversationMessage(conversation, lm); - }); - } else { - message.messageContent = this._filterForwardMessageContent(message); - wfc.sendConversationMessage(conversation, message.messageContent); - } - }); - } else { - // 合并转发 - let compositeMessageContent = new CompositeMessageContent(); - let title = ''; - let msgConversation = messages[0].conversation; - if (msgConversation.type === ConversationType.Single) { - let users = store.getUserInfos([wfc.getUserId(), msgConversation.target], ''); - title = users[0]._displayName + '和' + users[1]._displayName + '的聊天记录'; - } else { - title = '群的聊天记录'; - } - compositeMessageContent.title = title; - let msgs = messages.map((m) => { - m.messageContent = this._filterForwardMessageContent(m); - return m; - }); - compositeMessageContent.setMessages(msgs); - - wfc.sendConversationMessage(conversation, compositeMessageContent); - } - - if (extraMessageText) { - let textMessage = new TextMessageContent(extraMessageText); - wfc.sendConversationMessage(conversation, textMessage); - } - }); - }, - - forwardByCreateConversation(forwardType, users, messages, extraMessageText) { - this.createConversation( - users, - (conversation) => { - this.forwardMessage(forwardType, [conversation], messages, extraMessageText); - }, - (err) => { - console.error('createConversation error', err); - }, - ); - }, - - setShouldAutoScrollToBottom(scroll) { - conversationState.shouldAutoScrollToBottom = scroll; - }, - - /** - * - * @param src {String} 媒体url - * @param thumbUrl {String} 缩略图url - * @param thumb {String} base64格式的缩略图,但不包含'data:image/png;base64,' - * @param autoplay - */ - previewMedia(src, thumbUrl, thumb, autoplay = true) { - conversationState.previewMediaItems.length = 0; - conversationState.previewMediaItems.push({ - src: src, - thumb: thumbUrl ? thumbUrl : 'data:image/png;base64,' + thumb, - autoplay: autoplay, - }); - conversationState.previewMediaIndex = 0; - console.log( - 'preview media', - conversationState.previewMediaItems, - conversationState.previewMediaIndex, - ); - }, - previewMedias(mediaItems, index) { - conversationState.previewMediaItems.length = 0; - conversationState.previewMediaItems.push(...mediaItems); - conversationState.previewMediaIndex = index; - console.log( - 'preview medias', - conversationState.previewMediaItems, - conversationState.previewMediaIndex, - ); - }, - - playVoice(message) { - if (conversationState.currentVoiceMessage) { - conversationState.currentVoiceMessage._isPlaying = false; - } - conversationState.currentVoiceMessage = message; - }, - - /** - * - * @param message - * @param {Boolean} continuous true,预览周围的媒体消息;false,只预览第一个参数传入的那条媒体消息 - */ - previewMessage(message, continuous) { - conversationState.previewMediaItems.length = 0; - conversationState.previewMediaIndex = 0; - if (continuous && conversationState.currentConversationMessageList.length > 0) { - let mediaMsgs = conversationState.currentConversationMessageList.filter( - (m) => - [MessageContentType.Image, MessageContentType.Video].indexOf(m.messageContent.type) > -1, - ); - let msg; - for (let i = 0; i < mediaMsgs.length; i++) { - msg = mediaMsgs[i]; - if (msg.messageId === message.messageId) { - conversationState.previewMediaIndex = i; - } - conversationState.previewMediaItems.push({ - src: msg.messageContent.remotePath, - thumb: 'data:image/png;base64,' + msg.messageContent.thumbnail, - autoplay: true, - }); - } - } else { - conversationState.previewMediaIndex = 0; - conversationState.previewMediaItems.push({ - src: message.messageContent.remotePath, - thumb: 'data:image/png;base64,' + message.messageContent.thumbnail, - autoplay: true, - }); - } - }, - - previewCompositeMessage(compositeMessage, focusMessageUid) { - conversationState.previewMediaItems.length = 0; - conversationState.previewMediaIndex = 0; - - let mediaMsgs = compositeMessage.messageContent.messages.filter( - (m) => - [MessageContentType.Image, MessageContentType.Video].indexOf(m.messageContent.type) > -1, - ); - let msg; - for (let i = 0; i < mediaMsgs.length; i++) { - msg = mediaMsgs[i]; - if (eq(msg.messageUid, focusMessageUid)) { - conversationState.previewMediaIndex = i; - } - conversationState.previewMediaItems.push({ - src: msg.messageContent.remotePath, - thumb: 'data:image/png;base64,' + msg.messageContent.thumbnail, - autoplay: true, - }); - } - }, - - /** - * - * @param conversation - * @param {File | string} file html File 类型或者url,绝对路径只在electron里面生效 - * @return {Promise} - */ - async sendFile(conversation, file) { - if (file.size && file.size > 100 * 1024 * 1024) { - if (!wfc.isSupportBigFilesUpload() || conversation.type === ConversationType.SecretChat) { - console.log('file too big, and not support upload big file'); - return true; - } - } - let fileOrLocalPath = null; - let remotePath = null; - if (typeof file === 'string') { - if (!file.startsWith('http')) { - fileOrLocalPath = file; - } else { - remotePath = file; - } - - file = { - path: file, - name: file.substring(file.lastIndexOf('/') + 1), - }; - } else { - fileOrLocalPath = file; - } - let msg = new Message(); - msg.conversation = conversation; - - let mediaType = helper.getMediaType(file.name.split('.').slice(-1).pop()); - // todo other file type - let messageContentmediaType = { - pic: MessageContentMediaType.Image, - video: MessageContentMediaType.Video, - doc: MessageContentMediaType.File, - }[mediaType]; - - let messageContent; - switch (messageContentmediaType) { - case MessageContentMediaType.Image: - messageContent = new ImageMessageContent(fileOrLocalPath, remotePath); - break; - case MessageContentMediaType.Video: - messageContent = new VideoMessageContent(fileOrLocalPath, remotePath, '', 0); - break; - case MessageContentMediaType.File: - messageContent = new FileMessageContent(fileOrLocalPath, remotePath); - break; - default: - console.log('not support file'); - return false; - } - msg.messageContent = messageContent; - wfc.sendMessage( - msg, - (messageId) => { - msg.messageId = messageId; - console.log('sf, pr', messageId); - }, - (progress, total) => { - // console.log('sf p', msg.messageId, Math.ceil(progress / total * 100)) - let sm = conversationState.sendingMessages.find((e) => e.messageId === msg.messageId); - if (sm) { - sm.progress = progress; - sm.total = total; - } else { - conversationState.sendingMessages.push({ messageId: msg.messageId, progress, total }); - } - }, - (messageUid) => { - console.log('sf s', messageUid); - - conversationState.sendingMessages = conversationState.sendingMessages.filter( - (e) => e.messageId !== msg.messageId, - ); - }, - (error) => { - console.log('sf e', error); - - conversationState.sendingMessages = conversationState.sendingMessages.filter( - (e) => e.messageId !== msg.messageId, - ); - }, - ); - }, - - quoteMessage(message) { - conversationState.quotedMessage = message; - }, - - getConversationInfo(conversation) { - let info = wfc.getConversationInfo(conversation); - return this._patchConversationInfo(info, false); - }, - - /** - * 获取会话消息 - * @param {Conversation} conversation 会话 - * @param {number} fromIndex 其实消息的 messageId - * @param {boolean} before 获取其实消息之前,还是之后的消息 - * @param {string} withUser 过滤该用户发送或接收的消息 - * @param {function (Message[]) } callback 消息列表会回调 - */ - getMessages(conversation, fromIndex = 0, before = true, withUser = '', callback) { - wfc.getMessagesV2( - conversation, - fromIndex, - before, - 20, - withUser, - (msgs) => { - msgs = msgs.map((m) => this._patchMessage(m, 0)); - //callback && callback(msgs); - callback && callback(msgs); - }, - (err) => { - console.error('getMessageV2 error', err); - callback && callback([]); - }, - ); - }, - - getMessageInTypes(conversation, contentTypes, timestamp, before = true, withUser = '', callback) { - wfc.getMessagesByTimestampV2( - conversation, - contentTypes, - timestamp, - before, - 20, - withUser, - (msgs) => { - msgs = msgs.map((m) => this._patchMessage(m, 0)); - setTimeout(() => callback && callback(msgs), 200); - }, - (err) => { - callback && callback([]); - }, - ); - }, - - _loadCurrentConversationMessages() { - console.log('_loadCurrentConversationMessages'); - if (!conversationState.currentConversationInfo) { - return; - } - let conversation = conversationState.currentConversationInfo.conversation; - wfc.getMessagesV2( - conversation, - 0, - true, - 20, - '', - (msgs) => { - conversationState.currentConversationMessageList = msgs; - this._patchCurrentConversationMessages(); - if (msgs.length) { - conversationState.currentConversationOldestMessageId = msgs[0].messageId; - } - for (let i = 0; i < msgs.length; i++) { - if (gt(msgs[i].messageUid, 0)) { - conversationState.currentConversationOldestMessageUid = msgs[0].messageUid; - break; - } - } - console.log('_loadCurrentConversationMessages success', conversation, msgs); - }, - (err) => { - console.error('_loadCurrentConversationMessages error', err); - }, - ); - }, - - _patchCurrentConversationMessages() { - let lastTimestamp = 0; - let msgs = conversationState.currentConversationMessageList; - msgs.forEach((m) => { - this._patchMessage(m, lastTimestamp); - lastTimestamp = m.timestamp; - }); - }, - - _onloadConversationMessages(conversation, messages) { - if (!messages || messages.length === 0) { - return false; - } - let loadNewMsg = false; - let lastTimestamp = 0; - let newMsgs = []; - messages.forEach((m) => { - let index = conversationState.currentConversationMessageList.findIndex( - (cm) => cm.messageId === m.messageId, - ); - if (index === -1) { - this._patchMessage(m, lastTimestamp); - lastTimestamp = m.timestamp; - newMsgs.push(m); - loadNewMsg = true; - } - }); - conversationState.currentConversationMessageList = newMsgs.concat( - conversationState.currentConversationMessageList, - ); - return loadNewMsg; - }, - - loadConversationHistoryMessages(loadedCB, completeCB) { - if (!conversationState.currentConversationInfo) { - return; - } - let conversation = conversationState.currentConversationInfo.conversation; - console.log( - 'loadConversationHistoryMessage', - conversation, - conversationState.currentConversationOldestMessageId, - stringValue(conversationState.currentConversationOldestMessageUid), - ); - let loadRemoteHistoryMessageFunc = () => { - console.log( - 'loadRemoteConversationMessages request', - stringValue(conversationState.currentConversationOldestMessageUid), - ); - wfc.loadRemoteConversationMessages( - conversation, - [], - conversationState.currentConversationOldestMessageUid, - 20, - (msgs, hasMore) => { - console.log( - 'loadRemoteConversationMessages response', - stringValue(conversationState.currentConversationOldestMessageUid), - msgs.length, - ); - if (msgs.length === 0) { - // 拉回来的消息,本地全都有时,会走到这儿 - if (hasMore) { - loadedCB(); - } else { - completeCB(); - } - } else { - // 可能拉回来的时候,本地已经切换会话了 - if (conversation.equal(conversationState.currentConversationInfo.conversation)) { - conversationState.currentConversationOldestMessageUid = msgs[0].messageUid; - msgs = msgs.filter((m) => m.messageId !== 0); - this._onloadConversationMessages(conversation, msgs); - } - this._reloadConversation(conversation); - loadedCB(); - } - }, - (error) => { - completeCB(); - }, - ); - }; - - wfc.getMessagesV2( - conversation, - conversationState.currentConversationOldestMessageId, - true, - 20, - '', - (lmsgs) => { - if (lmsgs.length > 0) { - if (!conversation.equal(conversationState.currentConversationInfo.conversation)) { - return; - } - conversationState.currentConversationOldestMessageId = lmsgs[0].messageId; - if (gt(lmsgs[0].messageUid, 0)) { - conversationState.currentConversationOldestMessageUid = lmsgs[0].messageUid; - } - let loadNewMsg = this._onloadConversationMessages(conversation, lmsgs); - if (!loadNewMsg) { - loadRemoteHistoryMessageFunc(); - } else { - // loadedCB(); - setTimeout(() => loadedCB(), 200); - } - } else { - loadRemoteHistoryMessageFunc(); - } - }, - (err) => { - completeCB(); - }, - ); - }, - - setConversationTop(conversation, top) { - wfc.setConversationTop( - conversation, - top, - () => { - this._reloadConversation(conversation); - }, - (err) => { - console.log('setConversationTop error', err); - }, - ); - }, - - setConversationSilent(conversation, silent) { - wfc.setConversationSlient( - conversation, - silent, - () => { - this._reloadConversation(conversation); - }, - (err) => { - console.log('setConversationSilent error', err); - }, - ); - }, - - removeConversation(conversation) { - wfc.removeConversation(conversation, false); - if ( - conversationState.currentConversationInfo && - conversationState.currentConversationInfo.conversation.equal(conversation) - ) { - this.setCurrentConversationInfo(null); - } - conversationState.conversationInfoList = conversationState.conversationInfoList.filter( - (info) => !info.conversation.equal(conversation), - ); - }, - - getMessageById(messageId) { - let msg = wfc.getMessageById(messageId); - if (msg) { - this._patchMessage(msg, 0); - } - return msg; - }, - - getMessageByUid(messageUid) { - let msg = wfc.getMessageByUid(messageUid); - if (msg) { - this._patchMessage(msg, 0); - } - return msg; - }, - - _patchMessage(m, lastTimestamp = 0, userInfoMap) { - // TODO - // _from - // _showTime - if (m.conversation.type === ConversationType.Single) { - m._from = userInfoMap ? userInfoMap.get(m.from) : wfc.getUserInfo(m.from, false, ''); - } - if (!m._from) { - m._from = wfc.getUserInfo( - m.from, - false, - m.conversation.type === ConversationType.Group ? m.conversation.target : '', - ); - } - if (m.conversation.type === ConversationType.Group) { - m._from._displayName = wfc.getGroupMemberDisplayNameEx(m._from); - } else { - m._from._displayName = wfc.getUserDisplayNameEx(m._from); - } - if ( - numberValue(lastTimestamp) > 0 && - numberValue(m.timestamp) - numberValue(lastTimestamp) > 5 * 60 * 1000 - ) { - m._showTime = true; - } - m._timeStr = helper.timeFormat(m.timestamp); - - if (m.messageContent instanceof CompositeMessageContent) { - this._patchCompositeMessageContent(m.messageContent); - } - - // TODO 如果Im server支持备选网络,需要根据当前的网络情况,判断当前是处于主网络,还是备选网络,并动态修改媒体类消息的remotePath,不然可能会出现不能正常加载的情况 - // 如何判断是主网络,还是备选网络,这儿提供一种思路:分别通过主网络和备选网络测试访问im server的/api/version接口 - // 判断是主网络,还是备选网络,一般启动的时候,检测到网络网络变化的时候,在判断一次。 - // if(m.messageContent instanceof MediaMessageContent){ - // TODO 动态修改remotePath - // } - - return m; - }, - - _patchCompositeMessageContent(compositeMessageContent) { - let messages = compositeMessageContent.messages; - messages.forEach((m) => { - this._patchMessage(m, 0); - }); - }, - - _patchConversationInfo(info, patchLastMessage = true, userInfoMap, groupInfoMap) { - if (info.conversation.type === ConversationType.Single) { - info.conversation._target = userInfoMap - ? userInfoMap.get(info.conversation.target) - : wfc.getUserInfo(info.conversation.target, false); - if (info.conversation._target) { - info.conversation._target._displayName = wfc.getUserDisplayNameEx( - info.conversation._target, - ); - } - } else if (info.conversation.type === ConversationType.Group) { - info.conversation._target = groupInfoMap - ? groupInfoMap.get(info.conversation.target) - : wfc.getGroupInfo(info.conversation.target, false); - if (info.conversation._target) { - info.conversation._target._isFav = wfc.isFavGroup(info.conversation.target); - info.conversation._target._displayName = info.conversation._target.remark - ? info.conversation._target.remark - : info.conversation._target.name; - } - } else if (info.conversation.type === ConversationType.Channel) { - info.conversation._target = wfc.getChannelInfo(info.conversation.target, false); - info.conversation._target._displayName = info.conversation._target.name; - } else if (info.conversation.type === ConversationType.ChatRoom) { - wfc.getChatroomInfo( - info.conversation.target, - 0, - (chatRoomInfo) => { - info.conversation._target = chatRoomInfo; - }, - (err) => { - console.log('get chatRoomInfo error', err); - info.conversation._target = {}; - }, - ); - } - if (gt(info.timestamp, 0)) { - info._timeStr = helper.dateFormat(info.timestamp); - } else { - info._timeStr = ''; - } - - // 显示的时候,再 patch - if (info.lastMessage && info.lastMessage.conversation !== undefined && patchLastMessage) { - //this._patchMessage(info.lastMessage, 0, userInfoMap) - if (!info.lastMessage._from) { - info.lastMessage._from = undefined; - } - } - - if (info.unreadCount) { - info._unread = - info.unreadCount.unread + - info.unreadCount.unreadMention + - info.unreadCount.unreadMentionAll; - } - // if (info.conversation.equal(avenginekitproxy.conversation)) { - // info._isVoipOngoing = true; - // } else { - // info._isVoipOngoing = false; - // } - - return info; - }, - - addDownloadingMessage(messageId) { - conversationState.downloadingMessages.push({ - messageId: messageId, - progress: 0, - total: Number.MAX_SAFE_INTEGER, - }); - console.log('add downloading'); - }, - - isDownloadingMessage(messageId) { - return conversationState.downloadingMessages.findIndex((dm) => dm.messageId === messageId) >= 0; - }, - - isSendingMessage(messageId) { - return conversationState.sendingMessages.has(messageId); - }, - getDownloadingMessageStatus(messageId) { - return conversationState.downloadingMessages.find((dm) => dm.messageId === messageId); - }, - - getSendingStatus(messageId) { - return conversationState.sendingMessages.find((e) => e.messageId === messageId); - }, - - addFloatingConversation(conversation) { - conversationState.floatingConversations.push(conversation); - }, - - removeFloatingConversation(conversation) { - conversationState.floatingConversations = conversationState.floatingConversations.filter( - (c) => !c.equal(conversation), - ); - }, - - isConversationInCurrentWindow(conversation) { - if (miscState.isMainWindow) { - let index = conversationState.floatingConversations.findIndex((fc) => fc.equal(conversation)); - return index === -1; - } else { - return ( - conversationState.currentConversationInfo && - conversationState.currentConversationInfo.conversation.equal(conversation) - ); - } - }, - - // contact actions - - _loadSelfUserInfo() { - contactState.selfUserInfo = wfc.getUserInfo(wfc.getUserId(), false); - }, - - _loadFriendList() { - let friends = wfc.getMyFriendList(false); - let fileHelperIndex = friends.indexOf(Config.FILE_HELPER_ID); - if (fileHelperIndex < 0) { - friends.push(Config.FILE_HELPER_ID); - } - if (friends && friends.length > 0) { - let friendList = wfc.getUserInfos(friends, ''); - contactState.friendList = this._patchAndSortUserInfos(friendList, ''); - } - }, - - getUserOnlineState(userId) { - let userOnlineState = miscState.userOnlineStateMap.get(userId); - if (userOnlineState) { - return userOnlineState.desc(); - } - return ''; - }, - - _patchCurrentConversationOnlineStatus() { - let convInfo = conversationState.currentConversationInfo; - if (convInfo && convInfo.conversation.type === ConversationType.Single) { - conversationState.currentConversationInfo.conversation._targetOnlineStateDesc = - this.getUserOnlineState(convInfo.conversation.target); - } else { - //TODO - } - }, - _loadFriendRequest() { - let requests = wfc.getIncommingFriendRequest(); - - requests.sort((a, b) => numberValue(b.timestamp) - numberValue(a.timestamp)); - requests = requests.length >= 20 ? requests.slice(0, 20) : requests; - let uids = []; - requests.forEach((fr) => { - uids.push(fr.target); - }); - let userInfos = wfc.getUserInfos(uids, ''); - requests.forEach((fr) => { - let userInfo = userInfos.find((u) => u.uid === fr.target); - fr._target = userInfo; - }); - - contactState.friendRequestList = requests; - contactState.unreadFriendRequestCount = wfc.getUnreadFriendRequestCount(); - }, - - _patchAndSortUserInfos(userInfos, groupId = '', compareFn) { - userInfos = userInfos.map((u) => { - if (groupId) { - u._displayName = wfc.getGroupMemberDisplayNameEx(u); - } else { - u._displayName = wfc.getUserDisplayNameEx(u); - } - u._pinyin = pinyin(u._displayName, { style: 0 }).join('').trim().toLowerCase(); - let firstLetter = u._pinyin[0]; - if (firstLetter >= 'a' && firstLetter <= 'z') { - u.__sortPinyin = 'a' + u._pinyin; - } else { - u.__sortPinyin = 'z' + u._pinyin; - } - u._firstLetters = pinyin(u._displayName, { style: 4 }).join('').trim().toLowerCase(); - return u; - }); - if (compareFn) { - userInfos = userInfos.sort(compareFn); - } else { - userInfos = userInfos.sort((a, b) => a.__sortPinyin.localeCompare(b.__sortPinyin)); - } - - userInfos.forEach((u) => { - let uFirstLetter = u.__sortPinyin[1]; - if (uFirstLetter >= 'a' && uFirstLetter <= 'z') { - u._category = uFirstLetter; - } else { - u._category = '#'; - } - u._userOnlineStatusDesc = this.getUserOnlineState(u.uid); - }); - return userInfos; - }, - - _loadFavGroupList() { - contactState.favGroupList = wfc.getFavGroupList(); - }, - - _loadChannelList() { - let channelIds = wfc.getListenedChannels(); - if (channelIds) { - contactState.channelList = channelIds.map((channelId) => - wfc.getChannelInfo(channelId, false), - ); - contactState.channelList = contactState.channelList.filter((ch) => { - return !(ch instanceof NullChannelInfo); - }); - } - }, - _loadFavContactList() { - let favUserIds = wfc.getFavUsers(); - if (favUserIds.length > 0) { - contactState.favContactList = this.getUserInfos(favUserIds, ''); - contactState.favContactList.forEach((u) => { - u._category = '☆ 星标朋友'; - }); - } else { - contactState.favContactList = []; - } - }, - - reloadFavGroupList() { - this._loadFavGroupList(); - }, - - setCurrentFriendRequest(friendRequest) { - contactState.currentFriendRequest = friendRequest; - contactState.currentFriend = null; - contactState.currentOrganization = null; - contactState.currentGroup = null; - }, - - setCurrentFriend(friend) { - contactState.currentFriendRequest = null; - contactState.currentFriend = friend; - contactState.currentOrganization = null; - contactState.currentGroup = null; - }, - - setCurrentGroup(group) { - contactState.currentFriendRequest = null; - contactState.currentFriend = null; - contactState.currentOrganization = null; - contactState.currentGroup = group; - }, - - setCurrentOrganization(organization) { - contactState.currentFriendRequest = null; - contactState.currentFriend = null; - contactState.currentGroup = null; - // contactState.currentChannel = null; - contactState.currentOrganization = organization; - }, - - toggleGroupList() { - contactState.expandGroup = !contactState.expandGroup; - }, - - toggleFriendRequestList() { - contactState.expandFriendRequestList = !contactState.expandFriendRequestList; - }, - - toggleFriendList() { - contactState.expandFriendList = !contactState.expandFriendList; - }, - - setSearchQuery(query, options) { - searchState.query = query; - if (query) { - console.log('search', query, options); - if (options.contact) { - searchState.contactSearchResult = this.filterContact(query); - } - if (options.group) { - searchState.groupSearchResult = this.filterGroupConversation(query); - } - if (options.conversation) { - searchState.conversationSearchResult = this.searchConversation(query); - } - // searchState.messageSearchResult = this.searchMessage(query); - // 默认不搜索新用户 - if (options.user) { - this.searchUser(query); - } - } else { - searchState.contactSearchResult = []; - searchState.conversationSearchResult = []; - searchState.groupSearchResult = []; - searchState.messageSearchResult = []; - searchState.userSearchResult = []; - } - }, - - searchUser(query) { - console.log('search user', query); - wfc.searchUser( - query, - SearchType.General, - 0, - (keyword, userInfos) => { - console.log('search user result', query, userInfos); - if (searchState.query === keyword) { - searchState.userSearchResult = userInfos.filter((u) => !wfc.isMyFriend(u.uid)); - } - }, - (err) => { - console.log('search user error', query, err); - if (searchState.query === query) { - searchState.userSearchResult = []; - } - }, - ); - }, - - // TODO 到底是什么匹配了 - filterContact(query) { - let result = contactState.friendList.filter((u) => { - return ( - u._displayName.indexOf(query) > -1 || - u._firstLetters.indexOf(query.toLowerCase()) > -1 || - u._pinyin.indexOf(query.toLowerCase()) > -1 - ); - }); - - console.log('friend searchResult', result); - return result; - }, - - searchFiles(keyword, beforeMessageUid, successCB, failCB) { - if (!keyword) { - return; - } - wfc.searchFiles( - keyword, - null, - '', - beforeMessageUid, - 0, - 20, - (files) => { - this._patchFileRecords(files); - successCB && successCB(files); - }, - (errorCode) => { - console.log('search file error', errorCode); - failCB && failCB(errorCode); - }, - ); - }, - - filterUsers(users, filter) { - if (!users || !filter || !filter.trim()) { - return users; - } - let queryPinyin = pinyin(filter, { style: 0 }).join('').trim().toLowerCase(); - let result = users.filter((u) => { - return ( - u._displayName.indexOf(filter) > -1 || - u._displayName.indexOf(queryPinyin) > -1 || - u._pinyin.indexOf(filter) > -1 || - u._pinyin.indexOf(queryPinyin) > -1 || - u._firstLetters.indexOf(filter) > -1 || - u._firstLetters.indexOf(queryPinyin) > -1 - ); - }); - return result; - }, - - // TODO 匹配类型,是群名称匹配上了,还是群成员的名称匹配上了? - // 目前只搜索群名称 - filterFavGroup(query) { - console.log('to search group', contactState.favGroupList); - let queryPinyin = pinyin(query, { style: 0 }).join('').trim().toLowerCase(); - let result = contactState.favGroupList.filter((g) => { - let groupNamePinyin = pinyin(g.name, { style: 0 }).join('').trim().toLowerCase(); - return ( - g.name.indexOf(query) > -1 || - g.name.indexOf(queryPinyin) > -1 || - groupNamePinyin.indexOf(query) > -1 || - groupNamePinyin.indexOf(queryPinyin) > -1 - ); - }); - - console.log('group searchResult', result); - return result; - }, - - // TODO - filterConversation(query) { - return conversationState.conversationInfoList.filter((info) => { - let displayNamePinyin = pinyin(info.conversation._target._displayName, { style: 0 }) - .join('') - .trim() - .toLowerCase(); - let firstLetters = pinyin(info.conversation._target._displayName, { style: 4 }) - .join('') - .trim() - .toLowerCase(); - return ( - info.conversation._target._displayName.indexOf(query) > -1 || - displayNamePinyin.indexOf(query.toLowerCase()) > -1 || - firstLetters.indexOf(query) > -1 - ); - }); - }, - - filterGroupConversation(query) { - // query = query.toLowerCase(); - // let groups = conversationState.conversationInfoList.filter(info => info.conversation.type === ConversationType.Group).map(info => info.conversation._target); - // return groups.filter(groupInfo => { - // let namePinyin = pinyin(groupInfo.name, {style: 0}).join('').trim().toLowerCase(); - // let firstLetters = pinyin(groupInfo.name, {style: 4}).join('').trim().toLowerCase(); - // return groupInfo.name.indexOf(query) > -1 || namePinyin.indexOf(query) > -1 || firstLetters.indexOf(query) > -1 - // }) - let gsr = wfc.searchGroups(query); - return gsr.map((r) => r.groupInfo); - }, - - searchMessage(conversation, query) { - let msgs = wfc.searchMessage(conversation, query); - msgs = msgs.reverse(); - return msgs.map((m) => this._patchMessage(m, 0)); - }, - - searchMessageInTypes(conversation, contentTypes, query, offset) { - let msgs = wfc.searchMessageByTypes(conversation, query, contentTypes, true, 20, offset); - return msgs.map((m) => this._patchMessage(m, 0)); - }, - - searchConversation(query, types = [0, 1, 2], lines = [0, 1, 2]) { - let results = wfc.searchConversation(query, types, lines); - return results.map((r) => { - let info = wfc.getConversationInfo(r.conversation); - r._conversationInfo = this._patchConversationInfo(info, false); - return r; - }); - }, - - // pick actions - pickOrUnpickUser(user) { - let index = pickState.users.findIndex((u) => u.uid === user.uid); - if (index >= 0) { - pickState.users = pickState.users.filter((u) => user.uid !== u.uid); - } else { - pickState.users.push(user); - } - }, - - isUserPicked(user) { - let index = pickState.users.findIndex((u) => u.uid === user.uid); - return index >= 0; - }, - - // pick actions - pickOrUnpickOrganization(org) { - let index = pickState.organizations.findIndex((o) => o.id === org.id); - if (index >= 0) { - pickState.organizations = pickState.organizations.filter((o) => o.id !== org.id); - } else { - pickState.organizations.push(org); - } - }, - - isOrganizationPicked(org) { - let index = pickState.organizations.findIndex((o) => o.id === org.id); - return index >= 0; - }, - - pickOrUnpickConversation(conversation) { - let index = pickState.conversations.findIndex( - (c) => - conversation.target === c.target && - conversation.line === c.line && - conversation.type === c.type, - ); - if (index >= 0) { - pickState.conversations = pickState.conversations.filter( - (c) => - !( - conversation.target === c.target && - conversation.line === c.line && - conversation.type === c.type - ), - ); - } else { - pickState.conversations.push(conversation); - } - }, - - // misc actions - createConversation(users, successCB, failCB) { - if (users.length === 1) { - let conversation = new Conversation(ConversationType.Single, users[0].uid, 0); - this.setCurrentConversation(conversation); - successCB && successCB(conversation); - return; - } - - let groupName = contactState.selfUserInfo.displayName; - let groupMemberIds = []; - let groupMemberPortraits = [contactState.selfUserInfo.portrait]; - for (let i = 0; i < users.length; i++) { - groupMemberIds.push(users[i].uid); - if (i <= 3) { - groupName += '、' + users[i].displayName; - } - if (i < 8) { - groupMemberPortraits.push(users[i].portrait); - } - } - groupName = groupName.substr(0, groupName.length - 1); - - wfc.createGroup( - null, - GroupType.Restricted, - groupName, - null, - null, - groupMemberIds, - null, - [0], - null, - (groupId) => { - let conversation = new Conversation(ConversationType.Group, groupId, 0); - this.setCurrentConversation(conversation); - successCB && successCB(conversation); - }, - (error) => { - console.log('create group error', error); - failCB && failCB(error); - }, - ); - }, - - _loadUserLocalSettings() { - let userId = wfc.getUserId(); - // 默认允许通知 - let setting = getItem(userId + '-' + 'notification'); - miscState.enableNotification = setting === null || setting === '' || setting === '1'; - setting = getItem(userId + '-' + 'notificationDetail'); - miscState.enableNotificationMessageDetail = setting === null || setting === '1'; - }, - - setEnableNotification(enable) { - miscState.enableNotification = enable; - setItem(contactState.selfUserInfo.uid + '-' + 'notification', enable ? '1' : '0'); - }, - - setEnableNotificationDetail(enable) { - miscState.enableNotificationMessageDetail = enable; - setItem(contactState.selfUserInfo.uid + '-' + 'notificationDetail', enable ? '1' : '0'); - }, - - // clone一下,别影响到好友列表 - getUserInfos(userIds, groupId) { - let userInfos = wfc.getUserInfos(userIds, groupId); - let userInfosCloneCopy = userInfos.map((u) => Object.assign({}, u)); - return this._patchAndSortUserInfos(userInfosCloneCopy, groupId); - }, - - // clone一下,别影响到好友列表 - getGroupMemberUserInfos(groupId, includeSelf = true, sortByPinyin = false) { - let memberIds = wfc.getGroupMemberIds(groupId); - let userInfos = wfc.getUserInfos(memberIds, groupId); - if (!includeSelf) { - userInfos = userInfos.filter((u) => u.uid !== wfc.getUserId()); - } - let userInfosCloneCopy = userInfos.map((u) => Object.assign({}, u)); - if (sortByPinyin) { - return this._patchAndSortUserInfos(userInfosCloneCopy, groupId); - } else { - let compareFn = (u1, u2) => { - let index1 = memberIds.findIndex((id) => id === u1.uid); - let index2 = memberIds.findIndex((id) => id === u2.uid); - return index1 - index2; - }; - return this._patchAndSortUserInfos(userInfosCloneCopy, groupId, compareFn); - } - }, - - // clone一下,别影响到好友列表 - getConversationMemberUsrInfos(conversation) { - let userInfos = []; - if (conversation.type === 0) { - if (conversation.target !== contactState.selfUserInfo.uid) { - userInfos.push(wfc.getUserInfo(wfc.getUserId(), false)); - } - userInfos.push(wfc.getUserInfo(conversation.target, false)); - let userInfosCloneCopy = userInfos.map((u) => Object.assign({}, u)); - userInfos = this._patchAndSortUserInfos(userInfosCloneCopy, ''); - } else if (conversation.type === 1) { - userInfos = this.getGroupMemberUserInfos(conversation.target, true); - } - return userInfos; - }, - - getMyFileRecords(beforeUid, count, successCB, failCB) { - if (!successCB) { - return; - } - wfc.getMyFileRecords( - beforeUid, - 0, - count, - (fileRecords) => { - this._patchFileRecords(fileRecords); - successCB(fileRecords); - }, - failCB, - ); - }, - - getConversationFileRecords(conversation, fromUser, beforeMessageUid, count, successCB, failCB) { - wfc.getConversationFileRecords( - conversation, - fromUser, - beforeMessageUid, - 0, - count, - (fileRecords) => { - this._patchFileRecords(fileRecords); - successCB(fileRecords); - }, - failCB, - ); - }, - - deleteFriend(target) { - wfc.deleteFriend( - target, - () => { - let conv = new Conversation(ConversationType.Single, target, 0); - wfc.removeConversation(conv, true); - conversationState.conversationInfoList = conversationState.conversationInfoList.filter( - (info) => !info.conversation.equal(conv), - ); - }, - (err) => { - console.log('deleteFriend error', err); - }, - ); - }, - - _patchFileRecords(fileRecords) { - fileRecords.forEach((fileRecord) => { - let groupId = fileRecord.conversation.type === 1 ? fileRecord.conversation.target : ''; - if (groupId) { - fileRecord._userDisplayName = wfc.getGroupMemberDisplayName(groupId, fileRecord.userId); - } else { - fileRecord._userDisplayName = wfc.getUserDisplayName(fileRecord.userId); - } - let conversationInfo = wfc.getConversationInfo(fileRecord.conversation); - this._patchConversationInfo(conversationInfo, false); - - if (fileRecord.conversation.type === 0) { - fileRecord._conversationDisplayName = - '与' + conversationInfo.conversation._target._displayName + '的聊天'; - } else { - fileRecord._conversationDisplayName = conversationInfo.conversation._target._displayName; - } - if (fileRecord.name.indexOf(FileMessageContent.FILE_NAME_PREFIX) === 0) { - fileRecord.name = fileRecord.name.substring( - fileRecord.name.indexOf(FileMessageContent.FILE_NAME_PREFIX) + - FileMessageContent.FILE_NAME_PREFIX.length, - ); - } - fileRecord._timeStr = helper.dateFormat(fileRecord.timestamp); - fileRecord._sizeStr = helper.humanSize(fileRecord.size); - fileRecord._fileIconName = helper.getFiletypeIcon( - fileRecord.name.substring(fileRecord.name.lastIndexOf('.')), - ); - }); - }, - - clearConversationUnreadStatus(conversation) { - let info = wfc.getConversationInfo(conversation); - if ( - info && - info.unreadCount.unread + info.unreadCount.unreadMention + info.unreadCount.unreadMentionAll > - 0 - ) { - wfc.clearConversationUnreadStatus(conversation); - } - }, - clearAllUnreadStatus() { - wfc.clearAllUnreadStatus(); - conversationState.conversationInfoList.forEach((info) => { - info.unreadCount = new UnreadCount(); - }); - }, - notify(msg) { - let content = msg.messageContent; - let tip; - //Todo - if (msg.direction === 0 /* && !(type===0 && target===file_transfer_id)*/) { - return; - } - if (MessageConfig.getMessageContentPersitFlag(content.type) === PersistFlag.Persist_And_Count) { - if (msg.status !== MessageStatus.AllMentioned && msg.status !== MessageStatus.Mentioned) { - let silent = false; - for (const info of conversationState.conversationInfoList) { - if (info.conversation.equal(msg.conversation)) { - silent = info.isSilent; - break; - } - } - if (silent) { - return; - } - tip = '新消息来了'; - } else { - tip = '有人@你'; - } - - wfc.notify(tip, miscState.enableNotificationMessageDetail ? content.digest(msg) : ''); - } - }, - - _filterForwardMessageContent(message) { - let content = message.messageContent; - if (content instanceof CallStartMessageContent) { - content = new TextMessageContent(content.digest(message)); - } else if (content instanceof SoundMessageContent) { - content = new TextMessageContent(content.digest(message) + ' ' + content.duration + "''"); - } - return content; - }, -}; - -function _reset() { - conversationState._reset(); - contactState._reset(); - searchState._reset(); - pickState._reset(); - miscState._reset(); - - uni.reLaunch({ - url: '/pages/login/LoginPage', - }); -} - -export default store; diff --git a/src/wfc/av/engine/avengineCallback.js b/src/wfc/av/engine/avengineCallback.js deleted file mode 100644 index 7dd7c141..00000000 --- a/src/wfc/av/engine/avengineCallback.js +++ /dev/null @@ -1,78 +0,0 @@ -import ConversationType from "../../model/conversationType"; -import CallSession from "./callSession"; - -export class AvengineCallback { - innerAudioContext - - onReceiveCall(session) { - console.log('onReceiveCall', session) - if (typeof session === 'string') { - session = Object.assign(new CallSession(), JSON.parse(session)); - } - let url; - if (session.conversation.type === ConversationType.Single) { - url = '/pages/voip/Single' - } else if (session.conversation.type === ConversationType.Group) { - // TODO multi - url = '/pages/voip/Multi' - } - url += `?session=${JSON.stringify(session)}` - if (url) { - uni.navigateTo({ - url: url, - success: (res) => { - console.log(`navigate to ${url} success`) - res.eventChannel.emit('options', { - callSession: session, - }); - }, - fail: (e) => { - console.log(`navigate to ${url} error`, e) - } - }) - } - } - - shouldStartRing(isIncoming) { - self.innerAudioContext = uni.createInnerAudioContext(); - self.innerAudioContext.src = isIncoming ? '/static/audios/incoming_call_ring.mp3' : '/static/audios/outgoing_call_ring.mp3' - self.innerAudioContext.autoplay = true; - self.innerAudioContext.loop = true; - self.innerAudioContext.play() - self.innerAudioContext.onPlay(() => { - console.log('开始播放'); - }); - self.innerAudioContext.onError((e) => { - console.error('播放响铃失败', e) - }) - } - - shouldStopRing() { - console.log('shouldStopRing') - self.innerAudioContext.stop() - self.innerAudioContext.destroy() - self.innerAudioContext = null - } - - didCallEnded(reason, duration) { - // TODO toast - console.log('didCallEnded', reason, duration) - let pages = getCurrentPages(); - let singleVoipRoute = 'pages/voip/Single' - let multiVoipRoute = 'pages/voip/Multi' - let conferenceVoipRoute = 'pages/voip/conference/ConferencePage' - let curRoute = pages[pages.length - 1].route; - - if (curRoute === singleVoipRoute || curRoute === multiVoipRoute || curRoute === conferenceVoipRoute) { - uni.navigateBack({ - delta: 1, - fail: err => { - console.log('nav back to conversationView err', err); - } - }); - } - } -} - -let self = new AvengineCallback(); -export default self \ No newline at end of file diff --git a/src/wfc/av/engine/avengineKit.js b/src/wfc/av/engine/avengineKit.js deleted file mode 100644 index 86011401..00000000 --- a/src/wfc/av/engine/avengineKit.js +++ /dev/null @@ -1,464 +0,0 @@ -import avengineCallback from "./avengineCallback"; -import CallSession from './callSession'; -import ParticipantProfile from "./participantProfile"; -import ConversationType from "../../model/conversationType"; -import Config from "../../../config"; - -const avengineKitPlugin = Config.ENABLE_VOIP ? uni.requireNativePlugin("wf-uni-wfc-avclient") : null; - -export class AVEngineKit { - - avengineCallback = avengineCallback; - - sessionCallback; - - /** - 屏幕分享替换模式。为ture时,屏幕分享会替换摄像头的数据流。为false时,屏幕分享会再单独发起一路,不会影响摄像头的输入。 - */ - static SCREEN_SHARING_REPLACE_MODE = true; - - /** - * 判断 UIKit 原生插件是否集成 - * @return {boolean} - */ - isAVEngineKitEnable() { - return !!avengineKitPlugin; - } - - init() { - avengineKitPlugin.initAVEngineKit(); - // avengineKitPlugin.setScreenShareReplaceMode(AVEngineKit.SCREEN_SHARING_REPLACE_MODE); - plus.globalEvent.addEventListener("wfc-av-event", (e) => { - // console.debug('wfc-av-event', e); - self._handleNativeAVEngineEvent(e); - // this.log = [this.interpreter(e), ...this.log]; - }); - - plus.globalEvent.addEventListener("wfc-av-session-event", (e) => { - // console.debug('wfc-av-session-event', e); - self._handleNativeCallSessionEvent(e); - // this.log = [this.interpreter(e), ...this.log]; - }); - } - - _handleNativeAVEngineEvent(e) { - let args = e.args; - if (this.avengineCallback) { - let func = this.avengineCallback[args[0]] - //console.log('avengineCallback', func, ...args.slice(1)) - if (func) { - func(...args.slice(1)); - } - } else { - console.warn('_handleNativeAVEngineEvent avengineCallback is null', args) - } - } - - _handleNativeCallSessionEvent(e) { - let args = e.args; - if (args[0] !== 'didReportAudioVolume') { - console.log('_handleNativeCallSessionEvent', args) - } - if (args[0] === 'resumeVoipPage') { - let session = this.currentCallSession(); - if (session) { - this._resumeVoipPage(session); - } - return; - } - if (this.sessionCallback) { - let func = this.sessionCallback[args[0]] - if (func) { - // 类型不对时,特殊处理 - if (args[0] === 'didChangeState') { - func(Number(args[1])); - } else if (args[0] === 'didCallEndWithReason') { - func(Number(args[1])); - } else { - func(...args.slice(1)); - } - } - } else { - if(args[0] !== 'didReportAudioVolume'){ - console.warn('_handleNativeCallSessionEvent sessionCallback is null', args) - } - } - } - - _resumeVoipPage(session) { - console.log('_resumeVoipPage', session) - let url; - if (session.conference) { - url = '/pages/voip/conference/ConferencePage' - } else if (session.conversation.type === ConversationType.Single) { - url = '/pages/voip/Single' - } else if (session.conversation.type === ConversationType.Group) { - url = '/pages/voip/Multi' - } - url += `?session=${JSON.stringify(session)}` - if (url) { - uni.navigateTo({ - url: url, - success: (res) => { - console.log(`navigate to ${url} success`) - }, - fail: (e) => { - console.log(`navigate to ${url} error`, e) - } - }) - } - } - - setSessionCallback(cb) { - this.sessionCallback = cb; - } - - /** - * 发起单人音视频通话 - * @param {string} userId 用户 id - * @param {boolean} audioOnly 是否是音频通话 - * @return {CallSession} - */ - startSingleCall(userId, audioOnly) { - let sessionStr = avengineKitPlugin.startSingleCall(userId, audioOnly); - return !sessionStr ? null : Object.assign(new CallSession(), JSON.parse(sessionStr)); - } - - /** - * 发起群音视频通话 - * @param {string} groupId 群 id - * @param {[string]} participants 参与者 id,要求是群成员 - * @param {boolean} audioOnly 是否是音频通话 - * @return {CallSession} - */ - startMultiCall(groupId, participants, audioOnly) { - let sessionStr = avengineKitPlugin.startMultiCall(groupId, participants, audioOnly) - return !sessionStr ? null : Object.assign(new CallSession(), JSON.parse(sessionStr)); - } - - /** - * 开始会议 - * @param {string} callId 会议id - * @param {boolean} audioOnly 是否仅仅开启音频; true,音频会议;false,视频会议 - * @param {string} pin 入会pin码 - * @param {string} host 主持人用户id - * @param {string} title 会议标题 - * @param {string} desc 会议描述 - * @param {boolean} audience 其他人加入会议时,是否默认为观众;true,默认为观众;false,默认为互动者 - * @param {boolean} advance 是否为高级会议,当预计参与人员很多的时候,开需要开启超级会议 - * @param {boolean} record 是否开启服务端录制 - * @param {string} callExtra 通话附件信息,会议的所有参与者都能看到该附加信息 - * @return {CallSession} - */ - startConference(callId, audioOnly, pin, host, title, desc, audience, advance, record = false, callExtra = '') { - let sessionStr = avengineKitPlugin.startConference(callId, audioOnly, pin, host, title, desc, audience, advance, record, callExtra); - return !sessionStr ? null : Object.assign(new CallSession(), JSON.parse(sessionStr)); - } - - /** - * 加入会议 - * @param {string} callId 会议id - * @param {boolean} audioOnly 是否只开启音频 - * @param {string} pin 会议pin码 - * @param {string} host 会议主持人 - * @param {string} title 会议标题 - * @param {string} desc 会议描述 - * @param {boolean} audience 是否是以观众角色入会 - * @param {boolean} advance 是否是高级会议 - * @param {boolean} muteAudio 是否是静音加入会议 - * @param {boolean} muteVideo 是否是关闭摄像头加入会议 - * @param {string} callExtra 通话附加信息,会议的所有参与者都能看到该附加信息 - * @return {CallSession} - */ - joinConference(callId, audioOnly, pin, host, title, desc, audience, advance, muteAudio, muteVideo, callExtra = '') { - let sessionStr = avengineKitPlugin.joinConference(callId, audioOnly, pin, host, title, desc, audience, advance, muteAudio, muteVideo, callExtra); - return !sessionStr ? null : Object.assign(new CallSession(), JSON.parse(sessionStr)); - } - - /** - * 离开会议 - * @param {string} callId 会议id - * @param {boolean} destroyRoom 是否销毁会议,主持有效 - */ - leaveConference(callId, destroyRoom = false) { - avengineKitPlugin.leaveConference(callId, destroyRoom); - } - - /** - * 仅会议版有效 - * - * 将参与者踢出会议 - * - * @param {string} callId 会议 id - * @param userId - * @param successCB - * @param failCB - */ - kickoffParticipant(callId, userId, successCB, failCB) { - avengineKitPlugin.kickoffParticipant(callId, userId, () => { - successCB && successCB() - }, err => { - failCB && failCB(err) - }) - - } - - /** - * 仅会议版有效 - * 设置参与者的 videoType - * @param {string} callId 通话 id - * @param {string} userId 用户 id - * @param {boolean} screenSharing 是否是屏幕共享 - * @param {number} videoType 视频流类型,可选值参考{@link VideoType} - */ - setParticipantVideoType(callId, userId, screenSharing, videoType) { - console.log('setParticipantVideoType', userId, screenSharing, videoType) - avengineKitPlugin.setParticipantVideoType(callId, userId, screenSharing, videoType); - } - - /** - * 判断是否支持多人音视频通话 - * @return {boolean} - */ - isSupportMultiCall() { - return avengineKitPlugin.isSupportMultiCall(); - } - - /** - * 判断是否支持会议 - * @return {boolean} - */ - isSupportConference() { - return avengineKitPlugin.isSupportConference(); - } - - /** - * 设置视频通话时的视频属性 - * @param {number} profile 可选值参考{@link VideoProfile} - * @param {boolean} swapWidthHeight 是否交换宽高,默认不不用设置 - */ - setVideoProfile(profile, swapWidthHeight = false) { - avengineKitPlugin.setVideoProfile(profile, swapWidthHeight); - } - - /** - * 添加 ICE Server - * @param {string} url - * @param {string} name - * @param {string} password - */ - addICEServer(url, name, password) { - avengineKitPlugin.addICEServer(url, name, password) - } - - /** - * 获取当前通话会话 - * - * @@return {callSession} - */ - currentCallSession() { - let result = avengineKitPlugin.currentCallSession(); - if (!result) { - return null; - } - - return Object.assign(new CallSession(), JSON.parse(result)); - } - - /** - * 接听 - * @param {string} callId - * @param {boolean} audioOnly 是否是以语音方式接听 - */ - answerCall(callId, audioOnly) { - avengineKitPlugin.answerCall(callId, audioOnly); - } - - /** - * 挂断 - * @param {Object} callId 通话ID - */ - endCall(callId) { - avengineKitPlugin.endCall(callId); - } - - /** - * 仅 Android 端高级版音视频支持 - * 开启屏幕共享 - * @param {Object} callId 通话ID - */ - startScreenShare(callId) { - avengineKitPlugin.startScreenShare(callId); - } - - /** - * 仅 Android 端高级版音视频支持 - * 停止屏幕共享 - * @param {Object} callId 通话ID - */ - stopScreenShare(callId) { - avengineKitPlugin.stopScreenShare(callId); - } - - /** - * 仅 Android 端高级版音视频支持 - * 是否在进行屏幕共享 - * @param {Object} callId 通话ID - */ - isScreenSharing(callId) { - return avengineKitPlugin.isScreenSharing(callId); - } - - /** - * 关闭/开启摄像头 - * @param {string} callId 通话 id - * @param {boolean} mute 是否关闭摄像头 - */ - muteVideo(callId, mute) { - avengineKitPlugin.muteVideo(callId, mute) - } - - /** - * 关闭/开启麦克风 - * @param {string} callId 通话 id - * @param {boolean} mute 是否关闭麦克风 - * @return {boolean} 是否关闭成功 - */ - muteAudio(callId, mute) { - avengineKitPlugin.muteAudio(callId, mute); - } - - /** - * 会议时有效 - * 切换为观众 - * @param {string} callId 通话 id - * @param {boolean} audience 是否切换成观众 - * @return {boolean} 是否切换成功 - */ - switchAudience(callId, audience) { - return avengineKitPlugin.switchAudience(callId, audience); - } - - /** - * 将视频通话,降级到语音通话 - * @param {string} callId 通话 id - */ - downgrade2Voice(callId) { - avengineKitPlugin.downgrade2Voice(callId); - } - - /** - * 邀请新的通话成员 - * @param {string} callId 通话 id - * @param {[string]} userIds 新参与者 id 列表 - */ - inviteNewParticipant(callId, userIds) { - avengineKitPlugin.inviteNewParticipant(callId, userIds); - } - - /** - * 设置本地视频流容器 view - * @param {string} callId 通话 id - * @param {number} ref 容器 view 的 id - */ - setLocalVideoView(callId, ref) { - avengineKitPlugin.setLocalVideoView(callId, ref); - } - - /** - * 设置远程视频流容器 view - * @param {string} callId 通话 id - * @param {string} userId 用户 id - * @param {number} ref 容器 view 的 id - * @param {boolean} screenSharing 是否是屏幕共享 - */ - setRemoteVideoView(callId, userId, ref, screenSharing = false) { - avengineKitPlugin.setRemoteVideoView(callId, userId, screenSharing, ref); - } - - /** - * 获取除自己外,所有通话参与者的 {@link ParticipantProfile} - * @param {string} callId 通话 id - * @return {[ParticipantProfile]} - */ - getParticipantProfiles(callId) { - let str = avengineKitPlugin.getParticipantProfiles(callId) - if (!str) { - return []; - } - let profiles = []; - let ps = JSON.parse(str); - ps.map(p => { - profiles.push(Object.assign(new ParticipantProfile(), p)); - }); - return profiles; - } - - /** - * 获取某个通话参与者(可以是自己)的{@link ParticipantProfile} - * @param {string} callId 通话 id - * @param {string} userId 用户 id - * @param {boolean} screenSharing 是否是屏幕共享 - * @return {any| ParticipantProfile} - */ - getParticipantProfile(callId, userId, screenSharing) { - let str = avengineKitPlugin.getParticipantProfile(callId, userId, screenSharing); - if (!str) { - return null; - } - return Object.assign(new ParticipantProfile(), JSON.parse(str)) - } - - /** - * 获取自己的 {@link ParticipantProfile} - * @return {any|ParticipantProfile} - * @param {string} callId - */ - getMyProfile(callId) { - let str = avengineKitPlugin.getMyProfile(callId); - if (!str) { - return null; - } - return Object.assign(new ParticipantProfile(), JSON.parse(str)) - } - - - /** - * 检查是否允许显示悬浮窗 - * @return {boolean} - */ - checkOverlayPermission() { - return avengineKitPlugin.checkOverlayPermission(); - } - - /** - * 最小化 - * @param {string} callId - * @param {string} focusVideoUser 视频通话/会议时有效,表示悬浮窗显示那个用户的视频流 - * 最小化,显示悬浮窗 - */ - minimize(callId, focusVideoUser = '') { - avengineKitPlugin.minimize(callId, focusVideoUser); - this.sessionCallback = null; - } - - /** - * 打开或关闭扬声器 - * @param {string} callId 通话 id - * @param {boolean} speakerOn 是否打开扬声器 - */ - setSpeakerOn(callId, speakerOn) { - avengineKitPlugin.setSpeakerOn(callId, speakerOn); - } - - /** - * 切换摄像头 - * @param {string} callId - */ - switchCamera(callId) { - avengineKitPlugin.switchCamera(callId); - } -} - -const self = new AVEngineKit(); -export default self; diff --git a/src/wfc/av/engine/callEndReason.js b/src/wfc/av/engine/callEndReason.js deleted file mode 100644 index ed4e50ca..00000000 --- a/src/wfc/av/engine/callEndReason.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class CallEndReason { - static REASON_Unknown = 0; - static REASON_Busy = 1; - static REASON_SignalError = 2; - static REASON_Hangup = 3; - static REASON_MediaError = 4; - static REASON_RemoteHangup = 5; - static REASON_OpenCameraFailure = 6; - static REASON_Timeout = 7; - static REASON_AcceptByOtherClient = 8; - static REASON_AllLeft = 9; - static RemoteBusy = 10; - static RemoteTimeout = 11; - static RemoteNetworkError = 12; - static RoomDestroyed = 13; - static RoomNotExist = 14; - static RoomParticipantsFull = 15; - - static Interrupted = 16; - static RemoteInterrupted = 17; -} diff --git a/src/wfc/av/engine/callSession.js b/src/wfc/av/engine/callSession.js deleted file mode 100644 index 2e95d53b..00000000 --- a/src/wfc/av/engine/callSession.js +++ /dev/null @@ -1,61 +0,0 @@ -export default class CallSession { - //通话ID - callId; - title; - desc; - //通话的发起者,如果发起者离开,会重新选举出最早加入者为发起者 - initiator; - //邀请当前用户加入通话的用户 - inviter; - //通话状态 - state; - //开始时间 - startTime; - //接通时间 - connectedTime; - //结束时间 - endTime - //会话 - conversation; - //是否是音频 - audioOnly; - //通话结束原因 - endReason; - //是否是会议 - conference; - //是否是观众,仅当会议有效 - audience; - //是否是超级会议 - advanced; - //是否是多人通话 - multiCall; - // 是否关闭摄像头 - videoMuted; - // 是否关闭麦克风 - audioMuted; - - //call状态 - static kWFAVEngineStateIdle = 0; - static kWFAVEngineStateOutgoing = 1; - static kWFAVEngineStateIncomming = 2; - static kWFAVEngineStateConnecting = 3; - static kWFAVEngineStateConnected = 4; - - //通话结束原因 - static kWFAVCallEndReasonUnknown = 0; - static kWFAVCallEndReasonBusy = 1; - static kWFAVCallEndReasonSignalError = 2; - static kWFAVCallEndReasonHangup = 3; - static kWFAVCallEndReasonMediaError = 4; - static kWFAVCallEndReasonRemoteHangup = 5; - static kWFAVCallEndReasonOpenCameraFailure = 6; - static kWFAVCallEndReasonTimeout = 7; - static kWFAVCallEndReasonAcceptByOtherClient = 8; - static kWFAVCallEndReasonAllLeft = 9; - static kWFAVCallEndReasonRemoteBusy = 10; - static kWFAVCallEndReasonRemoteTimeout = 11; - static kWFAVCallEndReasonRemoteNetworkError = 12; - static kWFAVCallEndReasonRoomDestroyed = 13; - static kWFAVCallEndReasonRoomNotExist = 14; - static kWFAVCallEndReasonRoomParticipantsFull = 15; -} diff --git a/src/wfc/av/engine/callSessionCallback.js b/src/wfc/av/engine/callSessionCallback.js deleted file mode 100644 index 2c88247e..00000000 --- a/src/wfc/av/engine/callSessionCallback.js +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class CallSessionCallback { - - /** - * 自己挂断回调 - * @param {number} reason 挂断原因,参考{@link CallEndReason} - */ - didCallEndWithReason(reason) { - console.log('didCallEndWithReason', reason) - - } - - /** - * 可用来实现响铃相关 - * 1. outgoing -> connecting: 开始 -> 结束播放呼出铃声 - * 2. incoming -> connecting: 开始 -> 结束播放呼入铃声 - * 自己通话状态变化时调用 - * @param {CallState} state 状态 - */ - didChangeState(state) { - console.log('didChangeState', state) - } - - /** - * 新参与者加入回调 - * @param {string} userId 用户 id - * @param {boolean} screenSharing 是否是屏幕共享 - */ - didParticipantJoined(userId, screenSharing = false) { - console.log('didParticipantJoined', userId, screenSharing); - - } - - /** - * 参与者连接成功 - * @param {string} userId 用户 id - * @param {boolean} screenSharing 是否是屏幕共享 - */ - didParticipantConnected(userId, screenSharing = false) { - console.log('didParticipantConnected', userId, screenSharing) - } - - /** - * 参与者挂断回调 - * @param {string} userId 用户 id - * @param {CallEndReason} callEndReason 挂断原因 - * @param {boolean} screenSharing 是否是屏幕共享 - */ - didParticipantLeft(userId, callEndReason, screenSharing = false) { - console.log('didParticipantLeft', userId, callEndReason, screenSharing) - } - - /** - * 视频通话切换到语音通话回调 - * @param {boolean} audioOnly 目前都是 true - */ - didChangeMode(audioOnly) { - console.log('didChangeMode', audioOnly) - } - - /** - * 发起者变更回调,多人通话过程中,原始发起者退出通话,会触发选举新的发起者 - * @param {string} initiator 新的发起者 - */ - didChangeInitiator(initiator) { - console.log('didChangeInitiator', initiator) - } - - /** - * 本地音视频流创建成功回调 - * @param {boolean} screenSharing 是否是屏幕共享 - */ - didCreateLocalVideoTrack(screenSharing) { - console.log('didCreateLocalVideoTrack', screenSharing) - } - - /** - * 收到用户远程视频流回调 - * @param {String} userId 用户 id - * @param {boolean} screenSharing 是否是屏幕共享 - */ - didReceiveRemoteVideoTrack(userId, screenSharing) { - console.log('didReceiveRemoteVideoTrack', userId, screenSharing) - } - - /** - * 用户视频流被移除回调 - * @param {String} userId - */ - didRemoveRemoteVideoTrack(userId) { - console.log('didRemoveRemoteVideoTrack', userId) - - } - - didAudioDeviceChanged(audioDevice) { - console.log('didAudioDeviceChanged', audioDevice) - } - - didError(error) { - console.log('didError', error) - } - - didGetStats(reports) { - - } - - /** - * 单人、多人音视频通话时生效,会议时调用的是 {@link didMuteStateChanged} - * @param {string} userId - * @param {boolean} muted - */ - didVideoMuted(userId, muted) { - console.log('didVideoMuted', userId, muted) - } - - - /** - * 高级版生效,多人版调用的是 {@link didVideoMuted} - * @param {[string]} participants - */ - didMuteStateChanged(participants) { - console.log('didMuteStateChanged', participants) - } - - /** - * 当前用户发送媒体丢包回调 - * @param media 媒体类型,audio 或 video - * @param lostPacket 丢包数 - * @param {boolean} screenSharing - */ - didMediaLostPacket(media, lostPacket, screenSharing = false) { - console.log('didMediaLostPacket', media, lostPacket, screenSharing) - } - - /** - * 接收用户媒体丢包回调 - * @param userId 用户id - * @param media 媒体类型,audio 或 video - * @param lostPacket 丢包数 - * @param uplink 方向,true是对方丢的,false是己方丢的 - * @param {boolean} screenSharing - */ - didUserMediaLostPacket(userId, media, lostPacket, uplink, screenSharing = false) { - console.log('didUserMediaLostPacket', userId, media, lostPacket, uplink, screenSharing) - } - - /** - * 会议时有效 - * 听众或互动者角色变更回调 - * @param {string} userId - * @param {boolean} audience - * @param {boolean} screenSharing - */ - didChangeType(userId, audience, screenSharing = false) { - console.log('didChangeType', userId, audience, screenSharing) - } - - /** - * 音量回调 - * @param {string} userId 用户 id - * @param {number} volume 音量 - */ - didReportAudioVolume(userId, volume) { - - } - - /** - * 会议时有效 - * 听众和互动者角色切换回调 - * @param {boolean} audience 是否是切换为听众 - */ - onRequestChangeMode(audience) { - console.log('onRequestChangeMode', audience) - } -} diff --git a/src/wfc/av/engine/callState.js b/src/wfc/av/engine/callState.js deleted file mode 100644 index d2deb8b5..00000000 --- a/src/wfc/av/engine/callState.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class CallState { - static STATUS_IDLE = 0; - static STATUS_OUTGOING = 1; - static STATUS_INCOMING = 2; - static STATUS_CONNECTING = 3; - static STATUS_CONNECTED = 4; -} diff --git a/src/wfc/av/engine/participantProfile.js b/src/wfc/av/engine/participantProfile.js deleted file mode 100644 index def3ebd4..00000000 --- a/src/wfc/av/engine/participantProfile.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ -export default class ParticipantProfile { - userId; - callExtra; - state; - joinTime = 0; - acceptTime = 0; - audioMuted = false; - videoMuted = false; - audience = false; - screenSharing = false; -} diff --git a/src/wfc/av/engine/videoProfile.js b/src/wfc/av/engine/videoProfile.js deleted file mode 100644 index c0fce3f4..00000000 --- a/src/wfc/av/engine/videoProfile.js +++ /dev/null @@ -1,166 +0,0 @@ -/* -视频属性 (Profile) 定义 -视频属性 枚举值 分辨率(宽x高) 帧率(fps) 码率(kbps) -120P 0 160x120 15 120 -120P_3 2 120x120 15 100 -180P 10 320x180 15 280 -180P_3 12 180x180 15 200 -180P_4 13 240x180 15 240 -240P 20 320x240 15 360 -240P_3 22 240x240 15 280 -240P_4 24 424x240 15 400 -360P 30 640x360 15 800 -360P_3 32 360x360 15 520 -360P_4 33 640x360 30 1200 -360P_6 35 360x360 30 780 -360P_7 36 480x360 15 1000 -360P_8 37 480x360 30 1500 -480P 40 640x480 15 1000 -480P_3 42 480x480 15 800 -480P_4 43 640x480 30 1500 -480P_6 45 480x480 30 1200 -480P_8 47 848x480 15 1200 -480P_9 48 848x480 30 1800 -720P 50 1280x720 15 2400 -720P_3 52 1280x720 30 3699 -720P_5 54 960x720 15 1920 -720P_6 55 960x720 30 2880 -1080P 60 1920×1080 15 4200 -1080P_3 60 1920×1080 30 6300 -1080P_5 60 1920×1080 60 9560 - */ -export default class VideoProfile { - static VP120P = 0 - static VP120P_3 = 2 - static VP180P = 10 - static VP180P_3 = 12 - static VP180P_4 = 13 - static VP240P = 20 - static VP240P_3 = 22 - static VP240P_4 = 23 - static VP360P = 30 - static VP360P_3 = 32 - static VP360P_4 = 33 - static VP360P_6 = 35 - static VP360P_7 = 36 - static VP360P_8 = 37 - static VP480P = 40 - static VP480P_3 = 42 - static VP480P_4 = 43 - static VP480P_6 = 45 - static VP480P_8 = 47 - static VP480P_9 = 48 - - static VP720P = 50 - static VP720P_3 = 52 - static VP720P_5 = 54 - static VP720P_6 = 55 - - static VP1080P = 60 - static VP1080P_3 = 62 - static VP1080P_5 = 64 - - static VPDEFAULT = VideoProfile.VP360P - - width - height - fps - bitrate - - constructor (width, height, fps, bitrate) { - this.width = width - this.height = height - this.fps = fps - this.bitrate = bitrate - } - - static getVideoProfile (videoProfile) { - switch (videoProfile) { -// 120P 0 160x120 15 65 -// 120P_3 2 120x120 15 50 - case VideoProfile.VP120P: - return new VideoProfile(160, 120, 15, 120) - case VideoProfile.VP120P_3: - return new VideoProfile(120, 120, 15, 100) -// 180P 10 320x180 15 140 -// 180P_3 12 180x180 15 100 -// 180P_4 13 240x180 15 120 - case VideoProfile.VP180P: - return new VideoProfile(320, 180, 15, 280) - case VideoProfile.VP180P_3: - return new VideoProfile(180, 180, 15, 200) - case VideoProfile.VP180P_4: - return new VideoProfile(240, 180, 15, 240) -// 240P 20 320x240 15 200 -// 240P_3 22 240x240 15 140 -// 240P_4 24 424x240 15 220 - case VideoProfile.VP240P: - return new VideoProfile(320, 240, 15, 360) - case VideoProfile.VP240P_3: - return new VideoProfile(240, 240, 15, 240) - case VideoProfile.VP240P_4: - return new VideoProfile(424, 240, 15, 400) -// 360P 30 640x360 15 400 -// 360P_3 32 360x360 15 260 -// 360P_4 33 640x360 30 600 -// 360P_6 35 360x360 30 400 -// 360P_7 36 480x360 15 320 -// 360P_8 37 480x360 30 490 - case VideoProfile.VP360P: - return new VideoProfile(640, 360, 15, 800) - case VideoProfile.VP360P_3: - return new VideoProfile(360, 360, 15, 520) - case VideoProfile.VP360P_4: - return new VideoProfile(640, 360, 30, 1200) - case VideoProfile.VP360P_6: - return new VideoProfile(360, 360, 30, 780) - case VideoProfile.VP360P_7: - return new VideoProfile(480, 360, 15, 1000) - case VideoProfile.VP360P_8: - return new VideoProfile(480, 360, 30, 1500) -// 480P 40 640x480 15 500 -// 480P_3 42 480x480 15 400 -// 480P_4 43 640x480 30 750 -// 480P_6 45 480x480 30 600 -// 480P_8 47 848x480 15 610 -// 480P_9 48 848x480 30 930 - case VideoProfile.VP480P: - return new VideoProfile(640, 480, 15, 1000) - case VideoProfile.VP480P_3: - return new VideoProfile(480, 480, 15, 800) - case VideoProfile.VP480P_4: - return new VideoProfile(640, 480, 30, 1500) - case VideoProfile.VP480P_6: - return new VideoProfile(480, 480, 30, 1200) - case VideoProfile.VP480P_8: - return new VideoProfile(848, 480, 15, 1200) - case VideoProfile.VP480P_9: - return new VideoProfile(848, 480, 30, 1800) -// 720P 50 1280x720 15 1130 -// 720P_3 52 1280x720 30 1710 -// 720P_5 54 960x720 15 910 -// 720P_6 55 960x720 30 1380 - case VideoProfile.VP720P: - return new VideoProfile(1280, 720, 15, 2400) - case VideoProfile.VP720P_3: - return new VideoProfile(1280, 720, 30, 3600) - case VideoProfile.VP720P_5: - return new VideoProfile(960, 720, 15, 1920) - case VideoProfile.VP720P_6: - //1080P 60 1920 * 1080 15 2080 - //1080P_3 62 1920 * 1080 30 3150 - //1080P_5 64 1920 * 1080 60 4780 - return new VideoProfile(960, 720, 30, 2880) - case VideoProfile.VP1080P: - return new VideoProfile(1920, 1080, 15, 4200) - case VideoProfile.VP1080P_3: - return new VideoProfile(1920, 1080, 30, 6300) - case VideoProfile.VP1080P_5: - return new VideoProfile(1920, 1080, 60, 9560) - default: - return VideoProfile.getVideoProfile(VideoProfile.VPDEFAULT) - } - - } - -} diff --git a/src/wfc/av/engine/videoType.js b/src/wfc/av/engine/videoType.js deleted file mode 100644 index 65e02df2..00000000 --- a/src/wfc/av/engine/videoType.js +++ /dev/null @@ -1,8 +0,0 @@ -export default class VideoType{ - // 不订阅视频流 - static NONE = 0; - // 订阅大流 - static BIG_STREAM = 1; - // 订阅小流 - static SMALL_STREAM = 2; -} diff --git a/src/wfc/av/messages/addParticipantsMessageContent.js b/src/wfc/av/messages/addParticipantsMessageContent.js deleted file mode 100644 index 35cafeb5..00000000 --- a/src/wfc/av/messages/addParticipantsMessageContent.js +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import NotificationMessageContent from "../../messages/notification/notificationMessageContent"; -import MessageContentType from "../../messages/messageContentType"; -import wfc from "../../client/wfc" - -class ParticipantStatus { - userId; - acceptTime; - joinTime; - videoMuted; -} - -export default class AddParticipantsMessageContent extends NotificationMessageContent { - callId; - initiator; - pin; - participants; - existParticipants; - audioOnly; - autoAnswer; - clientId; - - constructor() { - super(MessageContentType.VOIP_CONTENT_TYPE_ADD_PARTICIPANT); - } - - formatNotification(message) { - let desc = ''; - if (this.fromSelf){ - desc = '您邀请' - }else { - desc = wfc.getGroupMemberDisplayName(message.conversation.target, this.initiator) - desc += "邀请" - } - - if (this.participants){ - this.participants.forEach(p => { - desc += ' '; - if (p === wfc.getUserId()){ - desc += '您'; - }else { - desc += wfc.getGroupMemberDisplayName(message.conversation.target, p); - } - }) - } - desc += ' 加入了通话'; - return desc; - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - - let obj = { - initiator: this.initiator, - audioOnly: this.audioOnly ? 1 : 0, - pin: this.pin, - participants: this.participants, - existParticipants: this.existParticipants, - autoAnswer: this.autoAnswer, - clientId: this.clientId, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - - let epids = this.existParticipants.map(p => p.userId); - let pushData = { - callId:this.callId, - audioOnly:this.audioOnly, - participants:this.participants, - existParticipants: epids, - } - payload.pushData = JSON.stringify(pushData); - return payload; - } - - decode(payload) { - super.decode(payload); - this.callId = payload.content; - let json = wfc.b64_to_utf8(payload.binaryContent); - let obj = JSON.parse(json); - this.initiator = obj.initiator; - this.audioOnly = obj.audioOnly === 1; - this.pin = obj.pin; - this.participants = obj.participants; - this.existParticipants = obj.existParticipants; - this.autoAnswer = obj.autoAnswer; - this.clientId = obj.clientId; - } -} diff --git a/src/wfc/av/messages/callAnswerMessageContent.js b/src/wfc/av/messages/callAnswerMessageContent.js deleted file mode 100644 index eb86993a..00000000 --- a/src/wfc/av/messages/callAnswerMessageContent.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from '../../messages/messageContent'; -import wfc from "../../client/wfc" -import {_patchToJavaLong, _reverseToJsLongString, longValue, stringValue} from '../../util/longUtil' -import MessageContentType from '../../messages/messageContentType'; - -export default class CallAnswerMessageContent extends MessageContent { - callId; - audioOnly; - inviteMessageUid; - - constructor(mentionedType = 0, mentionedTargets = []) { - super(MessageContentType.VOIP_CONTENT_TYPE_ACCEPT, mentionedType, mentionedTargets); - } - - digest() { - return ''; - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - - var obj; - if (this.audioOnly) { - obj = '1'; - } else { - obj = '0'; - } - payload.binaryContent = wfc.utf8_to_b64(obj); - let obj2 = { - u: stringValue(this.inviteMessageUid), - } - let str = JSON.stringify(obj2); - str = _patchToJavaLong(str, 'u'); - payload.extra = str; - return payload; - } - - decode(payload) { - super.decode(payload); - this.callId = payload.content; - let str = wfc.b64_to_utf8(payload.binaryContent); - - this.audioOnly = (str === '1'); - str = payload.extra; - if (str) { - str = _reverseToJsLongString(str, 'u'); - this.inviteMessageUid = longValue(JSON.parse(str).u); - } - } -} diff --git a/src/wfc/av/messages/callAnswerTMessageContent.js b/src/wfc/av/messages/callAnswerTMessageContent.js deleted file mode 100644 index 448365dd..00000000 --- a/src/wfc/av/messages/callAnswerTMessageContent.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from '../../messages/messageContent'; -import MessageContentType from '../../messages/messageContentType'; -import wfc from "../../client/wfc" - -export default class CallAnswerTMessageContent extends MessageContent { - callId; - audioOnly; - - constructor(mentionedType = 0, mentionedTargets = []) { - super(MessageContentType.VOIP_CONTENT_TYPE_ACCEPT_T, mentionedType, mentionedTargets); - } - - digest() { - return ''; - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - - var obj; - if (this.audioOnly) { - obj = '1'; - } else { - obj = '0'; - } - payload.binaryContent = wfc.utf8_to_b64(obj); - return payload; - }; - - decode(payload) { - super.decode(payload); - this.callId = payload.content; - let str = wfc.b64_to_utf8(payload.binaryContent); - - this.audioOnly = (str === '1'); - } -} diff --git a/src/wfc/av/messages/callByeMessageContent.js b/src/wfc/av/messages/callByeMessageContent.js deleted file mode 100644 index 72705b36..00000000 --- a/src/wfc/av/messages/callByeMessageContent.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from '../../messages/messageContent'; -import MessageContentType from '../../messages/messageContentType'; -import wfc from "../../client/wfc" -import {_patchToJavaLong, _reverseToJsLongString, longValue, stringValue} from "../../util/longUtil" - -export default class CallByeMessageContent extends MessageContent { - callId; - reason; - inviteMsgUid; - - constructor(mentionedType = 0, mentionedTargets = []) { - super(MessageContentType.VOIP_CONTENT_TYPE_END, mentionedType, mentionedTargets); - } - - digest() { - return ''; - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - let obj = { - r: this.reason, - u: this.inviteMsgUid ? stringValue(this.inviteMsgUid) : undefined, - }; - let str = JSON.stringify(obj) - str = _patchToJavaLong(str, 'u'); - payload.binaryContent = wfc.utf8_to_b64(str); - payload.pushData = str; - return payload; - } - - decode(payload) { - super.decode(payload); - this.callId = payload.content; - let str = wfc.b64_to_utf8(payload.binaryContent); - str = _reverseToJsLongString(str, 'u'); - let obj = JSON.parse(str); - this.reason = obj.r; - this.inviteMsgUid = obj.u ? longValue(obj.u) : undefined; - } -} diff --git a/src/wfc/av/messages/callModifyMessageContent.js b/src/wfc/av/messages/callModifyMessageContent.js deleted file mode 100644 index 10b1691e..00000000 --- a/src/wfc/av/messages/callModifyMessageContent.js +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from '../../messages/messageContent'; -import wfc from "../../client/wfc" -import MessageContentType from '../../messages/messageContentType'; - -export default class CallModifyMessageContent extends MessageContent { - callId; - audioOnly; - - constructor(mentionedType = 0, mentionedTargets = []) { - super(MessageContentType.VOIP_CONTENT_TYPE_MODIFY, mentionedType, mentionedTargets); - } - - digest() { - return ''; - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - - var obj; - if (this.audioOnly) { - obj = '1'; - } else { - obj = '0'; - } - payload.binaryContent = wfc.utf8_to_b64(obj); - return payload; - }; - - decode(payload) { - super.decode(payload); - this.callId = payload.content; - let str = wfc.b64_to_utf8(payload.binaryContent); - - this.audioOnly = (str === '1'); - } -} diff --git a/src/wfc/av/messages/callSignalMessageContent.js b/src/wfc/av/messages/callSignalMessageContent.js deleted file mode 100644 index 9cf920b5..00000000 --- a/src/wfc/av/messages/callSignalMessageContent.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from '../../messages/messageContent'; -import MessageContentType from '../../messages/messageContentType'; -import wfc from "../../client/wfc" - -export default class CallSignalMessageContent extends MessageContent { - callId; - payload; - - constructor(mentionedType = 0, mentionedTargets = []) { - super(MessageContentType.VOIP_CONTENT_TYPE_SIGNAL, mentionedType, mentionedTargets); - } - - digest() { - return ''; - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - payload.binaryContent = wfc.utf8_to_b64(this.payload); - return payload; - }; - - decode(payload) { - super.decode(payload); - this.callId = payload.content; - this.payload = wfc.b64_to_utf8(payload.binaryContent); - } -} diff --git a/src/wfc/av/messages/callStartMessageContent.js b/src/wfc/av/messages/callStartMessageContent.js deleted file mode 100644 index a5a72b63..00000000 --- a/src/wfc/av/messages/callStartMessageContent.js +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from '../../messages/messageContent'; -import MessageContentType from '../../messages/messageContentType'; -import wfc from "../../client/wfc" - -export default class CallStartMessageContent extends MessageContent { - callId; - targetIds = []; - connectTime; - endTime; - /** - * 0, UnKnown, - * 1, Busy, - * 2, SignalError, - * 3, Hangup, - * 4, MediaError, - * 5, RemoteHangup, - * 6, OpenCameraFailure, - * 7, Timeout, - * 8, AcceptByOtherClient - */ - status = 0; - audioOnly; - pin; - // 0,未知;1,多人版音视频;2,高级版音视频 - sdkType = 0; - - constructor(mentionedType = 0, mentionedTargets = []) { - super(MessageContentType.VOIP_CONTENT_TYPE_START, mentionedType, mentionedTargets); - } - - digest() { - if (this.audioOnly) { - return '[语音通话]'; - } else { - return '[视频通话]'; - } - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - payload.pushContent = '音视频通话邀请'; - - let obj = { - c: this.connectTime, - e: this.endTime, - s: this.status, - a: this.audioOnly ? 1 : 0, - ts: this.targetIds, - t: this.targetIds[0], - p: this.pin, - ty: this.sdkType - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - - let pushData = { - callId: this.callId, - audioOnly: this.audioOnly, - participants: this.targetIds, - } - payload.pushData = JSON.stringify(pushData); - - return payload; - } - - decode(payload) { - super.decode(payload); - this.callId = payload.content; - let json = wfc.b64_to_utf8(payload.binaryContent); - let obj = JSON.parse(json); - - this.connectTime = obj.c; - this.endTime = obj.e; - this.status = obj.s; - this.audioOnly = (obj.a === 1); - this.targetIds = obj.ts; - if (!this.targetIds) { - this.targetIds = [obj.t]; - } - this.pin = obj.p; - this.sdkType = obj.ty - } -} diff --git a/src/wfc/av/messages/conferenceChangeModeContent.js b/src/wfc/av/messages/conferenceChangeModeContent.js deleted file mode 100644 index 3a60a0f2..00000000 --- a/src/wfc/av/messages/conferenceChangeModeContent.js +++ /dev/null @@ -1,32 +0,0 @@ -import MessageContent from "../../messages/messageContent"; -import MessageContentType from "../../messages/messageContentType"; -import wfc from "../../client/wfc"; - -export default class ConferenceChangeModeContent extends MessageContent { - callId; - audience; - - constructor(callId, audience) { - super(MessageContentType.CONFERENCE_CONTENT_TYPE_CHANGE_MODE); - this.callId = callId; - this.audience = audience; - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - let obj = {'a': this.audience}; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)) - return payload; - } - - decode(payload) { - super.decode(payload); - this.callId = payload.content; - if (payload.binaryContent) { - let json = wfc.b64_to_utf8(payload.binaryContent); - let obj = JSON.parse(json); - this.audience = !!obj.a; - } - } -} diff --git a/src/wfc/av/messages/conferenceCommandMessageContent.js b/src/wfc/av/messages/conferenceCommandMessageContent.js deleted file mode 100644 index cbc1b85f..00000000 --- a/src/wfc/av/messages/conferenceCommandMessageContent.js +++ /dev/null @@ -1,99 +0,0 @@ -import MessageContent from "../../messages/messageContent"; -import MessageContentType from "../../messages/messageContentType"; -import wfc from "../../client/wfc"; - -export default class ConferenceCommandMessageContent extends MessageContent { - conferenceId; - commandType; - targetUserId; - boolValue; - - constructor(conferenceId, commandType, targetUserId, boolValue) { - super(MessageContentType.CONFERENCE_CONTENT_TYPE_COMMAND); - this.conferenceId = conferenceId; - this.commandType = commandType; - this.targetUserId = targetUserId; - this.boolValue = boolValue; - } - - - encode() { - let payload = super.encode(); - payload.content = this.conferenceId; - let obj = { - t: this.commandType, - u: this.targetUserId, - }; - if (this.boolValue) { - obj['b'] = this.boolValue; - } - - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - if (payload.binaryContent) { - let json = wfc.b64_to_utf8(payload.binaryContent); - let obj = JSON.parse(json); - this.commandType = obj.t; - this.boolValue = !!obj.b; - this.targetUserId = obj.u; - - } - this.conferenceId = payload.content; - } - - // TODO Object.freeze - static ConferenceCommandType = Object.freeze({ - //全体静音,只有主持人可以操作,结果写入conference profile中。带有参数是否允许成员自主解除静音。 - MUTE_ALL_AUDIO: 0, - //取消全体静音,只有主持人可以操作,结果写入conference profile中。带有参数是否邀请成员解除静音。 - CANCEL_MUTE_ALL_AUDIO: 1, - - //要求某个用户更改静音状态,只有主持人可以操作。带有参数是否静音/解除静音。 - REQUEST_MUTE_AUDIO: 2, - //拒绝UNMUTE要求。(如果同意不需要通知对方同意) - REJECT_UNMUTE_AUDIO_REQUEST: 3, - - //普通用户申请解除静音,带有参数是请求,还是取消请求。 - APPLY_UNMUTE_AUDIO: 4, - //管理员批准解除静音申请,带有参数是同意,还是拒绝申请。 - APPROVE_UNMUTE_AUDIO: 5, - //管理员批准全部解除静音申请,带有参数是同意,还是拒绝申请。 - APPROVE_ALL_UNMUTE_AUDIO: 6, - - //举手,带有参数是举手还是放下举手 - HANDUP: 7, - //主持人放下成员的举手 - PUT_HAND_DOWN: 8, - //主持人放下全体成员的举手 - PUT_ALL_HAND_DOWN: 9, - - //录制,有参数是录制还是取消录制 - RECORDING: 10, - - // 设置焦点用户 - FOCUS: 11, - // 取消设置焦点用户 - CANCEL_FOCUS: 12, - - //全体静音,只有主持人可以操作,结果写入conference profile中。带有参数是否允许成员自主解除静音。 - MUTE_ALL_VIDEO: 13, - //取消全体静音,只有主持人可以操作,结果写入conference profile中。带有参数是否邀请成员解除静音。 - CANCEL_MUTE_ALL_VIDEO: 14, - - //要求某个用户更改静音状态,只有主持人可以操作。带有参数是否静音/解除静音。 - REQUEST_MUTE_VIDEO: 15, - //拒绝UNMUTE要求。(如果同意不需要通知对方同意) - REJECT_UNMUTE_VIDEO_REQUEST: 16, - - //普通用户申请解除静音,带有参数是请求,还是取消请求。 - APPLY_UNMUTE_VIDEO: 17, - //管理员批准解除静音申请,带有参数是同意,还是拒绝申请。 - APPROVE_UNMUTE_VIDEO: 18, - //管理员批准全部解除静音申请,带有参数是同意,还是拒绝申请。 - APPROVE_ALL_UNMUTE_VIDEO: 19, - }); -} diff --git a/src/wfc/av/messages/conferenceInviteMessageContent.js b/src/wfc/av/messages/conferenceInviteMessageContent.js deleted file mode 100644 index c995e85f..00000000 --- a/src/wfc/av/messages/conferenceInviteMessageContent.js +++ /dev/null @@ -1,69 +0,0 @@ -import MessageContent from "../../messages/messageContent"; -import MessageContentType from "../../messages/messageContentType"; -import wfc from "../../client/wfc"; - -export default class ConferenceInviteMessageContent extends MessageContent { - callId; - host; - title; - desc; - - startTime; - audioOnly; - audience; - pin; - advanced; - - constructor(callId, host, title, desc, startTime, audioOnly, audience, advance, pin) { - super(MessageContentType.CONFERENCE_CONTENT_TYPE_INVITE); - this.callId = callId; - this.host = host; - this.title = title; - this.desc = desc; - this.startTime = startTime; - this.audioOnly = audioOnly; - this.audience = audience; - this.advanced = advance; - this.pin = pin; - } - - digest(message) { - let str = '[会议邀请]' - return str; - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - payload.pushContent = '会议邀请'; - let obj = { - h: this.host, - s: this.startTime, - t: this.title, - d: this.desc, - audience: this.audience ? 1 : 0, - advanced: this.advanced ? 1 : 0, - a: this.audioOnly ? 1 : 0, - p: this.pin, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - if (payload.binaryContent) { - let json = wfc.b64_to_utf8(payload.binaryContent); - let obj = JSON.parse(json); - this.host = obj.h; - this.startTime = obj.s; - this.title = obj.t; - this.desc = obj.d; - this.audience = obj.audience > 0; - this.advanced = obj.advanced > 0; - this.audioOnly = obj.a > 0; - this.pin = obj.p; - } - this.callId = payload.content; - } -} diff --git a/src/wfc/av/messages/conferenceKickoffMemberMessageContent.js b/src/wfc/av/messages/conferenceKickoffMemberMessageContent.js deleted file mode 100644 index 9a956691..00000000 --- a/src/wfc/av/messages/conferenceKickoffMemberMessageContent.js +++ /dev/null @@ -1,23 +0,0 @@ -import MessageContent from "../../messages/messageContent"; -import MessageContentType from "../../messages/messageContentType"; - -export default class ConferenceKickoffMemberMessageContent extends MessageContent { - callId; - - constructor(callId) { - super(MessageContentType.CONFERENCE_CONTENT_TYPE_KICKOFF_MEMBER) - this.callId = callId; - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - return payload; - } - - decode(payload) { - super.decode(payload); - this.callId = payload.content; - } - -} diff --git a/src/wfc/av/messages/joinCallRequestMessageContent.js b/src/wfc/av/messages/joinCallRequestMessageContent.js deleted file mode 100644 index 3d8ae873..00000000 --- a/src/wfc/av/messages/joinCallRequestMessageContent.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ -import MessageContent from '../../messages/messageContent'; -import wfc from "../../client/wfc" -import MessageContentType from '../../messages/messageContentType'; - -export default class JoinCallRequestMessageContent extends MessageContent { - callId; - clientId; - - constructor(callId, clientId) { - super(MessageContentType.VOIP_Join_Call_Request); - this.callId = callId; - this.clientId = clientId; - } - - digest() { - return ''; - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - - let obj = { - clientId: this.clientId - } - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - this.callId = payload.content; - let json = wfc.b64_to_utf8(payload.binaryContent); - let obj = JSON.parse(json); - this.clientId = obj.clientId; - } -} diff --git a/src/wfc/av/messages/multiCallOngoingMessageContent.js b/src/wfc/av/messages/multiCallOngoingMessageContent.js deleted file mode 100644 index d2eb8bc2..00000000 --- a/src/wfc/av/messages/multiCallOngoingMessageContent.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ -import MessageContent from '../../messages/messageContent'; -import wfc from "../../client/wfc" -import MessageContentType from '../../messages/messageContentType'; - -export default class MultiCallOngoingMessageContent extends MessageContent { - callId; - initiator; - audioOnly; - targets; - - constructor(callId, initiator, audioOnly, targets) { - super(MessageContentType.VOIP_Multi_Call_Ongoing); - this.callId = callId; - this.initiator = initiator; - this.audioOnly = audioOnly; - this.targets = targets; - } - - digest(message) { - let displayName = wfc.getGroupMemberDisplayName(message.conversation.target, this.initiator); - return displayName + ' 发起的通话'; - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - - let obj = { - initiator: this.initiator, - audioOnly: this.audioOnly ? 1 : 0, - targets: this.targets - } - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - this.callId = payload.content; - let json = wfc.b64_to_utf8(payload.binaryContent); - let obj = JSON.parse(json); - this.initiator = obj.initiator; - this.audioOnly = obj.audioOnly === 1; - this.targets = obj.targets; - } -} diff --git a/src/wfc/av/messages/muteVideoMessageContent.js b/src/wfc/av/messages/muteVideoMessageContent.js deleted file mode 100644 index ded0fd07..00000000 --- a/src/wfc/av/messages/muteVideoMessageContent.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import NotificationMessageContent from "../../messages/notification/notificationMessageContent"; -import MessageContentType from "../../messages/messageContentType"; -import wfc from "../../client/wfc" - -class ParticipantStatus { - userId; - acceptTime; - joinTime; - videoMuted; -} - -export default class MuteVideoMessageContent extends NotificationMessageContent { - callId; - videoMuted; - existParticipants; - - constructor(mentionedType = 0, mentionedTargets = []) { - super(MessageContentType.VOIP_CONTENT_TYPE_MUTE_VIDEO, mentionedType, mentionedTargets); - } - - formatNotification(message) { - // TODO - return "mute video"; - } - - encode() { - let payload = super.encode(); - payload.content = this.callId; - - let obj = { - existParticipants: this.existParticipants, - videoMuted: this.videoMuted, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - - return payload; - } - - decode(payload) { - super.decode(payload); - this.callId = payload.content; - let json = wfc.b64_to_utf8(payload.binaryContent); - let obj = JSON.parse(json); - this.existParticipants = obj.existParticipants; - this.videoMuted = obj.videoMuted; - } -} diff --git a/src/wfc/av/model/conferenceInfo.js b/src/wfc/av/model/conferenceInfo.js deleted file mode 100644 index e38b87e2..00000000 --- a/src/wfc/av/model/conferenceInfo.js +++ /dev/null @@ -1,23 +0,0 @@ -export default class ConferenceInfo { - conferenceId; - conferenceTitle; - password; - pin; - owner; - managers = []; - focus; - // 秒 - startTime; - endTime; - audience; - advance; - //@SerializedName("allowSwitchMode") - allowSwitchMode; // 其实更新allowTurnOnMic; - noJoinBeforeStart = false; - recording = false; - - - isAllowTurnOnMic() { - return this.allowSwitchMode; - } -} diff --git a/src/wfc/client/connectionStatus.js b/src/wfc/client/connectionStatus.js deleted file mode 100644 index 12cce450..00000000 --- a/src/wfc/client/connectionStatus.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class ConnectionStatus { - static ConnectionStatusTimeInconsistent = -9; - static ConnectionStatusNotLicensed = -8; - static ConnectionStatusKickedOff = -7; - static ConnectionStatusSecretKeyMismatch = -6; - static ConnectionStatusTokenIncorrect = -5; - static ConnectionStatusServerDown = -4; - static ConnectionStatusRejected = -3; - static ConnectionStatusLogout = -2; - static ConnectionStatusUnconnected = -1; - static ConnectionStatusConnecting = 0; - static ConnectionStatusConnected = 1; - static ConnectionStatusReceiveing = 2; - - static desc(status) { - const desc = { - '-9': '客户端和IM 服务端时间不同步,请进行时钟同步', - '-8': 'IM 服务未授权或已过期,专业版IM-Server 是绑定域名或者 ip 的,只能通过所绑定的域名去连接', - '-7': '被踢下线', - '-6': '会话密钥错误,请参考 https://docs.wildfirechat.cn/faq/general.html 第12个问题排查', - '-5': 'token错误', - '-4': 'IM Server服务无法连通,请检查服务器是否宕机或者网络出现问题', - '-3': '连接被服务器拒绝,一般是用户被封禁', - '-2': '退出登录', - '-1': '连接失败', - '0': '连接中', - '1': '连接成功,正常状态,所有业务可用', - '2': '正在同步信息,登录以后要先同步消息,可能同步数据量比较大,这时可以选择等待连接状态变为1时来统一更新UI' - }; - return desc[status] - } -} diff --git a/src/wfc/client/errorCode.js b/src/wfc/client/errorCode.js deleted file mode 100644 index 7de46ac4..00000000 --- a/src/wfc/client/errorCode.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class ErrorCode { - //server error code - static kEcServerSecrectKeyMismatch = 1; - static kEcServerInvalidData = 2; - static kEcServerServerError = 4; - static kEcServerNotModified = 5; - static kEcServerTokenIncorrect = 6; - static kConnectionStatusKickedOff = 7; - static kEcServerUserForbidden = 8; - static kEcServerNotInGroup = 9; - static kEcServerInvalidMessage = 10; - static kEcServerGroupAlreadyExist = 11; - static kEcServerPasswordIncorrect = 15; - static kEcServerFriendAlreadyRequested = 16; - static kEcServerFriendRequestOverFrequency = 17; - static kEcServerFriendRquestBlocked = 18; - static kEcServerFriendRequestOvertime = 19; - static kEcServerNotInChatroom = 20; - static kEcServerNotLicensed = 22; - static kEcServerTimeInconsistent = 30; - static kEcServerUserIsBlocked = 245; - static kEcServerInBlacklist = 246; - static kEcServerForbidden_send_msg = 247; - static kEcServerNotRight = 248; - static kEcServerTimeout = 249; - static kEcServerOverFrequence = 250; - static kEcServerInvalidParameter = 251; - static kEcServerNotExist = 253; - static kEcServerNotImplement = 254; - -} diff --git a/src/wfc/client/messageConfig.js b/src/wfc/client/messageConfig.js deleted file mode 100644 index 8324bf5f..00000000 --- a/src/wfc/client/messageConfig.js +++ /dev/null @@ -1,500 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import TextMessageContent from '../messages/textMessageContent' -import PTextMessageContent from '../messages/ptextMessageContent' -import ImageMessageContent from '../messages/imageMessageContent'; - -import MessageContentType from '../messages/messageContentType'; - -import PersistFlag from '../messages/persistFlag'; -import TipNotificationMessageContent from '../messages/notification/tipNotification'; -import UnknownMessageContent from '../messages/unknownMessageContent'; -import UnsupportMessageContent from '../messages/unsupportMessageConten'; -import ChangeGroupNameNotification from '../messages/notification/changeGroupNameNotification'; -import KickoffGroupMemberNotification from '../messages/notification/kickoffGroupMemberNotification'; -import KickoffGroupMemberVisiableNotification from '../messages/notification/kickoffGroupMemberVisiableNotification'; -import AddGroupMemberNotification from '../messages/notification/addGroupMemberNotification'; -import ChangeGroupPortraitNotification from '../messages/notification/changeGroupPortraitNotification'; -import CreateGroupNotification from '../messages/notification/createGroupNotification'; -import DismissGroupNotification from '../messages/notification/dismissGroupNotification'; -import ModifyGroupAliasNotification from '../messages/notification/modifyGroupAliasNotification'; -import ModifyGroupExtraNotification from '../messages/notification/modifyGroupExtraNotification'; -import ModifyGroupMemberExtraNotification from '../messages/notification/modifyGroupMemberExtraNotification'; -import QuitGroupNotification from '../messages/notification/quitGroupNotification'; -import QuitGroupVisiableNotification from '../messages/notification/quitGroupVisiableNotification'; -import TransferGroupOwnerNotification from '../messages/notification/transferGroupOwnerNotification'; -import FileMessageContent from '../messages/fileMessageContent'; -import VideoMessageContent from '../messages/videoMessageContent'; -import StickerMessageContent from '../messages/stickerMessageContent'; -import SoundMessageContent from '../messages/soundMessageContent'; -import TypingMessageContent from '../messages/typingMessageContent'; -import RecallMessageNotification from '../messages/notification/recallMessageNotification'; -import DeleteMessageContent from '../messages/deleteMessageContent'; - -import CallStartMessageContent from '../av/messages/callStartMessageContent'; -import CallAnswerMessageContent from '../av/messages/callAnswerMessageContent'; -import CallAnswerTMessageContent from '../av/messages/callAnswerTMessageContent'; -import CallByeMessageContent from '../av/messages/callByeMessageContent'; -import CallSignalMessageContent from '../av/messages/callSignalMessageContent'; -import CallModifyMessageContent from '../av/messages/callModifyMessageContent'; -import AddParticipantsMessageContent from "../av/messages/addParticipantsMessageContent"; -import MuteVideoMessageContent from "../av/messages/muteVideoMessageContent"; -import GroupJoinTypeNotificationContent from "../messages/notification/groupJoinTypeNotificationContent"; -import GroupMuteNotificationContent from "../messages/notification/groupMuteNotificationContent"; -import GroupSetManagerNotificationContent from "../messages/notification/groupSetManagerNotificationContent"; -import GroupPrivateChatNotificationContent from "../messages/notification/groupPrivateChatNotificationContent"; -import LocationMessageContent from "../messages/locationMessageContent"; -import MuteGroupMemberNotification from '../messages/notification/muteGroupMemberNotification' -import AllowGroupMemberNotification from '../messages/notification/allowGroupMemberNotification' -import CardMessageContent from '../messages/cardMessageContent' -import CompositeMessageContent from "../messages/compositeMessageContent"; -import ConferenceInviteMessageContent from "../av/messages/conferenceInviteMessageContent"; -import ConferenceChangeModeContent from "../av/messages/conferenceChangeModeContent"; -import ConferenceKickoffMemberMessageContent from "../av/messages/conferenceKickoffMemberMessageContent"; -import MarkUnreadMessageContent from "../messages/markUnreadMessageContent"; -import LinkMessageContent from "../messages/linkMessageContent"; -import FriendAddedNotification from "../messages/notification/friendAddedNotification"; -import FriendGreetingNotification from "../messages/notification/friendGreetingNotification"; -import PcLoginRequestMessageContent from "../messages/pcLoginRequestMessageContent"; -import StartSecretChatNotification from "../messages/notification/startSecretChatNotification"; -import MultiCallOngoingMessageContent from "../av/messages/multiCallOngoingMessageContent"; -import JoinCallRequestMessageContent from "../av/messages/joinCallRequestMessageContent"; -import RichNotificationMessageContent from "../messages/notification/richNotificationMessageContent"; -import ArticlesMessageContent from "../messages/articlesMessageContent"; -import ChannelMenuEventMessageContent from "../messages/channelMenuEventMessageContent"; -import EnterChannelChatMessageContent from "../messages/enterChannelChatMessageContent"; -import LeaveChannelChatMessageContent from "../messages/leaveChannelChatMessageContent"; -import ConferenceCommandMessageContent from "../av/messages/conferenceCommandMessageContent"; - -import StreamingTextGeneratingMessageContent from "../messages/streamingTextGeneratingMessageContent"; -import StreamingTextGeneratedMessageContent from "../messages/streamingTextGeneratedMessageContent"; - -export default class MessageConfig { - static getMessageContentClazz(type) { - for (const content of MessageConfig.MessageContents) { - if (content.type === type) { - if (content.contentClazz) { - return content.contentClazz; - } else { - return UnsupportMessageContent; - } - } - } - console.error(`message type ${type} is unknown`); - return UnknownMessageContent; - } - - static getMessageContentFlag(type) { - let flag = PersistFlag.No_Persist; - for (const content of MessageConfig.MessageContents) { - if (content.type === type) { - flag = content.flag; - } - } - return flag; - } - - static getMessageContentPersitFlag(type) { - for (const content of MessageConfig.MessageContents) { - if (content.type === type) { - return content.flag; - } - } - return -1; - } - - static getMessageContentType(messageContent) { - for (const content of MessageConfig.MessageContents) { - if (content.contentClazz && messageContent instanceof content.contentClazz) { - return content.type; - } - } - - return MessageContentType.Unknown; - } - - static registerMessageContent(name, flag, type, clazz) { - // TODO validate args - - MessageConfig.MessageContents.push( - { - name: name, - flag: flag, - type: type, - contentClazz: clazz, - } - ); - - } - - static MessageContents = [ - { - name: 'unknown', - flag: PersistFlag.Persist, - type: MessageContentType.Unknown, - contentClazz: UnknownMessageContent, - }, - { - name: 'text', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.Text, - contentClazz: TextMessageContent, - }, - { - name: 'ptext', - flag: PersistFlag.Persist, - type: MessageContentType.P_Text, - contentClazz: PTextMessageContent, - }, - { - name: 'voice', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.Voice, - contentClazz: SoundMessageContent, - }, - { - name: 'image', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.Image, - contentClazz: ImageMessageContent, - }, - { - name: 'location', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.Location, - contentClazz: LocationMessageContent, - }, - { - name: 'file', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.File, - contentClazz: FileMessageContent, - }, - { - name: 'video', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.Video, - contentClazz: VideoMessageContent, - }, - { - name: 'sticker', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.Sticker, - contentClazz: StickerMessageContent, - }, - { - name: 'link', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.Link, - contentClazz: LinkMessageContent, - }, - { - name: 'userCard', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.UserCard, - contentClazz: CardMessageContent, - }, - { - name: 'compositeMessage', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.Composite_Message, - contentClazz: CompositeMessageContent, - }, - { - name: 'tip', - flag: PersistFlag.Persist, - type: MessageContentType.Tip_Notification, - contentClazz: TipNotificationMessageContent, - }, - { - name: 'typing', - flag: PersistFlag.Transparent, - type: MessageContentType.Typing, - contentClazz: TypingMessageContent, - }, - { - name: 'friendGreeting', - flag: PersistFlag.Persist, - type: MessageContentType.Friend_Added, - contentClazz: FriendGreetingNotification, - }, - { - name: 'friendAdded', - flag: PersistFlag.Persist, - type: MessageContentType.Friend_Greeting, - contentClazz: FriendAddedNotification, - }, - { - name: 'addGroupMemberNotification', - flag: PersistFlag.Persist, - type: MessageContentType.AddGroupMember_Notification, - contentClazz: AddGroupMemberNotification, - }, - { - name: 'changeGroupNameNotification', - flag: PersistFlag.Persist, - type: MessageContentType.ChangeGroupName_Notification, - contentClazz: ChangeGroupNameNotification, - }, - { - name: 'changeGroupPortraitNotification', - flag: PersistFlag.Persist, - type: MessageContentType.ChangeGroupPortrait_Notification, - contentClazz: ChangeGroupPortraitNotification, - }, - { - name: 'createGroupNotification', - flag: PersistFlag.Persist, - type: MessageContentType.CreateGroup_Notification, - contentClazz: CreateGroupNotification, - }, - { - name: 'dismissGroupNotification', - flag: PersistFlag.Persist, - type: MessageContentType.DismissGroup_Notification, - contentClazz: DismissGroupNotification, - }, - { - name: 'kickoffGroupMemberNotification', - flag: PersistFlag.Persist, - type: MessageContentType.KickOffGroupMember_Notification, - contentClazz: KickoffGroupMemberNotification, - }, - { - name: 'kickoffGroupMemberVisiableNotification', - flag: PersistFlag.Persist, - type: MessageContentType.KickOffGroupMember_Visible_Notification, - contentClazz: KickoffGroupMemberVisiableNotification, - }, - { - name: 'modifyGroupAliasNotification', - flag: PersistFlag.Persist, - type: MessageContentType.ModifyGroupAlias_Notification, - contentClazz: ModifyGroupAliasNotification, - }, - { - name: 'modifyGroupExtraNotification', - flag: PersistFlag.Persist, - type: MessageContentType.ModifyGroupExtra_Notification, - contentClazz: ModifyGroupExtraNotification, - }, - { - name: 'modifyGroupMemberExtraNotification', - flag: PersistFlag.Persist, - type: MessageContentType.ModifyGroupMemberExtra_Notification, - contentClazz: ModifyGroupMemberExtraNotification, - }, - { - name: 'quitGroupNotification', - flag: PersistFlag.Persist, - type: MessageContentType.QuitGroup_Notification, - contentClazz: QuitGroupNotification, - }, - { - name: 'quitGroupVisiableNotification', - flag: PersistFlag.Persist, - type: MessageContentType.QuitGroup_Visible_Notification, - contentClazz: QuitGroupVisiableNotification, - }, - { - name: 'transferGroupOwnerNotification', - flag: PersistFlag.Persist, - type: MessageContentType.TransferGroupOwner_Notification, - contentClazz: TransferGroupOwnerNotification, - }, - { - name: 'groupJoinTypeNotificationContent', - flag: PersistFlag.Persist, - type: MessageContentType.ChangeJoinType_Notification, - contentClazz: GroupJoinTypeNotificationContent, - }, - { - name: 'groupMuteNotificationContent', - flag: PersistFlag.Persist, - type: MessageContentType.MuteGroup_Notification, - contentClazz: GroupMuteNotificationContent, - }, - { - name: 'groupPrivateChatNotificationContent', - flag: PersistFlag.Persist, - type: MessageContentType.ChangePrivateChat_Notification, - contentClazz: GroupPrivateChatNotificationContent, - }, - { - name: 'groupSetManagerNotificationContent', - flag: PersistFlag.Persist, - type: MessageContentType.SetGroupManager_Notification, - contentClazz: GroupSetManagerNotificationContent, - }, - { - name: 'muteGroupMemberNotificationContent', - flag: PersistFlag.Persist, - type: MessageContentType.MuteGroupMember_Notification, - contentClazz: MuteGroupMemberNotification, - }, - { - name: 'allowGroupMemberNotificationContent', - flag: PersistFlag.Persist, - type: MessageContentType.AllowGroupMember_Notification, - contentClazz: AllowGroupMemberNotification, - }, - { - name: 'recall', - flag: PersistFlag.Persist, - type: MessageContentType.RecallMessage_Notification, - contentClazz: RecallMessageNotification, - }, - { - name: 'delete', - flag: PersistFlag.No_Persist, - type: MessageContentType.DeleteMessage_Notification, - contentClazz: DeleteMessageContent, - }, - { - name: 'streamingTextGenerating', - flag: PersistFlag.Transparent, - type: MessageContentType.Streaming_Text_Generating, - contentClazz: StreamingTextGeneratingMessageContent, - }, - { - name: 'streamingTextGenerated', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.Streaming_Text_Generated, - contentClazz: StreamingTextGeneratedMessageContent, - }, - { - name: 'callStartMessageContent', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.VOIP_CONTENT_TYPE_START, - contentClazz: CallStartMessageContent, - }, - { - name: 'callAnswerMessageContent', - flag: PersistFlag.No_Persist, - type: MessageContentType.VOIP_CONTENT_TYPE_ACCEPT, - contentClazz: CallAnswerMessageContent, - }, - { - name: 'callAnswerTMessageContent', - flag: PersistFlag.Transparent, - type: MessageContentType.VOIP_CONTENT_TYPE_ACCEPT_T, - contentClazz: CallAnswerTMessageContent, - }, - { - name: 'callByeMessageContent', - flag: PersistFlag.No_Persist, - type: MessageContentType.VOIP_CONTENT_TYPE_END, - contentClazz: CallByeMessageContent, - }, - { - name: 'callSignalMessageContent', - flag: PersistFlag.Transparent, - type: MessageContentType.VOIP_CONTENT_TYPE_SIGNAL, - contentClazz: CallSignalMessageContent, - }, - { - name: 'callModifyMessageContent', - flag: PersistFlag.No_Persist, - type: MessageContentType.VOIP_CONTENT_TYPE_MODIFY, - contentClazz: CallModifyMessageContent, - }, - { - name: 'callAddParticipant', - flag: PersistFlag.Persist, - type: MessageContentType.VOIP_CONTENT_TYPE_ADD_PARTICIPANT, - contentClazz: AddParticipantsMessageContent, - }, - { - name: 'callMuteVideo', - flag: PersistFlag.No_Persist, - type: MessageContentType.VOIP_CONTENT_TYPE_MUTE_VIDEO, - contentClazz: MuteVideoMessageContent, - }, - { - name: 'conferenceInvite', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.CONFERENCE_CONTENT_TYPE_INVITE, - contentClazz: ConferenceInviteMessageContent, - }, - { - name: 'conferenceChangeMode', - flag: PersistFlag.Transparent, - type: MessageContentType.CONFERENCE_CONTENT_TYPE_CHANGE_MODE, - contentClazz: ConferenceChangeModeContent, - }, - { - name: 'conferenceKickoffMember', - flag: PersistFlag.Transparent, - type: MessageContentType.CONFERENCE_CONTENT_TYPE_KICKOFF_MEMBER, - contentClazz: ConferenceKickoffMemberMessageContent, - }, - { - name: 'multiCallOngoing', - flag: PersistFlag.Transparent, - type: MessageContentType.VOIP_Multi_Call_Ongoing, - contentClazz: MultiCallOngoingMessageContent, - }, - { - name: 'joinCallRequest', - flag: PersistFlag.Transparent, - type: MessageContentType.VOIP_Join_Call_Request, - contentClazz: JoinCallRequestMessageContent, - }, - { - name: 'markUnreadMessage', - flag: PersistFlag.No_Persist, - type: MessageContentType.Mark_Unread_Sync, - contentClazz: MarkUnreadMessageContent, - }, - { - name: 'pcLoginRequest', - flag: PersistFlag.No_Persist, - type: MessageContentType.PC_Login_Request, - contentClazz: PcLoginRequestMessageContent, - }, - { - name: 'startSecretChat', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.StartSecretChat_Notification, - contentClazz: StartSecretChatNotification, - }, - { - name: 'richNotification', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.Rich_Notification, - contentClazz: RichNotificationMessageContent, - }, - { - name: 'articlesMessageContent', - flag: PersistFlag.Persist_And_Count, - type: MessageContentType.Articles, - contentClazz: ArticlesMessageContent, - }, - { - name: 'channelMenuEventMessageContent', - flag: PersistFlag.Transparent, - type: MessageContentType.Channel_Menu_Event, - contentClazz: ChannelMenuEventMessageContent, - }, - { - name: 'enterChannelChatMessageContent', - flag: PersistFlag.Transparent, - type: MessageContentType.Enter_Channel_Chat, - contentClazz: EnterChannelChatMessageContent, - }, - { - name: 'leaveChannelChatMessageContent', - flag: PersistFlag.Transparent, - type: MessageContentType.Leave_Channel_Chat, - contentClazz: LeaveChannelChatMessageContent, - }, - { - name: 'conferenceCommandMessageContent', - flag: PersistFlag.Transparent, - type: MessageContentType.CONFERENCE_CONTENT_TYPE_COMMAND, - contentClazz: ConferenceCommandMessageContent, - } - ]; -} diff --git a/src/wfc/client/userSettingScope.js b/src/wfc/client/userSettingScope.js deleted file mode 100644 index 6652ee77..00000000 --- a/src/wfc/client/userSettingScope.js +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class UserSettingScope { - //不能直接使用,调用setConversation:silent:方法会使用到此值。 - static ConversationSilent = 1; - static GlobalSilent = 2; - //不能直接使用,调用setConversation:top:方法会使用到此值。 - static ConversationTop = 3; - static HiddenNotificationDetail = 4; - static GroupHideNickname = 5; - static FavoriteGroup = 6; - //不能直接使用,协议栈内会使用此值 - static Conversation_Sync = 7; - //不能直接使用,协议栈内会使用此值 - static My_Channel = 8; - //不能直接使用,协议栈内会使用此值 - static Listened_Channel = 9; - static PCOnline = 10; - static UserSettingConversationReaded = 11; - static WebOnline = 12; - static DisableReceipt = 13; - static FavoriteUser = 14; - static MuteWhenPCOnline = 15; - static LinesReaded = 16; - static NoDisturbing = 17; - static ConversationClearMessage = 18; - static ConversationDraft = 19; - static DisableSyncDraft = 20; - static VoipSilent = 21; - static PttReserved = 22; - static CustomState = 23; - static DisableSecretChat = 24; - static PttSilent = 25; - static GroupRemark = 26; - - // 不能直接使用,协议栈内部会使用此致 - static Privacy_Searchable = 27; - - // 不能直接使用,协议栈内部会使用此致 - static AddFriend_NoVerify = 28; - // 用户自定义的scope需从1000开始,以防冲突 - static kUserSettingCustomBegin = 1000; -} diff --git a/src/wfc/client/wfc.js b/src/wfc/client/wfc.js deleted file mode 100644 index 60d9fe96..00000000 --- a/src/wfc/client/wfc.js +++ /dev/null @@ -1,2234 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import {EventEmitter} from 'events'; -import {atob, btoa} from '../util/base64.min.js'; -import Long from 'long'; - -import impl from '../proto/proto.min'; -import Config from "../../config"; -import EventType from "./wfcEvent"; -import ConnectionStatus from "./connectionStatus"; -import NullUserInfo from "../model/nullUserInfo"; -import UserSettingScope from "./userSettingScope"; -import PcOnlineInfo from "../model/pcOnlineInfo"; - -//import avenginekit from "../av/engine/avenginekitproxy"; - - -export class WfcManager { - - /** - * 事件通知,{@link EventType}中定义的事件,都会采用本{@link eventEmitter} 通知 - * @type {module:events.internal.EventEmitter} - */ - eventEmitter = new EventEmitter(); - - constructor() { - impl.eventEmitter = { - emit: (ev, ...args) => { - if (ev === EventType.ConnectionStatusChanged || ev === EventType.UserOnlineEvent) { - self.eventEmitter.emit(ev, ...args) - } else { - if (impl.connectionStatus === ConnectionStatus.ConnectionStatusConnected) { - self.eventEmitter.emit(ev, ...args) - } else { - // ignore - } - } - } - }; - } - - /** - * 初始化,请参考本demo的用法 - * @param {[]} args,pc 时,传入[node实例]; web 时,可以传入Config配置对象,配置项,请参考{@link Config} - */ - init(args = []) { - console.log('wfc init'); - impl.init(args); - //avenginekit.setup(self); - //self.setProxyInfo("", "192.168.1.80", 1080, "", ""); - console.log('wfc init end') - } - - /** - * 注册新的自定义消息 - * - * @param {string} name - * @param {number} flag 用来标识本消息是否需要存储、计数等,{@link PersistFlag} - * @param {number} type 消息类型,{@link MessageContentType} - * @param {class} clazz 消息对应的class - */ - registerMessageContent(name, flag, type, clazz) { - impl.registerMessageContent(name, flag, type, clazz); - } - - /** - * 获取clientId,获取用户token时,一定要通过调用此方法获取clientId,否则会连接失败。 - * @returns {string} clientId - */ - getClientId() { - return impl.getClientId(); - } - - /* - * 启用国密加密。注意需要服务器端同步开启国密配置 - */ - useSM4() { - impl.useSM4(); - } - - /** - * 连接服务器 - * @param {string} userId 用户id - * @param {string} token 用户token,生成token时,所使用的clientId,一定要通过{@link getClientId}获取 - * @return {number} 返回上一次活动时间。如果间隔时间较长,可以加个第一次登录的等待提示界面,在等待时同步所有的用户信息/群组信息/频道信息等。 - */ - connect(userId, token) { - return impl.connect(userId, token); - } - - /** - * 设置代理,只支持socks5代理 - * - * @param {String} host 代理host,host和ip必须至少有一个。 - * @param {String} ip 代理IP,host和ip必须至少有一个。 - * @param {number} port 代理端口 - * @param {String} username username - * @param {String} password password - */ - setProxyInfo(host, ip, port, username, password) { - impl.setProxyInfo(host, ip, port, username, password); - } - - /** - * 设置第三方推送设备token - * @param {number} pushType 推送类型,0-5 移动端已经使用了。 - * @param {String} token 设备token - */ - setDeviceToken(pushType, token) { - impl.setDeviceToken(pushType, token); - } - - - /** - * 断开连接 - * @param {boolean} disablePush 是否禁用推送,在cleanSession为true时无意义 - * @param {boolean} clearSession 是否清除会话 session,清除之后,所有之前的会话信息会被删除 - */ - disconnect(disablePush = false, clearSession = false) { - impl.disconnect(disablePush, clearSession); - } - - setPackageName(packageName) { - impl.setPackageName(packageName); - } - - - /** - * 获取当前用户的id - * @returns {string} 当前用户的id - */ - getUserId() { - return impl.getUserId(); - } - - /** - * 服务器时间和本地时间的差值 - * @returns {number} 服务器时间和本地时间的差值 - */ - getServerDeltaTime() { - return impl.getServerDeltaTime(); - } - - /** - * 截图, - * @returns {string} 成功返回'done',同时,图片保存到了系统剪贴板 - */ - screenShot() { - return impl.screenShot(); - } - - /** - * 是否成功登录 - * @returns {boolean} - */ - isLogin() { - return impl.isLogin(); - } - - /** - * 获取连接状态 - * @returns {number} 连接状态,参考{@link ConnectionStatus} - */ - getConnectionStatus() { - return impl.getConnectionStatus(); - } - - /** - * 设置网络策略,仅专业版支持 - * @param {int} strategy 网络策略。0 是自动选择;1 选择主网络;2选择备用网络 - * - */ - setBackupAddressStrategy(strategy) { - impl.setBackupAddressStrategy(strategy); - } - - /** - * 设置备选网络信息,仅专业版支持 - * @param {String} backupHost 备选网络主机地址 - * @param {int} backupPort 备选网络主机端口 - */ - setBackupAddress(backupHost, backupPort) { - impl.setBackupAddress(backupHost, backupPort); - } - - /** - * 设置协议栈短连接UA。 - * - * @param {string} userAgent 协议栈短连接使用的UA - */ - setProtoUserAgent(userAgent) { - impl.setProtoUserAgent(userAgent); - } - - /** - * 添加协议栈短连接自定义Header - * - * @param {string} header 协议栈短连接使用的UA - * @param {string} value 协议栈短连接使用的UA - */ - addHttpHeader(header, value) { - impl.addHttpHeader(header, value) - } - - /** - * 设备从睡眠中恢复 - */ - onAppResume() { - impl.onAppResume(); - } - - /** - * 设备进入睡眠状态 - */ - onAppSuspend() { - impl.onAppSuspend(); - } - - /** - * 已废弃,请使用{@link getFavGroupList} - * 获取我保存到通讯录的群组信息列表 - * @returns {[GroupInfo]} 参考{@link GroupInfo} - */ - getMyGroupList() { - return impl.getMyGroupList(); - } - - /** - * 获取我保存到通讯录的群组信息列表 - * @returns {[GroupInfo]} 参考{@link GroupInfo} - */ - getFavGroupList() { - let groupInfos = impl.getMyGroupList(); - groupInfos.map(info => { - if (!info.portrait) { - info.portrait = this.defaultGroupPortrait(info); - } - return info; - }) - return groupInfos; - } - - /** - * 获取用户的displayName - * @param {string} userId 用户id - * @returns {string} 用户displayName - */ - getUserDisplayName(userId) { - let userInfo = this.getUserInfo(userId, false); - if (!userInfo) { - return '<' + userId + '>'; - } - return userInfo.friendAlias ? userInfo.friendAlias : (userInfo.displayName ? userInfo.displayName : '<' + userId + '>'); - } - - /** - * 获取用户在群里面的displayName - * @param {string} groupId 群id - * @param {string} userId 用户id - * @returns {string} 用户在群里面的displayName - */ - getGroupMemberDisplayName(groupId, userId) { - let userInfo = this.getUserInfo(userId, false, groupId); - if (!userInfo) { - return '<' + userId + '>'; - } - - return userInfo.groupAlias ? userInfo.groupAlias : (userInfo.friendAlias ? userInfo.friendAlias : (userInfo.displayName ? userInfo.displayName : '<' + userId + '>')) - } - - getUserDisplayNameEx(userInfo) { - return userInfo.friendAlias ? userInfo.friendAlias : (userInfo.displayName ? userInfo.displayName : '<' + userInfo.uid + '>'); - } - - getGroupMemberDisplayNameEx(userInfo) { - return userInfo.groupAlias ? userInfo.groupAlias : (userInfo.friendAlias ? userInfo.friendAlias : (userInfo.displayName ? userInfo.displayName : '<' + userInfo.uid + '>')) - } - - /** - * 获取用户信息 - * @param {string} userId 用户id - * @param {boolean} refresh 是否刷新用户信息,如果刷新的话,且用户信息有更新,会通过{@link eventEmitter}进行通知,事件的名字是{@link EventType.UserInfosUpdate } - * @param {string} groupId - * @returns {UserInfo} - */ - getUserInfo(userId, refresh = false, groupId = '') { - let userInfo = impl.getUserInfo(userId, refresh, groupId); - if (!userInfo.portrait) { - userInfo.portrait = this.defaultUserPortrait(userInfo); - } - return userInfo; - } - - /** - * 获取用户信息 - * @param {string} userId 用户ID - * @param {boolean} refresh 是否强制从服务器更新,如果本地没有或者强制,会从服务器刷新 - * @param {function (UserInfo)} success 成功回调,如果本地有该用户信息,则通过回调返回本地的用户信息;如果本地没有,则从服务端拉取该用户信息,并通过回调返回 - * @param {function (number)} fail 失败回调 - */ - getUserInfoEx(userId, refresh, success, fail) { - impl.getUserInfoEx(userId, refresh, success, fail); - } - - /** - * 批量从服务端拉取用户信息 - * @param {[string]} userIds 用户ids - * @param {string} groupId 群id - * @param {function ([UserInfo])} successCB 成功回调 - * @param {function (Number)} failCB 失败回调 - */ - getUserInfosEx(userIds, groupId, successCB, failCB) { - impl.getUserInfosEx(userIds, groupId, userInfos => { - userInfos.forEach((u) => { - if (!u.portrait) { - u.portrait = this.defaultUserPortrait(u); - } - }); - successCB && successCB(userInfos); - }, err => { - failCB && failCB(err); - }); - } - - /** - * 批量获取用户信息 - * @param {[string]} userIds 用户ids - * @param {string} groupId 群组id - * @returns {[UserInfo]} - */ - getUserInfos(userIds, groupId) { - let userInfos = impl.getUserInfos(userIds, groupId); - userInfos.forEach((u) => { - if (!u.portrait) { - u.portrait = this.defaultUserPortrait(u) - } - }); - return userInfos; - } - - /** - * 服务端搜索用户 - * @param {string} keyword 搜索关键字 - * @param {number} searchType 搜索类型,可选值参考{@link SearchType} - * @param {number} page 页数,如果searchType是0,每次搜索20个,可以指定page。如果searchType非0,只能搜索一个,page无意义 - * @param {function (keyword, [UserInfo])} successCB - * @param {function (number)}failCB - * @returns {Promise} - */ - async searchUser(keyword, searchType, page, successCB, failCB) { - impl.searchUser(keyword, searchType, page, (keyword, userInfos) => { - userInfos.forEach((u) => { - if (!u.portrait) { - u.portrait = this.defaultUserPortrait(u) - } - }); - successCB && successCB(keyword, userInfos); - }, failCB); - } - - /** - * 本地搜索好友 - * @param keyword 搜索关键字 - * @returns {[UserInfo]} - */ - searchFriends(keyword) { - let userInfos = impl.searchFriends(keyword); - userInfos.forEach((u) => { - if (!u.portrait) { - u.portrait = this.defaultUserPortrait(u) - } - }); - return userInfos; - } - - /** - * 本地搜索群组 - * @param keyword 搜索关键字 - * @returns {[GroupSearchResult]} - */ - searchGroups(keyword) { - let results = impl.searchGroups(keyword); - results.forEach(r => { - let info = r.groupInfo; - if (!info.portrait) { - info.portrait = this.defaultGroupPortrait(info); - } - }) - return results; - } - - /** - * 获取收到的好友请求 - * @returns {[FriendRequest]} - */ - getIncommingFriendRequest() { - return impl.getIncommingFriendRequest(); - } - - /** - * 获取发送出去的好友请求 - * @returns {[FriendRequest]} - */ - getOutgoingFriendRequest() { - return impl.getOutgoingFriendRequest(); - } - - /** - * 获取单条好友请求 - * @param {string} userId 对方的用户id - * @param {boolean} incoming 是否是收到的好友请求 - * @return {FriendRequest|null} - */ - getOneFriendRequest(userId, incoming = true) { - return impl.getOneFriendRequest(userId, incoming); - } - - /** - * 从服务端加载好友请求,如果有更新,会通过{@link eventEmitter}通知 - */ - loadFriendRequestFromRemote() { - impl.loadFriendRequestFromRemote(Long.ZERO); - } - - /** - * 获取未读的好友请求数 - * @returns {number} - */ - getUnreadFriendRequestCount() { - return impl.getUnreadFriendRequestCount(); - } - - /** - * 清除好友请求未读状态 - */ - clearUnreadFriendRequestStatus() { - impl.clearUnreadFriendRequestStatus(); - } - - /** - * 删除好友 - * @param {string} userId 好友id - * @param {function ()} successCB - * @param {function (number) }failCB - * @returns {Promise} - */ - async deleteFriend(userId, successCB, failCB) { - impl.deleteFriend(userId, successCB, failCB); - } - - /** - * 处理好友请求 - * @param {string} userId 发送好友请求的用户的id - * @param {boolean} accept true,接受好友请求;false,拒绝好友请求 - * @param {string} extra 一些额外信息,可用来实现好友来源等,推荐使用json格式 - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async handleFriendRequest(userId, accept, extra, successCB, failCB) { - impl.handleFriendRequest(userId, accept, extra, successCB, failCB); - } - - /** - * 判断用户是否被加入了黑名单 - * @param userId - * @returns {boolean} - */ - isBlackListed(userId) { - return impl.isBlackListed(userId); - } - - /** - * 获取黑名单 - * @returns {[string]} - */ - getBlackList() { - return impl.getBlackList(); - } - - /** - * 设置黑名单 - * @param {string} userId 用户id - * @param {boolean} block true,加入黑名单;false,移除黑名单 - * @param {function ()} successCB - * @param {function (number)} failCB - */ - setBlackList(userId, block, successCB, failCB) { - impl.setBlackList(userId, block, successCB, failCB); - } - - /** - * 获取好友列表,返回的时好友id数组 - * @param {boolean} fresh 是否刷新好友信息,如果刷新,且有更新的话,会通过{@link eventEmitter}通知 - * @returns {[string]} - */ - getMyFriendList(fresh = false) { - return impl.getMyFriendList(fresh); - } - - /** - * 好友列表 - * @returns {[Friend]} - */ - getFriendList(fresh = false) { - return impl.getFriendList(fresh); - } - - /** - * 获取好友别名 - * @param {string} userId - * @returns {string} - */ - getFriendAlias(userId) { - return impl.getFriendAlias(userId); - } - - getFriendExtra(userId) { - return impl.getFriendExtra(userId); - } - - /** - * 设置好友别名 - * @param {string} userId 用户id - * @param {string} alias 别名 - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - - async setFriendAlias(userId, alias, successCB, failCB) { - impl.setFriendAlias(userId, alias, successCB, failCB); - } - - /** - * 创建群组 - * @param {string | null} groupId 群组id,一般情况下,传null;如果有自己的用户系统,自己维护群信息,那么可以传群id - * @param {number} groupType 群类型,可参考 {@link GroupType } - * @param {string} name 群名称 - * @param {string} portrait 群头像的链接 - * @param {string} groupExtra 群组扩展信息 - * @param {[string]} memberIds 群成员id列表 - * @param {string} memberExtra 群组成员扩展信息 - * @param {[number]} lines 会话线路,默认传[0]即可 - * @param {CreateGroupNotification} notifyContent 通知信息,默认传null,服务端会生成默认通知 - * @param {function (string)} successCB 回调通知群id - * @param {function (number)} failCB - * @returns {Promise} - */ - async createGroup(groupId, groupType, name, portrait, groupExtra, memberIds = [], memberExtra = '', lines = [0], notifyContent, successCB, failCB) { - impl.createGroup(groupId, groupType, name, portrait == null ? "" : portrait, groupExtra, memberIds, memberExtra, lines, notifyContent, successCB, failCB); - } - - /** - * 设置群管理员 - * @param {string} groupId 群id - * @param {boolean} isSet true,设置;false,取消设置 - * @param {[string]} memberIds 将被设置为管理或取消管理远的群成员的用户id - * @param {[number]} lines 默认传[0]即可 - * @param {Object} notifyContent 默认传null即可 - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async setGroupManager(groupId, isSet, memberIds, lines, notifyContent, successCB, failCB) { - impl.setGroupManager(groupId, isSet, memberIds, lines, notifyContent, successCB, failCB); - } - - /** - * 获取群信息 - * @param {string} groupId 群id - * @param {boolean} refresh 是否刷新,如果刷新,且有更新的话,会通过{@link eventEmitter}通知 - * @returns {GroupInfo} - */ - getGroupInfo(groupId, refresh = false) { - let info = impl.getGroupInfo(groupId, refresh); - if (!info.portrait) { - info.portrait = this.defaultGroupPortrait(info); - } - return info; - } - - /** - * 批量获取群信息 - * @param {[string]} groupIds 群id - * @param {boolean} refresh 是否刷新,如果刷新,且有更新的话,会通过{@link eventEmitter}通知 - * @returns {[GroupInfo]} - */ - getGroupInfos(groupIds, refresh = false) { - let infos = impl.getGroupInfos(groupIds, refresh); - infos.forEach(info => { - if (!info.portrait) { - info.portrait = this.defaultGroupPortrait(info); - } - }) - return infos; - } - - /** - * 获取群信息 - * @param {string} groupId 群id - * @param {boolean} refresh 是否刷新,如果刷新,且有更新的话,会通过{@link eventEmitter}通知 - * @param {function (GroupInfo)} successCB 成功回调 - * @param {function (number)} failCB 失败回调 - */ - getGroupInfoEx(groupId, refresh = false, successCB, failCB) { - impl.getGroupInfoEx(groupId, refresh, info => { - if (!info.portrait) { - info.portrait = this.defaultGroupPortrait(info); - } - successCB && successCB(info); - }, failCB); - } - - /** - * 添加群成员 - * @param {string} groupId 群组id - * @param {[string]} memberIds 新添加的群成员id - * @param {string} extra 群成员扩展信息 - * @param {[number]} notifyLines - * @param {AddGroupMemberNotification} notifyMessageContent - * @param successCB - * @param failCB - */ - addGroupMembers(groupId, memberIds, extra, notifyLines, notifyMessageContent, successCB, failCB) { - impl.addGroupMembers(groupId, memberIds, extra, notifyLines, notifyMessageContent, successCB, failCB); - } - - /** - * 获取群成员id列表 - * @param {string} groupId 群id - * @param {boolean} fresh 是否刷新,刷新时,如果有更新,会通过{@link eventEmitter}通知 - * @returns {[string]} 群成员用户id列表 - */ - getGroupMemberIds(groupId, fresh = false) { - return impl.getGroupMemberIds(groupId, fresh); - } - - /** - * 获取群成员信息 - * @param {string} groupId 群id - * @param {boolean} fresh 是否刷新 - * @returns {[GroupMember]} 群成员信息 - */ - getGroupMembers(groupId, fresh = false) { - return impl.getGroupMembers(groupId, fresh); - } - - /** - * 根据群成员类型获取群成员列表 - * @param {string} groupId - * @param {number} memberType,可选值参考{@link GroupMemberType} - * @return {[GroupMember]} 群成员列表 - */ - getGroupMembersByType(groupId, memberType) { - return impl.getGroupMembersByType(groupId, memberType); - } - - /** - * 获取群成员信息 - * @param {string} groupId 群id - * @param {boolean} fresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取 - * @param {function ([GroupMember])} successCB - * @param {function (number)} failCB - */ - getGroupMembersEx(groupId, fresh = false, successCB, failCB) { - impl.getGroupMembersEx(groupId, fresh, successCB, failCB); - } - - /** - * 获取单个群成员信息 - * @param {string} groupId 群id - * @param {string} memberId 群成员id - * @returns {GroupMember} 群成员信息 - */ - getGroupMember(groupId, memberId) { - return impl.getGroupMember(groupId, memberId); - } - - /** - * 将用户从群里移除 - * @param {string} groupId 群id - * @param {[string]} memberIds 将要被移除的群成员id列表 - * @param {[]} notifyLines 默认传[0]即可 - * @param {KickoffGroupMemberNotification} notifyMsg 默认传null即可 - * @param {function ()} successCB - * @param {function (number)} failCB - */ - kickoffGroupMembers(groupId, memberIds, notifyLines, notifyMsg, successCB, failCB) { - impl.kickoffGroupMembers(groupId, memberIds, notifyLines, notifyMsg, successCB, failCB); - } - - /** - * 对群成员禁言 - * @param {string} groupId 群id - * @param {boolean} isSet true,禁言;false,取消禁言 - * @param {[string]} memberIds 群成员id列表 - * @param {[number]} notifyLines 默认传[0]即可 - * @param {MessageContent} notifyMsg 默认传null即可 - * @param {function ()} successCB 成功回调 - * @param {function (number)} failCB 失败回调 - */ - muteGroupMembers(groupId, isSet, memberIds = [], notifyLines = [], notifyMsg, successCB, failCB) { - impl.muteOrAllowGroupMembers(groupId, isSet, false, memberIds, notifyLines, notifyMsg, successCB, failCB); - } - - /** - * 群全局禁言之后,允许白名单成员发言 - * @param {string} groupId 群id - * @param {boolean} isSet true,加入白名单,允许发言;false,移除白名单,禁止发言 - * @param {[string]} memberIds 群成员id列表 - * @param {[number]} notifyLines 默认传[0]即可 - * @param {MessageContent} notifyMsg 默认传null即可 - * @param {function ()} successCB 成功回调 - * @param {function (number)} failCB 失败回调 - */ - allowGroupMembers(groupId, isSet, memberIds = [], notifyLines = [], notifyMsg, successCB, failCB) { - impl.muteOrAllowGroupMembers(groupId, isSet, true, memberIds, notifyLines, notifyMsg, successCB, failCB); - } - - /** - * 退出群组 - * @param groupId 群id - * @param {[]} lines 默认传[0]即可 - * @param {KickoffGroupMemberNotification} notifyMessageContent 默认传null即可 - * @param successCB - * @param failCB - * @returns {Promise} - */ - async quitGroup(groupId, lines, notifyMessageContent, successCB, failCB) { - impl.quitGroup(groupId, lines, notifyMessageContent, successCB, failCB); - } - - /** - * 退出群组 - * @param groupId 群id - * @param keepMessage 是否保留消息 - * @param {[]} lines 默认传[0]即可 - * @param {KickoffGroupMemberNotification} notifyMessageContent 默认传null即可 - * @param successCB - * @param failCB - * @returns {Promise} - */ - async quitGroupEx(groupId, keepMessage, lines, notifyMessageContent, successCB, failCB) { - impl.quitGroupEx(groupId, keepMessage, lines, notifyMessageContent, successCB, failCB); - } - - /** - * 解散群组 - * @param {string} groupId 群组id - * @param {[]} lines 默认传[0]即可 - * @param {KickoffGroupMemberNotification} notifyMessageContent 默认传null即可 - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async dismissGroup(groupId, lines, notifyMessageContent, successCB, failCB) { - impl.dismissGroup(groupId, lines, notifyMessageContent, successCB, failCB); - } - - /** - * 修改群信息 - * @param {string} groupId 群id - * @param {number} type 修改信息所属类型,可选值参考{@link ModifyGroupInfoType} - * @param {string} newValue 准备修改成什么 - * @param {[number]} lines - * @param {GroupNotificationContent} notifyMessageContent - * @param successCB - * @param failCB - * @returns {Promise} - */ - async modifyGroupInfo(groupId, type, newValue, lines, notifyMessageContent, successCB, failCB) { - impl.modifyGroupInfo(groupId, type, newValue, lines, notifyMessageContent, successCB, failCB); - } - - /** - * 修改我在群组的别名 - * @param {string} groupId 群id - * @param {string} alias 别名 - * @param lines - * @param notifyMessageContent - * @param successCB - * @param failCB - * @returns {Promise} - */ - async modifyGroupAlias(groupId, alias, lines, notifyMessageContent, successCB, failCB) { - impl.modifyGroupAlias(groupId, alias, lines, notifyMessageContent, successCB, failCB); - } - - /** - * 修改群成员在群组的别名 - * @param {string} groupId 群id - * @param {string} memberId 群成员id - * @param {string} alias 别名 - * @param lines - * @param notifyMessageContent - * @param successCB - * @param failCB - * @returns {Promise} - */ - async modifyGroupMemberAlias(groupId, memberId, alias, lines, notifyMessageContent, successCB, failCB) { - impl.modifyGroupMemberAlias(groupId, memberId, alias, lines, notifyMessageContent, successCB, failCB); - } - - /** - * 修改群成员在群组的附加信息 - * @param {string} groupId 群id - * @param {string} memberId 群成员id - * @param {string} extra 群成员附加信息 - * @param lines - * @param notifyMessageContent - * @param successCB - * @param failCB - * @returns {Promise} - */ - async modifyGroupMemberExtra(groupId, memberId, extra, lines, notifyMessageContent, successCB, failCB) { - impl.modifyGroupMemberExtra(groupId, memberId, extra, lines, notifyMessageContent, successCB, failCB); - } - - /** - * 转移群主 - * @param {string} groupId 群id - * @param {string} newOwner 新群主的id - * @param lines - * @param notifyMessageContent - * @param successCB - * @param failCB - */ - transferGroup(groupId, newOwner, lines, notifyMessageContent, successCB, failCB) { - impl.transferGroup(groupId, newOwner, lines, notifyMessageContent, successCB, failCB); - } - - /** - * 获取保存到通讯录的群id列表 - * @returns {[string]} - */ - getFavGroups() { - return impl.getFavGroups(); - } - - /** - * 判断群是否保存到了通讯录 - * @param {string} groupId - * @returns {boolean} - */ - isFavGroup(groupId) { - return impl.isFavGroup(groupId); - } - - /** - * 将群保存到通讯录或移除通讯录 - * @param {string} groupId 群id - * @param {boolean} fav true,保存到通讯录;false,从通讯录移除 - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async setFavGroup(groupId, fav, successCB, failCB) { - impl.setFavGroup(groupId, fav, successCB, failCB); - } - - /** - * 获取用户设置,保存格式可以理解为:scope + key => value - * @param {number} scope 命名空间,可选值参考{@link UserSettingScope} - * @param {string} key key - * @returns {string} 设置的key对应的value - */ - getUserSetting(scope, key) { - return impl.getUserSetting(scope, key); - } - - /** - * 获取某个命名空间下的所有设置 - * @param scope 命名空间,可选值参考{@link UserSettingScope} - * @returns {Map} key-value - */ - getUserSettings(scope) { - return impl.getUserSettings(scope); - } - - /** - * 设置或更新用户设置 - * @param {number} scope 命名空间 - * @param {string} key 设置的key - * @param {string} value 设置的value - * @param {function ()} successCB 成功回调 - * @param {function (number)} failCB 失败回调 - * @returns {Promise} - */ - async setUserSetting(scope, key, value, successCB, failCB) { - impl.setUserSetting(scope, key, value, successCB, failCB); - } - - /** - * 修改个人信息 - * @param {[ModifyMyInfoEntry]} modifyMyInfoEntries 需要修改的信息列表,pc端,一次只允许修改一个项。 - * @param successCB - * @param failCB - */ - modifyMyInfo(modifyMyInfoEntries, successCB, failCB) { - impl.modifyMyInfo(modifyMyInfoEntries, successCB, failCB); - } - - /** - * 是否全局免打扰 - * @returns {boolean} - */ - isGlobalSlient() { - return impl.isGlobalSlient(); - } - - /** - * 设置全局免打扰 - * @param {boolean} silent - * @param {function ()} successCB - * @param failCB - */ - setGlobalSlient(silent, successCB, failCB) { - impl.setGlobalSlient(silent, successCB, failCB); - } - - /** - * 是否隐藏通知详情 - * @returns {boolean} - */ - isHiddenNotificationDetail() { - return impl.isHiddenNotificationDetail(); - } - - /** - * 设置或取消设置隐藏通知详情 - * @param {boolean} hide 是否隐藏通知详情 - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async setHiddenNotificationDetail(hide, successCB, failCB) { - impl.setHiddenNotificationDetail(hide, successCB, failCB); - } - - /** - * 是否隐藏群成员昵称 - * @param {string} groupId 群id - * @returns {boolean} - */ - isHiddenGroupMemberName(groupId) { - return impl.isHiddenGroupMemberName(groupId); - } - - /** - * 设置或取消设置隐藏群成员昵称 - * @param {string} groupId 群id - * @param {boolean} hide 是否隐藏 - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async setHiddenGroupMemberName(groupId, hide, successCB, failCB) { - impl.setHiddenGroupMemberName(groupId, hide, successCB, failCB); - } - - /** - * 加入聊天室 - * @param {string} chatroomId 聊天室id - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async joinChatroom(chatroomId, successCB, failCB) { - impl.joinChatroom(chatroomId, successCB, failCB); - } - - /** - * 退出聊天室 - * @param {string} chatroomId 聊天室id - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async quitChatroom(chatroomId, successCB, failCB) { - impl.quitChatroom(chatroomId, successCB, failCB); - } - - /** - * 获取聊天室信息 - * @param {string} chatroomId 聊天是id - * @param {number} updateDt 传当前时间对应的毫秒数 - * @param {function (ChatRoomInfo)} successCB - * @param failCB - * @returns {Promise} - */ - async getChatroomInfo(chatroomId, updateDt, successCB, failCB) { - return impl.getChatroomInfo(chatroomId, updateDt, successCB, failCB); - } - - /** - * 获取聊天室成员信息 - * @param {string} chatroomId 聊天室id - * @param {number} maxCount 最多获取多少个聊天室成员信息 - * @param {function (ChatRoomMemberInfo)} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async getChatroomMemberInfo(chatroomId, maxCount, successCB, failCB) { - impl.getChatroomMemberInfo(chatroomId, maxCount, successCB, failCB); - } - - /** - * 创建频道 - * @param {string} name 频道名称 - * @param {string} portrait 频道头像的链接地址 - * @param {string} desc 描述 - * @param {string} extra 额外信息 - * @param {function (string)} successCB 创建成功,会回调通知channelId - * @param {function (number)} failCB - */ - createChannel(name, portrait, desc, extra, successCB, failCB) { - impl.createChannel(name, portrait, desc, extra, successCB, failCB); - } - - /** - * 获取频道信息 - * @param {string} channelId 频道id - * @param {boolean} refresh 是否强制刷新 - * @returns {ChannelInfo|NullChannelInfo} - */ - getChannelInfo(channelId, refresh) { - return impl.getChannelInfo(channelId, refresh); - } - - /** - * 修改频道信息 - * @param {string} channelId 频道id - * @param {number} type 修改什么,可选值参考{@link ModifyChannelInfoType} - * @param {string} newValue 修改后的值 - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async modifyChannelInfo(channelId, type, newValue, successCB, failCB) { - impl.modifyChannelInfo(channelId, type, newValue, successCB, failCB); - } - - /** - * 搜索频道 - * @param {string} keyword 关键字 - * @param {boolean} fuzzy 是否模糊搜索 - * @param {function (keyword, [ChannelInfo])} successCB - * @param {function (number)} failCB - */ - searchChannel(keyword, fuzzy, successCB, failCB) { - impl.searchChannel(keyword, successCB, failCB); - } - - /** - * 是否已收听/关注某个频道 - * @param {string} channelId 频道id - * @returns {boolean} - */ - isListenedChannel(channelId) { - return impl.isListenedChannel(channelId); - } - - /** - * 收听或取消收听频道 - * @param {string} channelId 频道id - * @param {boolean} listen true,收听;false,取消收听 - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async listenChannel(channelId, listen, successCB, failCB) { - impl.listenChannel(channelId, listen, successCB, failCB); - } - - /** - * 获取自己创建的频道id列表 - * @returns {[string]} - */ - getMyChannels() { - return impl.getMyChannels(); - } - - /** - * 获取所收听的频道id列表 - * @returns {[string]} - */ - getListenedChannels() { - return impl.getListenedChannels(); - } - - /** - * 销毁频道 - * @param {string} channelId 频道id - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async destoryChannel(channelId, successCB, failCB) { - impl.destoryChannel(channelId, successCB, failCB); - } - - /** - * 获取会话列表 - * @param {[number]} types 想获取的会话类型,可选值参考{@link ConversationType} - * @param {[0]} lines 想获取哪些会话线路的会话,默认传[0]即可 - * @returns {[ConversationInfo]} - */ - getConversationList(types, lines) { - return impl.getConversationList(types, lines); - } - - /** - * 获取会话详情 - * @param {Conversation} conversation - * @returns {ConversationInfo} - */ - getConversationInfo(conversation) { - return impl.getConversationInfo(conversation); - } - - /** - * 搜索会话 - * @param {string} keyword 关键字 - * @param {[number]} types 从哪些类型的会话中进行搜索,可选值可参考{@link ConversationType} - * @param {[number]} lines 从哪些会话线路进行搜索,默认传[0]即可 - * @returns {[ConversationSearchResult]} - */ - searchConversation(keyword, types = [0, 1, 2], lines = [0, 1, 2]) { - return impl.searchConversation(keyword, types, lines); - } - - /** - * 删除会话 - * @param {Conversation} conversation 想删除的目标会话 - * @param {boolean} clearMsg 是否已删除的会话的消息 - * @returns {Promise} - */ - async removeConversation(conversation, clearMsg) { - impl.removeConversation(conversation, clearMsg); - } - - /** - * 会话置顶或取消置顶 - * @param {Conversation} conversation 需要置顶或取消置顶的会话 - * @param {number} top > 0, 置顶,可以根据这个值进行置顶排序;0,取消置顶 - * @param {function ()} successCB - * @param {function (number)} failCB - */ - setConversationTop(conversation, top, successCB, failCB) { - impl.setConversationTop(conversation, top, successCB, failCB); - } - - /** - * 会话免打扰或取消免打扰 - * @param {Conversation} conversation 目标会话 - * @param {boolean} silent true,设置为免打扰;false,取消免打扰 - * @param {function ()} successCB - * @param {function (number)} failCB - */ - setConversationSlient(conversation, silent, successCB, failCB) { - impl.setConversationSlient(conversation, silent, successCB, failCB); - } - - /** - * 保存会话草稿 - * @param {Conversation} conversation 目标会话 - * @param {string} draft 草稿,传''时,相当于清楚会话草稿 - */ - setConversationDraft(conversation, draft = '') { - impl.setConversationDraft(conversation, draft); - } - - /** - * 设置会话时间错,当会话不存在时,会创建一个新的会话。 - * @param {Conversation} conversation - * @param {number} timestamp - */ - setConversationTimestamp(conversation, timestamp) { - impl.setConversationTimestamp(conversation, timestamp); - } - - /** - * 获取未读消息数 - * @param {[number]} types 获取未读数时,包含哪些类型的会话,可选值参考{@link ConversationType} - * @param {[number]} lines 获取未读数时,包含哪些会话线路,默认传[0]即可 - * @returns {UnreadCount} - */ - getUnreadCount(types = [0, 1, 2], lines = [0]) { - return impl.getUnreadCount(types, lines); - } - - /** - * 获取某个会话的未读消息数 - * @param {Conversation} conversation 目标会话 - * @returns {UnreadCount} - */ - getConversationUnreadCount(conversation) { - return impl.getConversationUnreadCount(conversation); - } - - /** - * 清楚会话消息未读状态 - * @param {Conversation} conversation 目标会话 - */ - clearConversationUnreadStatus(conversation) { - impl.clearConversationUnreadStatus(conversation); - } - - /** - * 将会话最后一条消息置为未读 - * @param {Conversation} conversation 会话 - * @param {boolean} syncToOtherClient 是否同步给其他端 - * @return {boolean} 是否操作成功 - */ - markConversationAsUnread(conversation, syncToOtherClient) { - return impl.markConversationAsUnread(conversation, syncToOtherClient); - } - - /** - * 清除单条消息的未读状态 - * @param messageId - */ - clearMessageUnreadStatus(messageId) { - impl.clearMessageUnreadStatus(messageId); - } - - /** - * 清除所有消息的未读状态 - * - * 特别注意1:本方法只清除了底层数据库中的未读状态,并未清理 UI 层会话列表中的未读状态,UI 层会话列表中的未读状态,需要手动重置。 - * 特别注意2:本方法不会触发{@link ConversationInfoUpdate} 事件 - */ - clearAllUnreadStatus() { - impl.clearAllUnreadStatus(); - } - - /** - * 设置媒体消息的状态为已播放 - * @param {number} messageId 消息id,不是消息uid! - */ - setMediaMessagePlayed(messageId) { - impl.setMediaMessagePlayed(messageId); - } - - /** - * 设置消息本地扩展信息 - * @param {number} messageId 消息id,不是消息uid! - * @param {string} extra 扩展信息 - */ - setMessageLocalExtra(messageId, extra) { - impl.setMessageLocalExtra(messageId, extra); - } - - /** - * 判断是否是好友 - * @param {string} userId 用户id - * @returns {boolean} - */ - isMyFriend(userId) { - return impl.isMyFriend(userId); - } - - /** - * 获取星标用户id列表 - * @returns {[string]} - */ - getFavUsers() { - return impl.getFavUsers(); - } - - /** - * 判断用户是否是星标用户 - * @param {string} userId - * @returns {boolean} - */ - isFavUser(userId) { - return impl.isFavUser(userId); - } - - /** - * 设置或取消星标用户 - * @param {string} userId 用户id - * @param {boolean} fav true,保存到通讯录;false,从通讯录移除 - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async setFavUser(userId, fav, successCB, failCB) { - impl.setFavUser(userId, fav, successCB, failCB); - } - - /** - * 发送好友请求 - * @param {string} userId 目标用户id - * @param {string} reason 发送好友请求的原因 - * @param {string} extra 请求的扩展信息 - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async sendFriendRequest(userId, reason, extra, successCB, failCB) { - impl.sendFriendRequest(userId, reason, extra, successCB, failCB); - } - - /** - * 获取会话消息 - * @deprecated 请使用{@link getMessagesV2} - * @param {Conversation} conversation 目标会话 - * @param {number} fromIndex messageId,表示从那一条消息开始获取 - * @param {boolean} before true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息 - * @param {number} count 获取多少条消息 - * @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息 - * @return {[Message]} 会话消息列表,参考{@link Message} - */ - getMessages(conversation, fromIndex = 0, before = true, count = 20, withUser = '') { - return impl.getMessages(conversation, fromIndex, before, count, withUser); - } - - /** - * 获取消息 - * @deprecated 请使用{@link getMessagesExV2} - * @param {[number]} conversationTypes 会话类型列表,可选值参考{@link ConversationType} - * @param {[number]} lines 会话线路列表 - * @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取 - * @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息 - * @param {number} count 本参数暂时无效! 获取多少条消息 - * @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息 - * @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType} - * @return {[Message]} 会话消息列表,参考{@link Message} - */ - getMessagesEx(conversationTypes, lines, fromIndex = 0, before = true, count = 20, withUser = '', contentTypes = []) { - return impl.getMessagesEx(conversationTypes, lines, contentTypes, fromIndex, before, count, withUser); - } - - /** - * 获取消息 - * @deprecated 请使用{@link getMessagesEx2V2} - * @param {[number]} conversationTypes 会话类型列表,可选值参考{@link ConversationType} - * @param {[number]} lines 会话线路列表 - * @param {[number]} messageStatus 消息状态,可选值参考{@link MessageStatus} - * @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取 - * @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息 - * @param {number} count 本参数暂时无效! 获取多少条消息 - * @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息 - * @return {[Message]} 会话消息列表,参考{@link Message} - */ - getMessagesEx2(conversationTypes, lines, messageStatus, fromIndex = 0, before = true, count = 20, withUser = '') { - return impl.getMessagesEx2(conversationTypes, lines, messageStatus, fromIndex, before, count, withUser); - } - - /** - * 获取会话消息 - * @deprecated 请使用{@link getMessagesByTimestampV2} - * @param {Conversation} conversation 目标会话 - * @param {[number]} contentTypes 消息类型,可选值参考{@link MessageContentType} - * @param {number} timestamp 时间戳 - * @param {boolean} before true, 获取timestamp之前的消息,即更旧的消息;false,获取timestamp之后的消息,即更新的消息。都不包含timestamp对应的消息 - * @param {number} count 获取多少条消息 - * @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息 - * @return {[Message]} 会话消息列表,参考{@link Message} - */ - getMessagesByTimestamp(conversation, contentTypes, timestamp, before = true, count = 20, withUser = '') { - return impl.getMessagesByTimestamp(conversation, contentTypes, timestamp, before, count, withUser); - } - - /** - * 获取用户会话消息 - * @deprecated 请使用{@link getUserMessagesV2} - * @param {string} userId 用户id - * @param {Conversation} conversation 目标会话 - * @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取 - * @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息 - * @param {number} count 本参数暂时无效! 获取多少条消息 - * @return - */ - getUserMessages(userId, conversation, fromIndex, before = true, count = 20) { - return impl.getUserMessages(userId, conversation, fromIndex, before, count); - } - - /** - * 获取用户消息 - * @deprecated 请使用{@link getUserMessagesExV2} - * @param {string} userId 用户id - * @param {[number]} conversationTypes 想获取的会话类型,可选值参考{@link ConversationType} - * @param {[0]} lines 想获取哪些会话线路的会话,默认传[0]即可 - * @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取 - * @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息 - * @param {number} count 本参数暂时无效! 获取多少条消息 - * @param {[number]} contentTypes 消息类型,可选值参考{@link MessageContentType} - * @return - */ - getUserMessagesEx(userId, conversationTypes, lines, fromIndex, before = true, count = 20, contentTypes = []) { - return impl.getUserMessagesEx(userId, conversationTypes, lines, fromIndex, before, count, contentTypes); - } - - /** - * 获取会话消息 - * @param {Conversation} conversation 目标会话 - * @param {number} fromIndex messageId,表示从那一条消息开始获取 - * @param {boolean} before true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息 - * @param {number} count 获取多少条消息 - * @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息 - * @param {function (Message)} successCB - * @param failCB - */ - getMessagesV2(conversation, fromIndex, before, count, withUser, successCB, failCB) { - impl.getMessagesV2(conversation, fromIndex, before, count, withUser, successCB, failCB); - } - - /** - * 获取消息 - * @param {[number]} conversationTypes 会话类型列表,可选值参考{@link ConversationType} - * @param {[number]} lines 会话线路列表 - * @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取 - * @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息 - * @param {number} count 本参数暂时无效! 获取多少条消息 - * @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息 - * @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType} - * @param {function (Message)} successCB - * @param failCB - */ - getMessagesExV2(conversationTypes, lines, fromIndex, before, count, withUser, contentTypes, successCB, failCB) { - impl.getMessagesExV2(conversationTypes, lines, contentTypes, fromIndex, before, count, withUser, successCB, failCB); - } - - /** - * - * @param {[number]} conversationTypes 会话类型列表,可选值参考{@link ConversationType} - * @param {[number]} lines 会话线路列表 - * @param {[number]} messageStatuses 消息状态,可选值参考{@link MessageStatus} - * @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取 - * @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息 - * @param {number} count 本参数暂时无效! 获取多少条消息 - * @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息 - * @param {function (Message)} successCB - * @param failCB - */ - getMessagesEx2V2(conversationTypes, lines, messageStatuses, fromIndex, before, count, withUser, successCB, failCB) { - impl.getMessagesEx2V2(conversationTypes, lines, messageStatuses, fromIndex, before, count, withUser, successCB, failCB); - } - - /** - * 获取会话消息 - * @param {Conversation} conversation 目标会话 - * @param {[number]} contentTypes 消息类型,可选值参考{@link MessageContentType} - * @param {number} timestamp 时间戳 - * @param {boolean} before true, 获取timestamp之前的消息,即更旧的消息;false,获取timestamp之后的消息,即更新的消息。都不包含timestamp对应的消息 - * @param {number} count 获取多少条消息 - * @param {string} withUser 只有会话类型为{@link ConversationType#Channel}时生效, channel主用来查询和某个用户的所有消息 - * @param {function (Message)} successCB - * @param failCB - */ - getMessagesByTimestampV2(conversation, contentTypes, timestamp, before, count, withUser, successCB, failCB) { - impl.getMessagesByTimestampV2(conversation, contentTypes, timestamp, before, count, withUser, successCB, failCB); - } - - /** - * 获取用户会话消息 - * @param {string} userId 用户id - * @param {Conversation} conversation 目标会话 - * @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取 - * @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息 - * @param {number} count 本参数暂时无效! 获取多少条消息 - * @param {function (Message)} successCB - * @param failCB - */ - getUserMessagesV2(userId, conversation, fromIndex, before, count, successCB, failCB) { - impl.getUserMessagesV2(userId, conversation, fromIndex, before, count, successCB, failCB); - } - - /** - * 获取用户消息 - * @param {string} userId 用户id - * @param {[number]} conversationTypes 想获取的会话类型,可选值参考{@link ConversationType} - * @param {[0]} lines 想获取哪些会话线路的会话,默认传[0]即可 - * @param {number} fromIndex 本参数暂时无效! messageId,表示从那一条消息开始获取 - * @param {boolean} before 本参数暂时无效! true, 获取fromIndex之前的消息,即更旧的消息;false,获取fromIndex之后的消息,即更新的消息。都不包含fromIndex对应的消息 - * @param {number} count 本参数暂时无效! 获取多少条消息 - * @param {[number]} contentTypes 消息类型,可选值参考{@link MessageContentType} - * @param {function (Message)} successCB - * @param failCB - */ - getUserMessagesExV2(userId, conversationTypes, lines, fromIndex, before, count, contentTypes, successCB, failCB) { - impl.getUserMessagesExV2(userId, conversationTypes, lines, fromIndex, before, count, contentTypes, successCB, failCB); - } - - - /** - * 获取会话第一条未读消息的消息id - * @param {Conversation} conversation - * @return {number} - */ - getFirstUnreadMessageId(conversation) { - return impl.getFirstUnreadMessageId(conversation); - } - - /** - * 已废弃,请使用{@link loadRemoteConversationMessages} - * 获取会还的远程历史消息 - * @param {Conversation} conversation 目标会话 - * @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType} - * @param {number | Long} beforeUid 消息uid,表示拉取本条消息之前的消息 - * @param {number} count - * @param {function (Message)} successCB - * @param failCB - */ - loadRemoteMessages(conversation, contentTypes, beforeUid, count, successCB, failCB) { - impl.loadRemoteMessages(conversation, contentTypes, beforeUid, count, successCB, failCB); - } - - /** - * 获取会话的远程历史消息 - * @param {Conversation} conversation 目标会话 - * @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType} - * @param {number | Long} beforeUid 消息uid,表示拉取本条消息之前的消息 - * @param {number} count - * @param {function ([Message])} successCB - * @param failCB - */ - loadRemoteConversationMessages(conversation, contentTypes, beforeUid, count, successCB, failCB) { - impl.loadRemoteMessages(conversation, contentTypes, beforeUid, count, successCB, failCB); - } - - /** - * 获取会话的远程历史消息,仅 web 有效 - * @param {Conversation} conversation 目标会话 - * @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType} - * @param {number | Long} beforeUid 消息uid,表示拉取本条消息之前的消息 - * @param {number} count - * @param {boolean} filterLocalMessage 是否过滤本地已经存在的消息 - * @param {function ([Message])} successCB - * @param failCB - */ - loadRemoteConversationMessagesEx(conversation, contentTypes, beforeUid, count, filterLocalMessage, successCB, failCB) { - impl.loadRemoteMessages(conversation, contentTypes, beforeUid, count, successCB, failCB, filterLocalMessage); - } - - /** - * 根据会话线路,获取远程历史消息 - * @param {number} line 会话线路 - * @param {number | Long} beforeUid 消息uid,表示拉取本条消息之前的消息 - * @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType} - * @param {number} count - * @param {function ([Message])} successCB - * @param failCB - */ - loadRemoteLineMessages(line, contentTypes, beforeUid, count, successCB, failCB) { - impl.loadRemoteLineMessages(line, contentTypes, beforeUid, count, successCB, failCB) - } - - /** - * 根据消息 uid,获取远程消息 - * @param {Long} messageUid 消息uid - * @param {function ([Message])} successCB - * @param failCB - */ - loadRemoteMessage(messageUid, successCB, failCB) { - impl.loadRemoteMessage(messageUid, successCB, failCB); - } - - /** - * 获取消息 - * @param {number} messageId 消息id - * @returns {null|Message} - */ - getMessageById(messageId) { - return impl.getMessageById(messageId); - } - - /** - * 获取消息 - * @param {Long|string|number} messageUid - * @returns {null|Message} - */ - getMessageByUid(messageUid) { - return impl.getMessageByUid(messageUid); - } - - /** - * 搜索消息 - * @param {Conversation} conversation 目标会话 - * @param {string} keyword 关键字 - * @param {string} withUser 目标用户 - * @returns {[Message]} - */ - searchMessage(conversation, keyword, withUser = '') { - return impl.searchMessage(conversation, keyword, withUser); - } - - /** - * 搜索消息 - * @param {Conversation} conversation 目标会话,如果为空搜索所有会话 - * @param {string} keyword 关键字 - * @param {boolean} desc 逆序排列 - * @param {int} limit 返回数量 - * @param {int} offset 偏移 - * @param {string} withUser 目标用户 - * @returns {Message[]} - */ - searchMessageEx(conversation, keyword, desc, limit, offset, withUser = '') { - return impl.searchMessageEx(conversation, keyword, desc, limit, offset, withUser); - } - - /** - * 搜索消息 - * @param {Conversation} conversation 目标会话,如果为空搜索所有会话 - * @param {string} keyword 关键字 - * @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType} - * @param {boolean} desc 逆序排列 - * @param {int} limit 返回数量 - * @param {int} offset 偏移 - * @param {string} withUser 目标用户 - * @returns {Message[]} - */ - searchMessageByTypes(conversation, keyword, contentTypes, desc, limit, offset, withUser = '') { - return impl.searchMessageByTypes(conversation, keyword, contentTypes, desc, limit, offset, withUser); - } - - /** - * 搜索消息 - * @param {Conversation} conversation 目标会话,如果为空搜索所有会话 - * @param {string} keyword 关键字 - * @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType} - * @param {Long} 消息起始时间,如果为0,则忽略起始时间。 - * @param {Long} 消息结束时间,如果为0,测忽略结束时间。 - * @param {boolean} desc 逆序排列 - * @param {int} limit 返回数量 - * @param {int} offset 偏移 - * @param {string} withUser 目标用户 - * @returns {Message[]} - */ - searchMessageByTypesAndTimes(conversation, keyword, contentTypes, startTime, endTime, desc, limit, offset, withUser = '') { - return impl.searchMessageByTypesAndTimes(conversation, keyword, contentTypes, startTime, endTime, desc, limit, offset, withUser); - } - - /** - * 搜索消息 - * @param {[number]} conversationTypes 会话类型列表,可选值参考{@link ConversationType} - * @param {[number]} lines 会话线路列表 - * @param {[number]} contentTypes 消息类型列表,可选值参考{@link MessageContentType} - * @param {string} keyword 关键字 - * @param {number} fromIndex messageId,表示从那一条消息开始获取 - * @param {boolean} desc 逆序排列 - * @param {number} count 最大数量 - * @param {string} withUser 目标用户 - * @returns {[Message]} - */ - searchMessageEx2(conversationTypes, lines, contentTypes, keyword, fromIndex, desc, count, withUser = '') { - return impl.searchMessageEx2(conversationTypes, lines, contentTypes, keyword, fromIndex, desc, count, withUser); - } - - /** - * 发送消息 - * @param {Conversation} conversation 目标会话 - * @param {MessageContent} messageContent 具体的消息内容,一定要求是{@link MessageContent} 的子类,不能是普通的object - * @param {[string]} toUsers 定向发送给会话中的某些用户;为空,则发给所有人;另外对单聊会话,本参数无效 - * @param {function (number, number)} preparedCB 消息已插入本地数据的回调,回调的两个参数表示:messageId, timestamp - * @param {function (number, number)} progressCB 媒体上传进度回调,针对媒体消息,且媒体大于100K时有效,回调参数表示:uploaded, total - * @param {function (number, number)} successCB 发送成功回调,回调参数表示:messageUid, timestamp - * @param {function (number)} failCB - * @returns {Promise} - */ - async sendConversationMessage(conversation, messageContent, toUsers = [], preparedCB = null, progressCB = null, successCB = null, failCB = null) { - impl.sendConversationMessage(conversation, messageContent, toUsers, preparedCB, progressCB, successCB, failCB); - } - - /** - * 发送消息,参考{@link sendConversationMessage} - * @param {Message} message 一定要求是{@link Message}类型 - * @param preparedCB - * @param progressCB - * @param successCB - * @param failCB - * @returns {Promise} - */ - async sendMessage(message, preparedCB, progressCB, successCB, failCB) { - impl.sendMessage(message, preparedCB, progressCB, successCB, failCB); - } - - /** - * 发送消息,参考{@link sendMessage} - * @param message - * @param toUsers - * @param preparedCB - * @param progressCB - * @param successCB - * @param failCB - * @returns {Promise} - */ - async sendMessageEx(message, toUsers = [], preparedCB, progressCB, successCB, failCB) { - impl.sendMessageEx(message, toUsers, preparedCB, progressCB, successCB, failCB); - } - - // 更新了原始消息的内容 - /** - * 撤回消息 - * @param {Long} messageUid - * @param {function ()} successCB - * @param {function (number)} failCB - * @returns {Promise} - */ - async recallMessage(messageUid, successCB, failCB) { - impl.recallMessage(messageUid, successCB, failCB); - } - - /** - * 删除消息 - * @param {number} messageId 消息id - * @returns {*} - */ - deleteMessage(messageId) { - return impl.deleteMessageById(messageId); - } - - /** - * 删除远程消息 - * @param {Long | string} msgUid 消息uid - * @param {function ()} successCB - * @param {function (number)} failCB - */ - deleteRemoteMessageByUid(msgUid, successCB, failCB) { - impl.deleteRemoteMessage(msgUid, successCB, failCB); - } - - /** - * 更新远程消息消息内容,只有专业版支持。客户端仅能更新自己发送的消息,更新的消息类型不能变,更新的消息类型是服务配置允许更新的内容。Server API更新则没有限制。 - * @param {Long | string} msgUid 消息uid - * @param {MessageContent} messageContent 具体的消息内容,一定要求是{@link MessageContent} 的子类,不能是普通的object - * @param {boolean} distribute 是否重新分发给其他客户端 - * @param {boolean} updateLocal 是否更新本地消息内容 - * @param {function ()} successCB - * @param {function (number)} failCB - */ - updateRemoteMessageContent(msgUid, messageContent, distribute, updateLocal, successCB, failCB) { - impl.updateRemoteMessageContent(msgUid, messageContent, distribute, updateLocal, successCB, failCB); - } - - /** - * 清除会话消息 - * @param {Conversation} conversation 目标会话 - * @returns {Promise} - */ - async clearMessages(conversation) { - impl.clearMessages(conversation); - } - - /** - * 清除远程会话消息 - * @param {Conversation} conversation - * @param {function ()} successCB - * @param {function (error)} failCB - * @return {Promise} - */ - async clearRemoteConversationMessages(conversation, successCB, failCB) { - impl.clearRemoteConversationMessages(conversation, successCB, failCB); - } - - /** - * 插入消息 - * @param {Conversation} conversation 目标会话 - * @param {MessageContent} messageContent 具体的消息内容,一定要求是{@link MessageContent} 的子类,不能是普通的object - * @param {number} status 消息状态,可选值参考{@link MessageStatus} - * @param {boolean} notify 是否触发onReceiveMessage - * @param {[string]} toUsers 群会话时有效,定向发送给会话中的某些用户;为空,则发给所有人 - * @param {Number} serverTime 服务器时间,精度到毫秒 - * - * @return {Message} 插入的消息 - */ - insertMessage(conversation, messageContent, status, notify = false, toUsers = [], serverTime = 0) { - impl.insertMessage(conversation, messageContent, status, notify, toUsers, serverTime); - } - - /** - * 更新消息 - * @param {number} messageId 消息id - * @param {MessageContent} messageContent 具体的消息内容,一定要求是{@link MessageContent} 的子类,不能是普通的object - * @returns {Promise} - */ - async updateMessageContent(messageId, messageContent) { - impl.updateMessageContent(messageId, messageContent); - } - - /** - * 更新消息状态 - * @param {number} messageId 消息id - * @param {MessageStatus} status 消息状态,可选值参考{@link MessageStatus} - */ - async updateMessageStatus(messageId, status) { - impl.updateMessageStatus(messageId, status); - } - - /** - * 上传媒体文件,由于 uniapp 限制,不支持上传稍大的数据,稍大的文件,请使用 uploadMediaFile - * @param {string} fileName - * @param {string} fileOrData base64格式的dataUri - * @param {number} mediaType 媒体类型,可选值参考{@link MessageContentMediaType} - * @param {function (string)} successCB 回调通知上传成功之后的url - * @param {function (number)} failCB - * @param {function (number, number)} progressCB - * @returns {Promise} - */ - async uploadMedia(fileName, fileOrData, mediaType, successCB, failCB, progressCB) { - impl.uploadMedia(fileName, fileOrData, mediaType, successCB, failCB, progressCB); - } - - /** - * 上传媒体文件 - * @param {string} filePath - * @param {number} mediaType 媒体类型,可选值参考{@link MessageContentMediaType} - * @param {function (string)} successCB 回调通知上传成功之后的url - * @param {function (number)} failCB - * @param {function (number, number)} progressCB - * @returns {Promise} - */ - async uploadMediaFile(filePath, mediaType, successCB, failCB, progressCB) { - impl.uploadMediaFile(filePath, mediaType, successCB, failCB, progressCB); - } - - getVersion() { - return impl.getVersion(); - } - - /** - * 获取经过认证的下载地址。 - */ - getAuthorizedMediaUrl(messageUid, mediaType, mediaPath, successCB, failCB) { - impl.getAuthorizedMediaUrl(messageUid, mediaType, mediaPath, successCB, failCB) - } - - /** - * 是否支持上传大文件上传。只有专业版才支持此功能。当支持大文件上传时,调用getUploadMediaUrl获取上传url,然后在应用层上传 - */ - isSupportBigFilesUpload() { - return impl.isSupportBigFilesUpload(); - } - - /** - * 获取上传链接。一般用户大文件上传。 - * @param {string} fileName - * @param {number} mediaType 媒体类型,可选值参考{@link MessageContentMediaType} - * @param {string} contentType HTTP请求的ContentType header,为空时默认为"application/octet-stream" - * @param {function (string, string)} successCB 回调通知上传成功之后的url - * @param {function (number)} failCB - */ - getUploadMediaUrl(fileName, mediaType, contentType, successCB, failCB) { - impl.getUploadMediaUrl(fileName, mediaType, contentType, successCB, failCB); - } - - /** - * 微信小程序切到前台时调用应用切到了前台 - * - */ - onForeground() { - impl.onForeground(); - } - - /** - * - * 是否开启了已送达报告和已读报告功能 - * @return {boolean} - */ - isReceiptEnabled() { - return impl.isReceiptEnabled(); - } - - /** - * 当前用户是否开启消息回执 - * @return {boolean} - */ - isUserReceiptEnabled() { - return impl.isUserReceiptEnabled(); - } - - /** - * 判断是否是专业版IM服务 - * @return {boolean} - */ - isCommercialServer() { - return impl.isCommercialServer(); - } - - /** - * 判断是否应用禁止草稿同步 - * @return {boolean} - */ - isGlobalDisableSyncDraft() { - return impl.isGlobalDisableSyncDraft(); - } - - - /** - * - * @param disable - * @param successCB - * @param failCB - */ - setDisableSyncDraft(disable, successCB, failCB) { - impl.setDisableSyncDraft(disable, successCB, failCB) - } - - isDisableSyncDraft() { - return impl.isDisableSyncDraft(); - } - - /** - * 设置当前用户是否开启消息回执 - * @param enable - * @param successCB - * @param failCB - */ - setUserEnableReceipt(enable, successCB, failCB) { - impl.setUserEnableReceipt(enable, successCB, failCB); - } - - /** - * - * @param conversation - * @return {Map} - */ - getConversationRead(conversation) { - return impl.getConversationRead(conversation); - } - - /** - * 获取会话中的文件记录 - * @param {Conversation} conversation 会话 - * @param {String} fromUser 来源用户 - * @param {Long} beforeMessageUid 消息uid,表示获取此消息uid之前的文件记录 - * @param {number} count 数量 - * @param {function (FileRecord[])} successCB 成功回调 - * @param {function (number)} failCB 失败回调 - */ - getConversationFileRecords(conversation, fromUser, beforeMessageUid, count, successCB, failCB) { - impl.getConversationFileRecords(conversation, fromUser, beforeMessageUid, count, successCB, failCB); - } - - /** - * 获取我发送的文件记录 - * @param {Long} beforeMessageUid 消息uid,表示获取此消息uid之前的文件记录 - * @param {number} count 数量 - * @param {function (FileRecord[])} successCB 成功回调 - * @param {function (number)} failCB 失败回调 - */ - getMyFileRecords(beforeMessageUid, count, successCB, failCB) { - impl.getMyFileRecords(beforeMessageUid, count, successCB, failCB); - } - - /** - * 删除文件记录 - * @param {Long} messageUid 文件对应的消息的uid - * @param {function ()} successCB 成功回调 - * @param {function (number)} failCB 失败回调 - */ - deleteFileRecord(messageUid, successCB, failCB) { - impl.deleteFileRecord(messageUid, successCB, failCB); - } - - /** - * 搜索远程文件记录 - * @param {string} keyword - * @param {Conversation} conversation 会话,如果为空则获取当前用户所有收到和发出的文件记录 - * @param {string} fromUser 文件发送用户,如果为空则获取该用户发出的文件记录 - * @param {Long | string} beforeMessageId 起始消息的消息id - * @param {number} count - * @param {function (FileRecord[])} successCB - * @param {function (number)} failCB - */ - searchFiles(keyword, conversation, fromUser, beforeMessageId, count, successCB, failCB) { - impl.searchFiles(keyword, conversation, fromUser, beforeMessageId, count, successCB, failCB) - } - - /** - * 搜索我自己的远程文件记录 - * @param keyword - * @param beforeMessageUid - * @param count - * @param successCB - * @param failCB - */ - searchMyFiles(keyword, beforeMessageUid, count, successCB, failCB) { - impl.searchMyFiles(keyword, beforeMessageUid, count, successCB, failCB); - } - - /** - * 获取host - */ - getHost() { - return impl.getHost(); - } - - - getEncodedClientId() { - return impl.getEncodedClientId(); - } - - /** - * - * @param {string} data 将要编码的数据 - * @returns {string} 编码结果,base64格式 - */ - encodeData(data) { - return impl.encodeData(data); - } - - /** - * - * @param {string} encodedData 将要解码的数据,base64格式 - * @returns {null | string} 解码之后的数据 - */ - decodeData(encodedData) { - return impl.decodeData(encodedData); - } - - /** - * 发送会议相关请求 - * @param sessionId - * @param roomId - * @param request - * @param data - * @param callback - */ - sendConferenceRequest(sessionId, roomId, request, data, callback) { - this.sendConferenceRequestEx(sessionId, roomId, request, data, false, callback) - } - - sendConferenceRequestEx(sessionId, roomId, request, data, advance, callback) { - impl.sendConferenceRequest(sessionId, roomId, request, data, advance, callback); - } - - isUserOnlineStateEnabled() { - return impl.isUserOnlineStateEnabled(); - } - - /** - * - * @param {number} type 会话类型, 支持{@link ConversationType.Single}和{@link ConversationType.Group} - * @param {string[]} targets 会话类型为单聊时,是用户 id列表;会话类型为群组时,是群组 id 列表 - * @param {number} duration 关注时间长度,单位是秒 - * @param {function(UserOnlineState[])} successCB - * @param {function(number)} failCB - */ - watchOnlineState(type, targets, duration, successCB, failCB) { - impl.watchOnlineState(type, targets, duration, successCB, failCB); - } - - unwatchOnlineState(type, targets, successCB, failCB) { - impl.unwatchOnlineState(type, targets, successCB, failCB); - } - - setMyCustomState(customState, customText, successCB, failCB) { - impl.setMyCustomState(customState, customText, successCB, failCB) - } - - getAuthCode(appId, appType, host, successCB, failCB) { - impl.getAuthCode(appId, appType, host, successCB, failCB); - } - - configApplication(appId, appType, timestamp, nonceStr, signature, successCB, failCB) { - impl.configApplication(appId, appType, timestamp, nonceStr, signature, successCB, failCB) - } - - notify(title, content) { - impl.notify(title, content) - } - - clearAllNotification() { - impl.clearAllNotification(); - } - - chooseFile(type, successCB, failCB) { - impl.chooseFile(type, successCB, failCB) - } - - /** - * 获取 PC 段在线状态 - * @return { PcOnlineInfo[]} - */ - getPCOnlineInfos() { - let pcOnline = this.getUserSetting(UserSettingScope.PCOnline, "PC"); - let webOnline = this.getUserSetting(UserSettingScope.PCOnline, "Web"); - let wxOnline = this.getUserSetting(UserSettingScope.PCOnline, "WX"); - let padOnline = this.getUserSetting(UserSettingScope.PCOnline, "Pad"); - let infos = []; - let info = PcOnlineInfo.fromStr(pcOnline, PcOnlineInfo.PC_ONLINE_TYPE_PC_Online); - if (info) { - infos.push(info); - } - info = PcOnlineInfo.fromStr(webOnline, PcOnlineInfo.PC_ONLINE_TYPE_Web_Online); - if (info) { - infos.push(info); - } - info = PcOnlineInfo.fromStr(wxOnline, PcOnlineInfo.PC_ONLINE_TYPE_WX_Online); - if (info) { - infos.push(info); - } - info = PcOnlineInfo.fromStr(padOnline, PcOnlineInfo.PC_ONLINE_TYPE_Pad_Online); - if (info) { - infos.push(info); - } - return infos - } - - /** - * PC 在线时,是否静音 - * @return {boolean} - */ - isMuteNotificationWhenPcOnline() { - let value = this.getUserSetting(UserSettingScope.MuteWhenPCOnline, ""); - if (!value || value !== "1") { - return Config.DEFAULT_SILENT_WHEN_PC_ONLINE; - } - return !Config.DEFAULT_SILENT_WHEN_PC_ONLINE; - } - - /** - * 设置 PC 在线时,是否将手机端静音 - * @param mute - * @param successCB - * @param failCB - */ - muteNotificationWhenPcOnline(mute, successCB, failCB ) { - this.setUserSetting(UserSettingScope.MuteWhenPCOnline, '', mute ? '0' : '1', successCB, failCB) - } - - /** - * 将 PC 端踢下线 - * @param pcClientId - * @param successCB - * @param failCB - */ - kickoffPCClient(pcClientId, successCB, failCB) { - impl.kickoffPCClient(pcClientId, successCB, failCB); - } - - /** - * 获取共同群组 - * @param {string} userId - * @param { function (string[])} successCB - * @param {function (number)} failCB - */ - getCommonGroups(userId, successCB, failCB) { - impl.getCommonGroups(userId, successCB, failCB); - } - - _getStore() { - return impl._getStore(); - } - - /** - * 内部使用,electron主窗口之外的,其他窗口,attach到主窗口初始化的proto上,可以调用get相关方法,但没有通知 - * @param protoObj - */ - attach(protoObj) { - impl.attach(protoObj); - } - - /** - * utf8转base64 - * @param {string} str - * @returns {string} - */ - utf8_to_b64(str) { - return btoa(unescape(encodeURIComponent(str))); - } - - /** - * base64转utf8 - * @param {string} str - * @returns {string} - */ - b64_to_utf8(str) { - return decodeURIComponent(escape(atob(str))); - } - - unescape(str) { - return (str + '==='.slice((str.length + 3) % 4)) - .replace(/-/g, '+') - .replace(/_/g, '/') - } - - escape(str) { - return str.replace(/\+/g, '-') - .replace(/\//g, '_') - .replace(/=/g, '') - } - - defaultUserPortrait(userInfo) { - if (!userInfo.updateDt) { - return Config.DEFAULT_PORTRAIT_URL - } - return `${Config.APP_SERVER}/avatar?name=${encodeURIComponent(userInfo.displayName)}` - // return `http://localhost:8888/avatar?name=${encodeURIComponent(userInfo.displayName)}` - } - - defaultGroupPortrait(groupInfo) { - let memberIds = this.getGroupMemberIds(groupInfo.target) - memberIds = memberIds.slice(0, 9); - // let members = this.getUserInfos(memberIds, groupInfo.target); - let members = impl.getUserInfos(memberIds, groupInfo.target); - let req = { - members: [] - } - let pending = false; - for (const m of members) { - if (m.portrait && !m.portrait.startsWith(`${Config.APP_SERVER}`)) { - req.members.push({ - avatarUrl: m.portrait - }) - } else { - req.members.push({ - name: m.displayName - }) - } - if (m instanceof NullUserInfo) { - pending = true; - break - } - } - if (members.length === 0 || pending) { - return Config.DEFAULT_GROUP_PORTRAIT_URL; - } - - req = JSON.stringify(req, null, ''); - - return `${Config.APP_SERVER}/avatar/group?request=${encodeURIComponent(req)}` - //return `http://localhost:8888/avatar/group?request=${encodeURIComponent(req)}` - } -} - -const self = new WfcManager(); -export default self; diff --git a/src/wfc/client/wfcEvent.js b/src/wfc/client/wfcEvent.js deleted file mode 100644 index 3e4b8be2..00000000 --- a/src/wfc/client/wfcEvent.js +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class EventType { - // function (message) {} - static SendMessage = 'sendMsg'; - // function (message, hasMore) {} - /** - * @deprecated 请使用 ReceiveMessages - * @type {string} - */ - static ReceiveMessage = 'receiveMsg'; - // function ([message], hasMore) {} - static ReceiveMessages = 'receiveMsgs'; - // function (Map(userId, receiveTime)) {} - static MessageReceived = 'msgReceived'; - // function ([readEntry]) {} - static MessageRead = 'msgRead'; - // 主动调用recallMessage时,也会触发 - // function (operator, messageUid) {} - static RecallMessage = 'recallMsg'; - // 远程删除消息时触发 - // function (messageUid) {} - static MessageDeleted = 'msgDeleted' - // function (messageId) {} - // 本地主动删除消息时触发 - static DeleteMessage = 'deleteMsg'; - // function (message) {} - static MessageStatusUpdate = 'msgStatusUpdate'; - // function (connectionStatus) {} - static ConnectionStatusChanged = 'connectionStatusChanged'; - // function (host/ip/port) {} - static ConnectToServer = 'connectToServer'; - // function (userInfos) {} - static UserInfosUpdate = 'userInfosUpdate'; - // function (channelInfos) {} - static ChannelInfosUpdate = 'channelInfosUpdate'; - // function (groupInfos) {} - static GroupInfosUpdate = 'groupInfosUpdate'; - // function (updatedFriendIds) {} - static FriendListUpdate = 'friendListUpdate'; - // function ([newFriendRequests]) {} - static FriendRequestUpdate = 'friendRequestUpdate'; - // function (conversationInfo) {} - static ConversationInfoUpdate = 'conversationInfoUpdate'; - // function () {} - static SettingUpdate = 'settingUpdate'; - // function (groupId, GroupMember[]) {} - static GroupMembersUpdate = 'groupMembersUpdate'; - - // function (event) {} - static ConferenceEvent = 'conferenceEvent'; - // function (UserOnlineState[]) {} - static UserOnlineEvent = 'onlineEvent'; - // function (targetId, playedMessageId) {} - static SecretChatStartBurn = 'secretChatStartBurn'; - // function ([messageId]) {} - static SecretChatMessageBurned = 'secretChatMessageBurned'; - // function (targetId) {} - static SecretChatStateChange = 'secretChatStateChange'; -} diff --git a/src/wfc/messages/ModifyChannelInfoType.js b/src/wfc/messages/ModifyChannelInfoType.js deleted file mode 100644 index 42094f65..00000000 --- a/src/wfc/messages/ModifyChannelInfoType.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class ModifyChannelInfoType { - static Modify_Channel_Name = 0; - static Modify_Channel_Portrait = 1; - static Modify_Channel_Desc = 2; - static Modify_Channel_Extra = 3; -} diff --git a/src/wfc/messages/articlesMessageContent.js b/src/wfc/messages/articlesMessageContent.js deleted file mode 100644 index 0f522c8b..00000000 --- a/src/wfc/messages/articlesMessageContent.js +++ /dev/null @@ -1,96 +0,0 @@ -import MessageContent from "./messageContent"; -import MessageContentType from "./messageContentType"; -import wfc from "../client/wfc"; -import LinkMessageContent from "./linkMessageContent"; - -export default class ArticlesMessageContent extends MessageContent { - topArticle; - subArticles; - - constructor() { - super(MessageContentType.Articles); - } - - digest(message) { - return this.topArticle.title; - } - - encode() { - let payload = super.encode(); - let obj = { - top: this.topArticle.toJson(), - } - if (this.subArticles) { - obj['subArticles'] = this.subArticles.map(article => article.toJson()); - } - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - - return payload; - } - - decode(payload) { - super.decode(payload); - let obj = JSON.parse(wfc.b64_to_utf8(payload.binaryContent)); - this.topArticle = new Article(); - this.topArticle.fromJson(obj.top); - if (obj.subArticles) { - this.subArticles = []; - obj.subArticles.forEach(article => { - let tmp = new Article(); - tmp.fromJson(article); - this.subArticles.push(tmp); - }) - } - } - toLinkMessageContent() { - let contents = []; - contents.push(this.topArticle.toLinkMessageContent()) - if (this.subArticles) { - this.subArticles.forEach(article => { - contents.push(article.toLinkMessageContent()) - }) - } - return contents; - } -} - -class Article { - articleId; - cover; - title; - digest; - url; - readReport; - - toJson() { - let obj = { - id: this.articleId, - cover: this.cover, - title: this.title, - url: this.url, - digest: this.digest, - rr: this.readReport - } - return obj; - } - - fromJson(obj) { - this.articleId = obj.id; - this.cover = obj.cover; - this.title = obj.title; - this.digest = obj.digest; - this.url = obj.url; - this.readReport = obj.rr; - } - - toLinkMessageContent() { - let content = new LinkMessageContent(); - content.url = this.url; - content.title = this.title; - content.contentDigest = this.digest; - content.thumbnail = this.cover; - - return content; - } - -} diff --git a/src/wfc/messages/cardMessageContent.js b/src/wfc/messages/cardMessageContent.js deleted file mode 100644 index 7589e1f1..00000000 --- a/src/wfc/messages/cardMessageContent.js +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - - -/* - * Copyright © 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from './messageContent' -import MessageContentType from './messageContentType' -import wfc from '../client/wfc' -import Config from '../../config' - -export default class CardMessageContent extends MessageContent { - /** - * 0,用户;1,群组;2,聊天室;3,频道 - */ - cardType; - target; - name; - displayName; - portrait; - from; - - constructor(cardType, target, displayName, portrait, from) { - super(MessageContentType.UserCard); - this.cardType = cardType; - this.target = target; - this.displayName = displayName; - this.portrait = portrait; - this.from = from; - } - - encode() { - let payload = super.encode() - payload.content = this.target; - let obj = { - t: this.cardType, - n: this.name, - d: this.displayName, - p: this.portrait, - f: this.from, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload) - this.target = payload.content; - let obj = JSON.parse(wfc.b64_to_utf8(payload.binaryContent)); - this.cardType = obj.t; - this.name = obj.n; - this.displayName = obj.d; - this.portrait = obj.p; - if (Config.urlRedirect){ - this.portrait = Config.urlRedirect(obj.p); - } - this.from = obj.f; - } - - digest() { - let msg = '[名片]'; - switch (this.cardType) { - case 0: - msg = '[个人名片]' - break; - case 1: - msg = '[群组名片]' - break; - case 2: - msg = '[聊天室名]' - break; - case 3: - msg = '[频道名片]' - break; - default: - break; - } - return msg + this.displayName; - } -} diff --git a/src/wfc/messages/channelMenuEventMessageContent.js b/src/wfc/messages/channelMenuEventMessageContent.js deleted file mode 100644 index e3758ebf..00000000 --- a/src/wfc/messages/channelMenuEventMessageContent.js +++ /dev/null @@ -1,17 +0,0 @@ -import MessageContent from "./messageContent"; -import MessageContentType from "./messageContentType"; - -export default class ChannelMenuEventMessageContent extends MessageContent { - menu - - constructor(menu) { - super(MessageContentType.Channel_Menu_Event); - this.menu = menu; - } - - encode() { - let payload = super.encode(); - payload.content = JSON.stringify(this.menu); - return payload; - } -} diff --git a/src/wfc/messages/compositeMessageContent.js b/src/wfc/messages/compositeMessageContent.js deleted file mode 100644 index a434cdf8..00000000 --- a/src/wfc/messages/compositeMessageContent.js +++ /dev/null @@ -1,194 +0,0 @@ -import MessageContentType from "../messages/messageContentType"; -import wfc from "../client/wfc"; -import MediaMessageContent from "../messages/mediaMessageContent"; -import {stringValue} from "../util/longUtil"; -import Message from "../messages/message"; -import Conversation from "../model/conversation"; -import Long from "long"; -import {compare} from "../util/longUtil"; -import MessagePayload from "../messages/messagePayload"; -import ArticlesMessageContent from "./articlesMessageContent"; -import MessageContentMediaType from "./messageContentMediaType"; - -export default class CompositeMessageContent extends MediaMessageContent { - title = ''; - messages = []; - // web 端有效,仅仅是用来标识 mediaCompositeMessage 是否已加载 - loaded = false; - - constructor() { - super(MessageContentType.Composite_Message, MessageContentMediaType.General, '') - } - - setMessages(msgs) { - this.messages = []; - msgs.forEach(m => { - if (m.messageContent instanceof ArticlesMessageContent) { - let linkMessageContents = m.messageContent.toLinkMessageContent(); - linkMessageContents.forEach(lm => { - let msg = Object.assign(new Message(), m); - msg.messageContent = lm; - this.messages.push(msg); - }) - } else { - this.messages.push(m) - } - }) - this.messages = this.messages.sort((m1, m2) => { - return compare(m1.messageUid, m2.messageUid); - }) - } - - digest(message) { - return '[聊天记录]' + this.title; - } - - encode() { - let payload = super.encode(); - payload.content = this.title; - let arr = []; - let binArr; - let size = 0; - this.messages.forEach(msg => { - let msgPayload = msg.messageContent.encode(); - let o = { - uid: stringValue(msg.messageUid), - type: msg.conversation.type, - target: msg.conversation.target, - line: msg.conversation.line, - from: msg.from, - tos: msg.to, - direction: msg.direction, - status: msg.status, - serverTime: stringValue(msg.timestamp), - ctype: msgPayload.type, - csc: msgPayload.searchableContent, - cpc: msgPayload.pushContent, - cpd: msgPayload.pushData, - cc: msgPayload.content, - cmt: msgPayload.mentionedType, - cmts: msgPayload.mentionedTargets, - ce: msgPayload.extra, - }; - if (msgPayload.searchableContent) { - payload.searchableContent = payload.searchableContent + msgPayload.searchableContent + ' '; - } - - if (msgPayload.binaryContent) { - o.cbc = msgPayload.binaryContent; - } - if (msg.messageContent instanceof MediaMessageContent) { - o.mt = msg.messageContent.mediaType; - o.mru = msg.messageContent.remotePath; - } - - if (!binArr) { - size += JSON.stringify(o).length; - if (size > 20480 && arr.length > 0) { - binArr = arr.map((value) => value); - } - } - - arr.push(o); - - }); - - let obj; - if (binArr && !this.file) { - obj = { - ms: arr, - } - let str = JSON.stringify(obj); - str = str.replace(/"uid":"([0-9]+)"/, "\"uid\":$1"); - str = str.replace(/"serverTime":"([0-9]+)"/, "\"serverTime\":$1"); - - let blob = new Blob([str]); - let fileName = 'wcf-' + new Date().getTime() + '.data'; - this.file = new File([blob], fileName); - obj = { - ms: binArr, - } - } else { - if (binArr) { - obj = { - ms: binArr, - } - } else { - obj = { - ms: arr, - } - } - } - - let str = JSON.stringify(obj); - str = str.replace(/"uid":"([0-9]+)"/, "\"uid\":$1"); - str = str.replace(/"serverTime":"([0-9]+)"/, "\"serverTime\":$1"); - - payload.binaryContent = wfc.utf8_to_b64(str) - return payload; - } - - decode(payload) { - super.decode(payload); - - this.title = payload.content; - let str; - if (this.file) { - // web - let fileReader = new FileReader(); - fileReader.onload(ev => { - this._decodeMessages(ev.target.result); - }); - fileReader.readAsBinaryString(this.file); - - } else if (this.localPath) { - } - - if (!str) { - str = wfc.b64_to_utf8(payload.binaryContent); - this._decodeMessages(str); - } - } - - _decodeMessages(str) { - if (this.loaded) { - return; - } - this.messages = []; - // FIXME node 环境,decodeURIComponent 方法,有时候会在最后添加上@字符,目前尚未找到原因,先规避 - str = str.substring(0, str.lastIndexOf('}') + 1); - str = str.replace(/"uid":([0-9]+)/g, "\"uid\":\"$1\""); - str = str.replace(/"serverTime":([0-9]+)/g, "\"serverTime\":\"$1\""); - let obj = JSON.parse(str); - obj.ms.forEach(o => { - let conv = new Conversation(o.type, o.target, o.line); - let msg = new Message() - msg.messageUid = Long.fromValue(o.uid); - msg.conversation = conv; - msg.from = o.from; - msg.to = o.tos; - msg.direction = o.direction; - msg.status = o.status; - msg.timestamp = Long.fromValue(o.serverTime); - - let payload = new MessagePayload(); - payload.type = o.ctype; - payload.searchableContent = o.csc; - payload.pushContent = o.cpc; - payload.pushData = o.cpd; - payload.content = o.cc; - payload.mentionedType = o.cmt; - payload.mentionedTargets = o.cmts; - payload.extra = o.ce; - - payload.binaryContent = o.cbc; - payload.mediaType = o.mt; - payload.remoteMediaUrl = o.mru; - - msg.messageContent = Message.messageContentFromMessagePayload(payload, msg.from); - this.messages.push(msg); - }); - console.log('cp ms', this.messages) - } - -} diff --git a/src/wfc/messages/deleteMessageContent.js b/src/wfc/messages/deleteMessageContent.js deleted file mode 100644 index 7a53d0b6..00000000 --- a/src/wfc/messages/deleteMessageContent.js +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from './messageContent' -import MessageContentType from './messageContentType'; -import wfc from '../client/wfc' -import Long from 'long' - -// 本消息由调用server api删除消息触发,请勿直接发送本消息 -export default class DeleteMessageContent extends MessageContent { - operatorId = ''; - messageUid = new Long(0); - - constructor(operatorId, messageUid) { - super(MessageContentType.DeleteMessage_Notification); - this.operatorId = operatorId; - this.messageUid = messageUid; - } - - formatNotification(message) { - return "消息已删除"; - } - - encode() { - let payload = super.encode(); - payload.content = this.operatorId; - payload.binaryContent = wfc.utf8_to_b64(this.messageUid.toString()); - return payload; - } - - decode(payload) { - super.decode(payload); - this.operatorId = payload.content; - this.messageUid = Long.fromString(wfc.b64_to_utf8(payload.binaryContent)); - } -} diff --git a/src/wfc/messages/enterChannelChatMessageContent.js b/src/wfc/messages/enterChannelChatMessageContent.js deleted file mode 100644 index fa512e18..00000000 --- a/src/wfc/messages/enterChannelChatMessageContent.js +++ /dev/null @@ -1,9 +0,0 @@ -import MessageContent from "./messageContent"; -import MessageContentType from "./messageContentType"; - -export default class EnterChannelChatMessageContent extends MessageContent { - constructor() { - super(MessageContentType.Enter_Channel_Chat); - } - -} diff --git a/src/wfc/messages/fileMessageContent.js b/src/wfc/messages/fileMessageContent.js deleted file mode 100644 index 50c7d5f5..00000000 --- a/src/wfc/messages/fileMessageContent.js +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContentMediaType from "./messageContentMediaType"; -import MediaMessageContent from "./mediaMessageContent"; -import MessageContentType from "./messageContentType"; - -export default class FileMessageContent extends MediaMessageContent { - name = ''; - size = 0; - - constructor(fileOrLocalPath, remotePath, name, size) { - super(MessageContentType.File, MessageContentMediaType.File, fileOrLocalPath, remotePath); - if (fileOrLocalPath && fileOrLocalPath.name) { - this.name = fileOrLocalPath.name; - this.size = fileOrLocalPath.size; - } else if (remotePath) { - this.name = name ? name : remotePath.substring(remotePath.lastIndexOf('/') + 1) - this.size = size ? size : 0; - } - } - - digest() { - return '[文件]' + this.name; - } - - encode() { - let payload = super.encode(); - payload.searchableContent = this.name; - payload.content = this.size + ''; - return payload; - } - - decode(payload) { - super.decode(payload); - if (payload.searchableContent) { - this.name = payload.searchableContent; - this.size = Number(payload.content); - } - } - -} diff --git a/src/wfc/messages/imageMessageContent.js b/src/wfc/messages/imageMessageContent.js deleted file mode 100644 index c3f7d5dd..00000000 --- a/src/wfc/messages/imageMessageContent.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MediaMessageContent from './mediaMessageContent'; -import MessageContentMediaType from './messageContentMediaType'; -import MessageContentType from './messageContentType'; - -export default class ImageMessageContent extends MediaMessageContent { - // base64 encoded, 不包含头部:data:image/png;base64, - thumbnail; - imageWidth; - imageHeight; - - - constructor(fileOrLocalPath, remotePath, thumbnail) { - super(MessageContentType.Image, MessageContentMediaType.Image, fileOrLocalPath, remotePath); - this.thumbnail = thumbnail; - } - - digest() { - return '[图片]'; - } - - encode() { - let payload = super.encode(); - payload.mediaType = MessageContentMediaType.Image; - payload.binaryContent = this.thumbnail; - if (this.imageWidth) { - let obj = { - w: this.imageWidth, - h: this.imageHeight - } - payload.content = JSON.stringify(obj) - } - return payload; - } - - decode(payload) { - super.decode(payload); - this.thumbnail = payload.binaryContent; - if (payload.content) { - let obj = JSON.parse(payload.content) - this.imageWidth = obj['w']; - this.imageHeight = obj['h']; - } - } -} diff --git a/src/wfc/messages/leaveChannelChatMessageContent.js b/src/wfc/messages/leaveChannelChatMessageContent.js deleted file mode 100644 index 12408dc7..00000000 --- a/src/wfc/messages/leaveChannelChatMessageContent.js +++ /dev/null @@ -1,9 +0,0 @@ -import MessageContent from "./messageContent"; -import MessageContentType from "./messageContentType"; - -export default class LeaveChannelChatMessageContent extends MessageContent { - constructor() { - super(MessageContentType.Leave_Channel_Chat); - } - -} diff --git a/src/wfc/messages/linkMessageContent.js b/src/wfc/messages/linkMessageContent.js deleted file mode 100644 index 1ef3a6c0..00000000 --- a/src/wfc/messages/linkMessageContent.js +++ /dev/null @@ -1,42 +0,0 @@ -import MessageContent from "./messageContent"; -import MessageContentType from "./messageContentType"; -import wfc from "../client/wfc"; - -export default class LinkMessageContent extends MessageContent { - title; - contentDigest; - url; - thumbnail; - - - constructor() { - super(MessageContentType.Link); - } - - encode() { - let payload = super.encode(); - let obj = { - d: this.contentDigest, - u: this.url, - t: this.thumbnail - } - - payload.searchableContent = this.title; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - - return payload; - } - - decode(payload) { - super.decode(payload); - this.title = payload.searchableContent; - let obj = JSON.parse(wfc.b64_to_utf8(payload.binaryContent)); - this.contentDigest = obj.d; - this.url = obj.u; - this.thumbnail = obj.t; - } - digest(message) { - let tmp = this.title ? this.title.trim() : this.contentDigest ? this.contentDigest.trim() : null; - return tmp ? tmp : this.url; - } -} diff --git a/src/wfc/messages/locationMessageContent.js b/src/wfc/messages/locationMessageContent.js deleted file mode 100644 index e9376497..00000000 --- a/src/wfc/messages/locationMessageContent.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from './messageContent' - -export default class LocationMessageContent extends MessageContent { - title; - // base64 encoded, 不包含头部:data:image/png;base64, - thumbnail; - lat; - long; - - - digest() { - return '位置' - } - - encode() { - let payload = super.encode(); - payload.searchableContent = this.title; - payload.binaryContent = this.thumbnail; - let location = { - lat: this.lat, - long: this.long - }; - payload.content = JSON.stringify(location); - return payload; - } - - decode(payload) { - super.decode(payload); - this.title = payload.searchableContent; - this.thumbnail = payload.binaryContent; - let location = JSON.parse(payload.content); - this.lat = location.lat; - this.long = location.long; - } - - -} diff --git a/src/wfc/messages/markUnreadMessageContent.js b/src/wfc/messages/markUnreadMessageContent.js deleted file mode 100644 index 21a33723..00000000 --- a/src/wfc/messages/markUnreadMessageContent.js +++ /dev/null @@ -1,40 +0,0 @@ -import MessageContent from "./messageContent"; -import MessageContentType from "./messageContentType"; -import {_patchToJavaLong, _reverseToJsLongString, longValue, stringValue} from "../util/longUtil"; -import wfc from "../client/wfc"; - -export default class MarkUnreadMessageContent extends MessageContent { - messageUid; - timestamp; - - constructor(messageUid) { - super(MessageContentType.Mark_Unread_Sync); - this.messageUid = messageUid; - } - - encode() { - let payload = super.encode(); - let obj = { - u: stringValue(this.messageUid), - t: stringValue(this.timestamp), - } - let str = JSON.stringify(obj) - str = _patchToJavaLong(str, 'u'); - str = _patchToJavaLong(str, 't'); - payload.binaryContent = wfc.utf8_to_b64(str); - - return payload; - } - - decode(payload) { - super.decode(payload); - - let str = wfc.b64_to_utf8(payload.binaryContent); - str = _reverseToJsLongString(str, 'u'); - str = _reverseToJsLongString(str, 't'); - let obj = JSON.parse(str); - this.messageUid = obj.u ? longValue(obj.u) : undefined; - this.timestamp = obj.t ? longValue(obj.t) : undefined; - } - -} diff --git a/src/wfc/messages/mediaMessageContent.js b/src/wfc/messages/mediaMessageContent.js deleted file mode 100644 index f125a4bf..00000000 --- a/src/wfc/messages/mediaMessageContent.js +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from './messageContent' -import Config from '../../config' - -export default class MediaMessageContent extends MessageContent { - file; - remotePath = ''; - localPath = ''; - mediaType = 0; - - /** - * - * @param {number} messageType 消息类型 - * @param {number} mediaType 媒体类型 - * @param {File | string} fileOrLocalPath File类型,或者dataUri或者本地路径,本地路径是必须是绝对路径 - * @param {string} remotePath 远端地址 - */ - constructor(messageType, mediaType = 0, fileOrLocalPath, remotePath) { - super(messageType); - this.mediaType = mediaType; - if (!fileOrLocalPath) { - this.localPath = ''; - this.remotePath = remotePath; - } else if (typeof fileOrLocalPath === "string" && !fileOrLocalPath.startsWith("http")) { - this.localPath = fileOrLocalPath; - this.remotePath = remotePath; - } else { - this.file = fileOrLocalPath; - if (fileOrLocalPath && fileOrLocalPath.path) { - this.localPath = fileOrLocalPath.path; - // attention: 粘贴的时候,path是空字符串,故采用了这个trick - if (this.localPath.indexOf(fileOrLocalPath.name) < 0) { - this.localPath += fileOrLocalPath.name; - } - } - - } - } - - encode() { - let payload = super.encode(); - payload.localMediaPath = this.localPath; - payload.remoteMediaUrl = this.remotePath ? this.remotePath : ''; - payload.mediaType = this.mediaType; - return payload; - } - - decode(payload) { - super.decode(payload); - this.localPath = payload.localMediaPath; - this.remotePath = payload.remoteMediaUrl; - if (Config.urlRedirect){ - this.remotePath = Config.urlRedirect(payload.remoteMediaUrl); - } - - this.mediaType = payload.mediaType; - } -} diff --git a/src/wfc/messages/message.js b/src/wfc/messages/message.js deleted file mode 100644 index ff892399..00000000 --- a/src/wfc/messages/message.js +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -/** - * - message in json format - { - "conversation":{ - "conversationType": 0, - "target": "UZUWUWuu", - "line": 0, - } - "from": "UZUWUWuu", - "content": { - "type": 1, - "searchableContent": "1234", - "pushContent": "", - "content": "", - "binaryContent": "", - "localContent": "", - "mediaType": 0, - "remoteMediaUrl": "", - "localMediaPath": "", - "mentionedType": 0, - "mentionedTargets": [ ] - }, - "messageId": 52, - "direction": 1, - "status": 5, - "messageUid": 75735276990792720, - "timestamp": 1550849394256, - "to": "" - } - */ -import Conversation from '../model/conversation' -import NotificationMessageContent from './notification/notificationMessageContent' -import wfc from '../client/wfc' -import MessageConfig from '../client/messageConfig'; -import UnknownMessageContent from './unknownMessageContent'; -import PersistFlag from './persistFlag'; -import MessageStatus from './messageStatus'; -import ConversationType from '../model/conversationType'; -import {encode} from 'base64-arraybuffer'; -import Config from '../../config.js'; - -import Long from 'long' -import UnsupportMessageContent from "../messages/unsupportMessageConten"; -import RecallMessageNotification from "../messages/notification/recallMessageNotification"; - -export default class Message { - conversation = {}; - from = ''; - content = {}; // 实际是payload - messageContent = {}; - messageId = 0; - direction = 0; - status = 0; - messageUid = -1; - timestamp = 0; - to = ''; - localExtra = ''; - - constructor(conversation, messageContent) { - this.conversation = conversation; - this.messageContent = messageContent; - } - - static fromProtoMessage(obj) { - if (!obj) { - return null; - } - if (!obj.conversation.target) { - return null; - } - // iOS,Android,Windows,OSX,Harmony - if ([1, 2, 3, 4, 7, 8, 9, 10, 11, 12].indexOf(Config.getWFCPlatform()) >= 0) { - let msg = Object.assign(new Message(), obj); - // big integer to number - msg.messageId = Number(msg.messageId); - if (msg.messageId === -1) { - return null; - } - - msg.messageUid = Long.fromValue(msg.messageUid); - if (msg.timestamp){ - msg.timestamp = Long.fromValue(msg.timestamp).toNumber(); - } else { - // 移动端 - msg.timestamp = Long.fromValue(msg.serverTime).toNumber(); - } - msg.localExtra = obj.localExtra; - if (!msg.from) { - // 移动端 - msg.from = obj.sender; - } - msg.conversation = new Conversation(obj.conversation.conversationType !== undefined ? obj.conversation.conversationType : obj.conversation.type, obj.conversation.target, obj.conversation.line); - let contentClazz = MessageConfig.getMessageContentClazz(msg.content.type !== undefined ? msg.content.type : msg.content.messageContentType); - if (contentClazz) { - let content = new contentClazz(); - try { - content.decode(msg.content); - if (content instanceof NotificationMessageContent) { - content.fromSelf = msg.from === wfc.getUserId(); - } - } catch (error) { - console.error('decode message payload failed, fallback to unkownMessage', msg.content, error); - let flag = MessageConfig.getMessageContentPersitFlag(msg.content.type); - if (PersistFlag.Persist === flag || PersistFlag.Persist_And_Count === flag) { - content = new UnknownMessageContent(msg.content); - } else { - return null; - } - } - msg.messageContent = content; - if (content instanceof UnknownMessageContent) { - console.log('unknownMessage Content', obj) - } - - } else { - console.error('message content not register', obj); - } - - return msg; - - } else { - let msg = new Message(); - msg.from = obj.fromUser; - msg.content = obj.content; - msg.messageUid = obj.messageId; - msg.localExtra = obj.localExtra; - msg.timestamp = obj.serverTimestamp; - let contentClazz = MessageConfig.getMessageContentClazz(obj.content.type); - if (contentClazz) { - let content = new contentClazz(); - try { - if (obj.content.data && obj.content.data.length > 0) { - obj.content.binaryContent = encode(obj.content.data); - } - content.decode(obj.content); - content.extra = obj.content.extra; - if (content instanceof NotificationMessageContent) { - content.fromSelf = msg.from === wfc.getUserId(); - } - } catch (error) { - console.error('decode message payload failed, fallback to unkownMessage', obj.content, error); - let flag = MessageConfig.getMessageContentPersitFlag(obj.content.type); - if (PersistFlag.Persist === flag || PersistFlag.Persist_And_Count === flag) { - content = new UnknownMessageContent(obj.content); - } else { - return null; - } - } - msg.messageContent = content; - if (content instanceof UnknownMessageContent) { - console.log('unknownMessage Content', obj) - } - } else { - console.error('message content not register', obj); - } - - - if (msg.from === wfc.getUserId()) { - msg.conversation = new Conversation(obj.conversation.type, obj.conversation.target, obj.conversation.line); - // out - msg.direction = 0; - msg.status = MessageStatus.Sent; - } else { - if (obj.conversation.type === ConversationType.Single) { - msg.conversation = new Conversation(obj.conversation.type, obj.fromUser, obj.conversation.line); - } else { - msg.conversation = new Conversation(obj.conversation.type, obj.conversation.target, obj.conversation.line); - } - - // in - msg.direction = 1; - msg.status = MessageStatus.Unread; - - if (msg.content.mentionedType === 2) { - msg.status = MessageStatus.AllMentioned; - } else if (msg.content.mentionedType === 1) { - for (const target of msg.content.mentionedTarget) { - if (target === wfc.getUserId()) { - msg.status = MessageStatus.Mentioned; - break; - } - } - } - } - return msg; - } - - } - - static messageContentFromMessagePayload(payload, from) { - let contentClazz = MessageConfig.getMessageContentClazz(payload.type); - contentClazz = contentClazz ? contentClazz : UnsupportMessageContent; - let content = new contentClazz(); - content.decode(payload); - - let selfUid = wfc.getUserId(); - if (content instanceof NotificationMessageContent) { - if (content instanceof RecallMessageNotification) { - if (content.operatorId === selfUid) { - content.fromSelf = true; - } - } else if (from === selfUid) { - content.fromSelf = true; - } - } - - return content; - } - - static toMessagePayload(message) { - return message.messageContent.encode(); - } -} diff --git a/src/wfc/messages/messageContent.js b/src/wfc/messages/messageContent.js deleted file mode 100644 index b8992ab6..00000000 --- a/src/wfc/messages/messageContent.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessagePayload from "./messagePayload"; - -export default class MessageContent { - type; - //0 普通消息, 1 部分提醒, 2 提醒全部 - mentionedType = 0; - //提醒对象,mentionedType 1时有效 - mentionedTargets = []; - extra; - pushContent; - - constructor(type, mentionedType = 0, mentionedTargets = []) { - this.type = type; - this.mentionedType = mentionedType; - this.mentionedTargets = mentionedTargets; - } - - digest(message) { - return '...digest...'; - } - - /** - * return MessagePayload in json format - */ - encode() { - let payload = new MessagePayload(); - payload.type = this.type; - payload.mentionedType = this.mentionedType; - payload.mentionedTargets = this.mentionedTargets; - payload.extra = this.extra; - return payload; - } - - /** - * - * @param {object} payload object json.parse from message#content - */ - decode(payload) { - this.type = payload.type; - this.mentionedType = payload.mentionedType; - if (payload.hasOwnProperty('mentionedTarget')) { - // web - this.mentionedTargets = payload.mentionedTarget; - } else { - // pc - this.mentionedTargets = payload.mentionedTargets; - } - this.extra = payload.extra; - this.pushContent = payload.pushContent; - } -} diff --git a/src/wfc/messages/messageContentMediaType.js b/src/wfc/messages/messageContentMediaType.js deleted file mode 100644 index 26eb2e48..00000000 --- a/src/wfc/messages/messageContentMediaType.js +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class MessageContentMediaType { - static General = 0; - static Image = 1; - static Voice = 2; - static Video = 3; - static File = 4; - static Portrait = 5; - static Favorite = 6; - static Sticker = 7; - static Moments = 8; -} diff --git a/src/wfc/messages/messageContentType.js b/src/wfc/messages/messageContentType.js deleted file mode 100644 index 11e43526..00000000 --- a/src/wfc/messages/messageContentType.js +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ -export default class MessageContentType { - // 基本消息类型 - static Unknown = 0; - static Text = 1; - static Voice = 2; - static Image = 3; - static Location = 4; - static File = 5; - static Video = 6; - static Sticker = 7; - static Link = 8; - static P_Text = 9; - static UserCard = 10; - static Composite_Message = 11; - static Rich_Notification = 12; - static Articles = 13; - - //流式文本正在生成消息 - static Streaming_Text_Generating = 14; - //流式文本消息 - static Streaming_Text_Generated = 15; - static Mark_Unread_Sync = 31; - - static StartSecretChat_Notification = 40; - - //频道进出消息 - static Enter_Channel_Chat = 71; - static Leave_Channel_Chat = 72; - static Channel_Menu_Event = 73 - - // 提醒消息 - static RecallMessage_Notification = 80; - static DeleteMessage_Notification = 81; //不存储的 - static Tip_Notification = 90; - static Typing = 91; - // //以上是打招呼的内容 - // int ContentType_Friend_Greeting = 92; - // //您已经添加XXX为好友了,可以愉快地聊天了 - // int ContentType_Friend_Added = 93; - // - // int ContentType_PC_LOGIN_REQUSET = 94; - - static Friend_Greeting = 92; - static Friend_Added = 93; - static PC_Login_Request = 94; - - // 群相关消息 - static CreateGroup_Notification = 104; - static AddGroupMember_Notification = 105; - static KickOffGroupMember_Notification = 106; - static QuitGroup_Notification = 107; - static DismissGroup_Notification = 108; - static TransferGroupOwner_Notification = 109; - static ChangeGroupName_Notification = 110; - static ModifyGroupAlias_Notification = 111; - static ChangeGroupPortrait_Notification = 112; - static MuteGroup_Notification = 113; - static ChangeJoinType_Notification = 114; - static ChangePrivateChat_Notification = 115; - static ChangeSearchable_Notification = 116; - static SetGroupManager_Notification = 117; - //禁言/取消禁言群成员的通知消息 - static MuteGroupMember_Notification = 118; - // 全局禁言之后,允许群成员发言的通知消息 - static AllowGroupMember_Notification = 119; - //踢出群成员的可见通知消息 - static KickOffGroupMember_Visible_Notification = 120; - //退群的可见通知消息 - static QuitGroup_Visible_Notification = 121; - - static ModifyGroupExtra_Notification = 122; - static ModifyGroupMemberExtra_Notification = 123; - - - static VOIP_CONTENT_TYPE_START = 400; - static VOIP_CONTENT_TYPE_END = 402; - static VOIP_CONTENT_TYPE_ACCEPT = 401; - static VOIP_CONTENT_TYPE_SIGNAL = 403; - static VOIP_CONTENT_TYPE_MODIFY = 404; - static VOIP_CONTENT_TYPE_ACCEPT_T = 405; - static VOIP_CONTENT_TYPE_ADD_PARTICIPANT = 406; - static VOIP_CONTENT_TYPE_MUTE_VIDEO = 407; - static CONFERENCE_CONTENT_TYPE_INVITE = 408; - static CONFERENCE_CONTENT_TYPE_CHANGE_MODE = 410; - static CONFERENCE_CONTENT_TYPE_KICKOFF_MEMBER = 411; - static CONFERENCE_CONTENT_TYPE_COMMAND = 412; - - static VOIP_Multi_Call_Ongoing = 416; - static VOIP_Join_Call_Request = 417; - - static MESSAGE_CONTENT_TYPE_FEED = 501; - static MESSAGE_CONTENT_TYPE_COMMENT = 502; -} diff --git a/src/wfc/messages/messagePayload.js b/src/wfc/messages/messagePayload.js deleted file mode 100644 index 2bb1a709..00000000 --- a/src/wfc/messages/messagePayload.js +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -/** - * - "content": { - "type": 1, - "searchableContent": "1234", - "pushContent": "", - "content": "", - "binaryContent": "", - "localContent": "", - "mediaType": 0, - "remoteMediaUrl": "", - "localMediaPath": "", - "mentionedType": 0, - "mentionedTargets": [ ] - }, - */ -export default class MessagePayload { - type; - searchableContent; - pushContent; - pushData; - content; - binaryContent; // base64 string, 图片时,不包含头部信息:data:image/png;base64, - localContent; - mediaType; - remoteMediaUrl; - localMediaPath; - mentionedType = 0; - mentionedTargets = []; - extra; -} diff --git a/src/wfc/messages/messageStatus.js b/src/wfc/messages/messageStatus.js deleted file mode 100644 index 2680bf90..00000000 --- a/src/wfc/messages/messageStatus.js +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class MessageStatus { - static All = -1; - static Sending = 0; - static Sent = 1; - static SendFailure = 2; - static Mentioned = 3; - static AllMentioned = 4; - static Unread = 5; - static Readed = 6; - static Played = 7; -} diff --git a/src/wfc/messages/notification/addGroupMemberNotification.js b/src/wfc/messages/notification/addGroupMemberNotification.js deleted file mode 100644 index 22ece5e9..00000000 --- a/src/wfc/messages/notification/addGroupMemberNotification.js +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from '../messageContentType'; - -import GroupNotificationContent from './groupNotification'; - -export default class AddGroupMemberNotification extends GroupNotificationContent { - invitor = ''; - invitees = []; - - constructor(invitor, invitees) { - super(MessageContentType.AddGroupMember_Notification); - this.invitor = invitor; - this.invitees = invitees; - } - - formatNotification() { - let notifyStr; - if (this.invitees.length === 1 && this.invitees[0] === this.invitor) { - if (this.fromSelf) { - return '您加入了群组'; - } else { - return wfc.getGroupMemberDisplayName(this.groupId, this.invitor) + ' 加入了群组'; - } - } - - if (this.fromSelf) { - notifyStr = '您邀请:'; - } else { - notifyStr = wfc.getGroupMemberDisplayName(this.groupId, this.invitor) + '邀请:'; - } - - let membersStr = ''; - let userInfos = wfc.getUserInfos(this.invitees, this.groupId); - userInfos.forEach(m => { - membersStr += ' ' + m.displayName; - }); - - return notifyStr + membersStr + '加入了群组'; - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - o: this.invitor, - ms: this.invitees, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent); - let obj = JSON.parse(json); - this.groupId = obj.g; - this.invitor = obj.o; - this.invitees = obj.ms; - } -} diff --git a/src/wfc/messages/notification/allowGroupMemberNotification.js b/src/wfc/messages/notification/allowGroupMemberNotification.js deleted file mode 100644 index 0762e5a0..00000000 --- a/src/wfc/messages/notification/allowGroupMemberNotification.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import GroupNotificationContent from './groupNotification' -import MessageContentType from '../messageContentType' -import wfc from '../../client/wfc' - -export default class AllowGroupMemberNotification extends GroupNotificationContent { - groupId - operator - // 操作类型,1允许发言,0禁止发言 - type - memberIds - - constructor(operator, type, memberIds) { - super(MessageContentType.MuteGroupMember_Notification) - this.operator = operator - this.type = type - this.memberIds = memberIds - } - - formatNotification(message) { - let notifyStr = '' - if (this.fromSelf) { - notifyStr += '您' - } else { - notifyStr += wfc.getGroupMemberDisplayName(this.groupId, - this.operator) - } - notifyStr += '把' - if (this.memberIds) { - this.memberIds.forEach((memberId) => { - notifyStr += ' ' - notifyStr += wfc.getGroupMemberDisplayName(this.groupId, - memberId) - }) - } - if (this.type === 0) { - notifyStr += '取消群禁言时发言权限' - } else { - notifyStr += '允许群禁言时发言' - } - return notifyStr - } - - encode() { - let payload = super.encode() - let obj = { - g: this.groupId, - o: this.operator, - n: this.type + '', - ms: this.memberIds, - } - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)) - return payload - } - - decode(payload) { - super.decode(payload) - - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json) - this.groupId = obj.g - this.operator = obj.o - this.type = parseInt(obj.n) - this.memberIds = obj.ms - } -} diff --git a/src/wfc/messages/notification/changeGroupNameNotification.js b/src/wfc/messages/notification/changeGroupNameNotification.js deleted file mode 100644 index 76423748..00000000 --- a/src/wfc/messages/notification/changeGroupNameNotification.js +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from "../messageContentType"; - -import GroupNotificationContent from "./groupNotification"; - -export default class ChangeGroupNameNotification extends GroupNotificationContent { - operator = ''; - name = ''; - - constructor(operator, name) { - super(MessageContentType.ChangeGroupName_Notification); - this.operator = operator; - this.name = name; - } - - formatNotification() { - if (this.fromSelf) { - return '您修改群名称为:' + this.name; - } else { - return wfc.getGroupMemberDisplayName(this.groupId, this.operator) + '修改群名称为:' + this.name; - } - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - n: this.name, - o: this.operator, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.groupId = obj.g; - this.operator = obj.o; - this.name = obj.n; - } - -} diff --git a/src/wfc/messages/notification/changeGroupPortraitNotification.js b/src/wfc/messages/notification/changeGroupPortraitNotification.js deleted file mode 100644 index e7ef336f..00000000 --- a/src/wfc/messages/notification/changeGroupPortraitNotification.js +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from "../messageContentType"; - -import GroupNotificationContent from "./groupNotification"; - -export default class ChangeGroupPortraitNotification extends GroupNotificationContent { - operator = ''; - - constructor(operator) { - super(MessageContentType.ChangeGroupPortrait_Notification); - this.operator = operator; - } - - formatNotification() { - if (this.fromSelf) { - return '您修改群头像'; - } else { - return wfc.getGroupMemberDisplayName(this.groupId, this.operator) + '修改了群头像'; - } - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - n: this.name, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.groupId = obj.g; - this.operator = obj.o; - } - -} diff --git a/src/wfc/messages/notification/chatRoomWelcomeNotificationContent.js b/src/wfc/messages/notification/chatRoomWelcomeNotificationContent.js deleted file mode 100644 index 69fb875b..00000000 --- a/src/wfc/messages/notification/chatRoomWelcomeNotificationContent.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import NotificationMessageContent from "./notificationMessageContent"; - -export default class ChatRoomWelcomeNotificationContent extends NotificationMessageContent { - welcome; - - - formatNotification(message) { - return this.welcome; - } - - encode() { - return super.encode(); - } - - decode(payload) { - super.decode(payload); - } -} diff --git a/src/wfc/messages/notification/createGroupNotification.js b/src/wfc/messages/notification/createGroupNotification.js deleted file mode 100644 index 5a717061..00000000 --- a/src/wfc/messages/notification/createGroupNotification.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from '../messageContentType'; - -import GroupNotificationContent from './groupNotification'; - -export default class CreateGroupNotification extends GroupNotificationContent { - creator = ''; - groupName = ''; - - constructor(creator, groupName) { - super(MessageContentType.CreateGroup_Notification); - this.creator = creator; - this.groupName = groupName; - } - - formatNotification() { - if (this.fromSelf) { - return '您创建了群组 ' + this.groupName; - } else { - return wfc.getUserDisplayName(this.creator) + '创建了群组 ' + this.groupName; - } - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - n: this.groupName, - o: this.creator, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.groupId = obj.g; - this.creator = obj.o; - this.groupName = obj.n; - } -} diff --git a/src/wfc/messages/notification/dismissGroupNotification.js b/src/wfc/messages/notification/dismissGroupNotification.js deleted file mode 100644 index 62c2d974..00000000 --- a/src/wfc/messages/notification/dismissGroupNotification.js +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from '../messageContentType'; - -import GroupNotificationContent from './groupNotification'; - -export default class DismissGroupNotification extends GroupNotificationContent { - operator = ''; - - constructor(operator) { - super(MessageContentType.DismissGroup_Notification); - this.operator = operator; - } - - formatNotification() { - if (this.fromSelf) { - return '您解散了群组'; - } else { - return wfc.getGroupMemberDisplayName(this.groupId, this.operator) + '解散了群组'; - } - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - o: this.operator, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.groupId = obj.g; - this.operator = obj.o; - } -} diff --git a/src/wfc/messages/notification/friendAddedNotification.js b/src/wfc/messages/notification/friendAddedNotification.js deleted file mode 100644 index 5bab9606..00000000 --- a/src/wfc/messages/notification/friendAddedNotification.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import NotificationMessageContent from "./notificationMessageContent"; -import MessageContentType from "../messageContentType"; - -export default class FriendAddedNotification extends NotificationMessageContent { - - constructor() { - super(MessageContentType.Friend_Added); - } - - formatNotification() { - return "你们已经是好友了,可以开始聊天了。"; - } -} diff --git a/src/wfc/messages/notification/friendGreetingNotification.js b/src/wfc/messages/notification/friendGreetingNotification.js deleted file mode 100644 index a14472be..00000000 --- a/src/wfc/messages/notification/friendGreetingNotification.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2022 WildFireChat. All rights reserved. - */ - -import NotificationMessageContent from "./notificationMessageContent"; -import MessageContentType from "../messageContentType"; - -export default class FriendGreetingNotification extends NotificationMessageContent { - constructor() { - super(MessageContentType.Friend_Greeting); - } - - formatNotification(message) { - return "以上是打招呼的内容"; - } -} diff --git a/src/wfc/messages/notification/groupJoinTypeNotificationContent.js b/src/wfc/messages/notification/groupJoinTypeNotificationContent.js deleted file mode 100644 index 13963d64..00000000 --- a/src/wfc/messages/notification/groupJoinTypeNotificationContent.js +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import GroupNotificationContent from "./groupNotification"; -import wfc from "../../client/wfc"; -import MessageContentType from "../messageContentType"; - -export default class GroupJoinTypeNotificationContent extends GroupNotificationContent { - operator; - - //在group type为Restricted时,0 开放加入权限(群成员可以拉人,用户也可以主动加入);1 只能群成员拉人入群;2 只能群管理拉人入群 - joinType; - - - constructor(operator, joinType) { - super(MessageContentType.ChangeJoinType_Notification); - this.operator = operator; - this.type = joinType; - } - - formatNotification(message) { - let notifyStr; - if (this.fromSelf) { - notifyStr = '您'; - } else { - notifyStr = wfc.getGroupMemberDisplayName(this.groupId, this.operator); - } - switch (this.joinType) { - case 0: - notifyStr += ' 开放了加入群组功能'; - break; - case 1: - notifyStr += ' 仅允许群成员邀请加入群组'; - break; - case 2: - notifyStr += " 关闭了加入群组功能"; - break; - default: - break; - } - return notifyStr; - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - o: this.operator, - n: (this.joinType + '') - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return super.encode(); - } - - decode(payload) { - super.decode(payload); - let obj = JSON.parse(wfc.b64_to_utf8(payload.binaryContent)); - this.groupId = obj.g; - this.operator = obj.o; - this.joinType = parseInt(obj.n); - } -} diff --git a/src/wfc/messages/notification/groupMuteNotificationContent.js b/src/wfc/messages/notification/groupMuteNotificationContent.js deleted file mode 100644 index 95dee11b..00000000 --- a/src/wfc/messages/notification/groupMuteNotificationContent.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import GroupNotificationContent from "./groupNotification"; -import MessageContentType from "../messageContentType"; -import wfc from "../../client/wfc"; - -export default class GroupMuteNotificationContent extends GroupNotificationContent { - operator; - - //0 正常;1 全局禁言 - muteType; - - constructor(operator, muteType) { - super(MessageContentType.MuteGroup_Notification); - this.operator = operator; - this.muteType = muteType; - } - - formatNotification(message) { - // return sb.toString(); - let notifyStr = this.fromSelf ? '您' : wfc.getGroupMemberDisplayName(this.groupId, this.operator); - notifyStr += this.muteType === 0 ? ' 关闭了全员禁言' : ' 开启了全员禁言'; - - return notifyStr; - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - o: this.operator, - n: this.muteType + '' - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let obj = JSON.parse(wfc.b64_to_utf8(payload.binaryContent)); - this.groupId = obj.g; - this.operator = obj.o; - this.muteType = parseInt(obj.n); - } -} diff --git a/src/wfc/messages/notification/groupNotification.js b/src/wfc/messages/notification/groupNotification.js deleted file mode 100644 index ff0a9a5f..00000000 --- a/src/wfc/messages/notification/groupNotification.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import NotificationMessageContent from "./notificationMessageContent"; - -export default class GroupNotificationContent extends NotificationMessageContent { - groupId = ''; - constructor(type) { - super(type); - } -} diff --git a/src/wfc/messages/notification/groupPrivateChatNotificationContent.js b/src/wfc/messages/notification/groupPrivateChatNotificationContent.js deleted file mode 100644 index 4103b932..00000000 --- a/src/wfc/messages/notification/groupPrivateChatNotificationContent.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import GroupNotificationContent from "./groupNotification"; -import MessageContentType from "../messageContentType"; -import wfc from "../../client/wfc"; - -export default class GroupPrivateChatNotificationContent extends GroupNotificationContent { - operator; - - //是否运行群中普通成员私聊。0 允许,1不允许 - privateChatType; - - constructor(operator, privateChatType) { - super(MessageContentType.ChangePrivateChat_Notification); - this.operator = operator; - this.privateChatType = privateChatType; - } - - formatNotification(message) { - // return sb.toString(); - let notifyStr = this.fromSelf ? '您' : wfc.getGroupMemberDisplayName(this.groupId, this.operator); - notifyStr += this.privateChatType === 0 ? ' 开启了成员私聊' : ' 关闭了成员私聊'; - - return notifyStr; - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - o: this.operator, - n: this.privateChatType + '' - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let obj = JSON.parse(wfc.b64_to_utf8(payload.binaryContent)); - this.groupId = obj.g; - this.operator = obj.o; - this.privateChatType = parseInt(obj.n); - } -} diff --git a/src/wfc/messages/notification/groupSetManagerNotificationContent.js b/src/wfc/messages/notification/groupSetManagerNotificationContent.js deleted file mode 100644 index f1d52f3e..00000000 --- a/src/wfc/messages/notification/groupSetManagerNotificationContent.js +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import GroupNotificationContent from "./groupNotification"; -import MessageContentType from "../messageContentType"; -import wfc from "../../client/wfc"; - -export default class GroupSetManagerNotificationContent extends GroupNotificationContent { - operator; - // 1, 设置为管理员;0,取消管理员 - setManagerType; - - memberIds = []; - - - constructor(operator, setManagerType, memberIds) { - super(MessageContentType.SetGroupManager_Notification); - this.operator = operator; - this.setManagerType = setManagerType; - this.memberIds = memberIds; - } - - - formatNotification(message) { - let notifyStr = this.fromSelf ? '您' : wfc.getGroupMemberDisplayName(this.groupId, this.operator) - notifyStr += '把 '; - this.memberIds.forEach((memberId) => { - notifyStr += ' '; - notifyStr += wfc.getGroupMemberDisplayName(this.groupId, memberId); - }) - notifyStr += ' '; - notifyStr += this.setManagerType === 0 ? '取消了管理员' : '设置为了管理员'; - return notifyStr; - } - - encode() { - // MessagePayload payload = new MessagePayload(); - // try { - // JSONObject objWrite = new JSONObject(); - // objWrite.put("g", groupId); - // objWrite.put("o", operator); - // objWrite.put("n", type + ""); - // JSONArray objArray = new JSONArray(); - // for (String id : memberIds) { - // objArray.put(id); - // } - // objWrite.put("ms", objArray); - // payload.binaryContent = objWrite.toString().getBytes(); - // } catch (JSONException e) { - // e.printStackTrace(); - // } - let payload = super.encode(); - let obj = { - g: this.groupId, - o: this.operator, - n: this.setManagerType + '', - ms: this.memberIds, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let obj = JSON.parse(wfc.b64_to_utf8(payload.binaryContent)); - this.groupId = obj.g; - this.operator = obj.o; - this.setManagerType = parseInt(obj.n); - this.memberIds = obj.ms; - } -} diff --git a/src/wfc/messages/notification/kickoffGroupMemberNotification.js b/src/wfc/messages/notification/kickoffGroupMemberNotification.js deleted file mode 100644 index 5bb11fb3..00000000 --- a/src/wfc/messages/notification/kickoffGroupMemberNotification.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from "../messageContentType"; - -import GroupNotificationContent from "./groupNotification"; - -export default class KickoffGroupMemberNotification extends GroupNotificationContent { - operator = ''; - kickedMembers = []; - - constructor(operator, kickedMembers) { - super(MessageContentType.KickOffGroupMember_Notification); - this.operator = operator; - this.kickedMembers = kickedMembers; - } - - formatNotification() { - let notifyStr; - if (this.fromSelf) { - notifyStr = '您把 '; - } else { - notifyStr = wfc.getGroupMemberDisplayName(this.groupId, this.operator) + '把 '; - } - - let kickedMembersStr = ''; - let userInfos = wfc.getUserInfos(this.kickedMembers, this.groupId); - userInfos.forEach(userInfo => { - if (userInfo.uid === wfc.getUserId()) { - kickedMembersStr += ' 您'; - } else { - kickedMembersStr += ' ' + userInfo.displayName; - } - }); - - return notifyStr + kickedMembersStr + ' 移除了群组'; - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - ms: this.kickedMembers, - o: this.operateUser, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.groupId = obj.g; - this.operator = obj.o; - this.kickedMembers = obj.ms; - } -} diff --git a/src/wfc/messages/notification/kickoffGroupMemberVisiableNotification.js b/src/wfc/messages/notification/kickoffGroupMemberVisiableNotification.js deleted file mode 100644 index 8a8e3d89..00000000 --- a/src/wfc/messages/notification/kickoffGroupMemberVisiableNotification.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from "../messageContentType"; - -import GroupNotificationContent from "./groupNotification"; - -export default class KickoffGroupMemberVisiableNotification extends GroupNotificationContent { - operator = ''; - kickedMembers = []; - - constructor(operator, kickedMembers) { - super(MessageContentType.KickOffGroupMember_Visible_Notification); - this.operator = operator; - this.kickedMembers = kickedMembers; - } - - formatNotification() { - let notifyStr; - if (this.fromSelf) { - notifyStr = '您把 '; - } else { - notifyStr = wfc.getGroupMemberDisplayName(this.groupId, this.operator) + '把 '; - } - - let kickedMembersStr = ''; - let userInfos = wfc.getUserInfos(this.kickedMembers, this.groupId); - userInfos.forEach(userInfo => { - if (userInfo.uid === wfc.getUserId()) { - kickedMembersStr += ' 您'; - } else { - kickedMembersStr += ' ' + userInfo.displayName; - } - }); - - return notifyStr + kickedMembersStr + ' 移除了群组'; - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - ms: this.kickedMembers, - o: this.operateUser, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.groupId = obj.g; - this.operator = obj.o; - this.kickedMembers = obj.ms; - } -} diff --git a/src/wfc/messages/notification/modifyGroupAliasNotification.js b/src/wfc/messages/notification/modifyGroupAliasNotification.js deleted file mode 100644 index 5bb82bd6..00000000 --- a/src/wfc/messages/notification/modifyGroupAliasNotification.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from '../messageContentType'; - -import GroupNotificationContent from './groupNotification'; - -export default class ModifyGroupAliasNotification extends GroupNotificationContent { - operator = ''; - alias = ''; - memberId = ''; - - constructor(creator, alias) { - super(MessageContentType.ModifyGroupAlias_Notification); - this.operator = creator; - this.alias = alias; - } - - formatNotification() { - let notificationStr = ''; - if (this.fromSelf) { - notificationStr += '你'; - } else { - let userInfo = wfc.getUserInfo(this.operator, false, this.groupId) - if (userInfo.friendAlias) { - notificationStr += userInfo.friendAlias; - } else if (userInfo.displayName) { - notificationStr += userInfo.displayName; - } else { - notificationStr += this.operator; - } - } - notificationStr += '修改'; - if (this.memberId) { - let userInfo = wfc.getUserInfo(this.memberId, false); - if (userInfo.friendAlias) { - notificationStr += userInfo.friendAlias; - } else if (userInfo.displayName) { - notificationStr += userInfo.displayName; - } else { - notificationStr += this.memberId; - } - notificationStr += '的'; - } - notificationStr += '群昵称为'; - notificationStr += this.alias; - - return notificationStr; - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - n: this.alias, - o: this.operator, - m: this.memberId, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.groupId = obj.g; - this.operator = obj.o; - this.alias = obj.n; - this.memberId = obj.m; - } -} diff --git a/src/wfc/messages/notification/modifyGroupExtraNotification.js b/src/wfc/messages/notification/modifyGroupExtraNotification.js deleted file mode 100644 index 5f79f562..00000000 --- a/src/wfc/messages/notification/modifyGroupExtraNotification.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from '../messageContentType'; - -import GroupNotificationContent from './groupNotification'; - -export default class ModifyGroupExtraNotification extends GroupNotificationContent { - operator = ''; - groupExtra = ''; - - constructor(creator, groupExtra) { - super(MessageContentType.ModifyGroupExtra_Notification); - this.operator = creator; - this.groupExtra = groupExtra; - } - - formatNotification() { - let notificationStr = ''; - if (this.fromSelf) { - notificationStr += '你'; - } else { - let userInfo = wfc.getUserInfo(this.operator, false, this.groupId) - if (userInfo.friendAlias) { - notificationStr += userInfo.friendAlias; - } else if (userInfo.displayName) { - notificationStr += userInfo.displayName; - } else { - notificationStr += this.operator; - } - } - notificationStr += '修改'; - notificationStr += '群附加信息为'; - notificationStr += this.groupExtra; - - return notificationStr; - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - n: this.groupExtra, - o: this.operator, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.groupId = obj.g; - this.operator = obj.o; - this.groupExtra = obj.n; - } -} diff --git a/src/wfc/messages/notification/modifyGroupMemberExtraNotification.js b/src/wfc/messages/notification/modifyGroupMemberExtraNotification.js deleted file mode 100644 index 2b311a00..00000000 --- a/src/wfc/messages/notification/modifyGroupMemberExtraNotification.js +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from '../messageContentType'; - -import GroupNotificationContent from './groupNotification'; - -export default class ModifyGroupMemberExtraNotification extends GroupNotificationContent { - operator = ''; - groupMemberExtra = ''; - memberId = ''; - - constructor(creator, groupMemberExtra) { - super(MessageContentType.ModifyGroupMemberExtra_Notification); - this.operator = creator; - this.groupMemberExtra = groupMemberExtra; - } - - formatNotification() { - let notificationStr = ''; - if (this.fromSelf) { - notificationStr += '你'; - } else { - let userInfo = wfc.getUserInfo(this.operator, false, this.groupId) - if (userInfo.friendAlias) { - notificationStr += userInfo.friendAlias; - } else if (userInfo.displayName) { - notificationStr += userInfo.displayName; - } else { - notificationStr += this.operator; - } - } - notificationStr += '修改'; - if (this.memberId) { - let userInfo = wfc.getUserInfo(this.memberId, false); - if (userInfo.friendAlias) { - notificationStr += userInfo.friendAlias; - } else if (userInfo.displayName) { - notificationStr += userInfo.displayName; - } else { - notificationStr += this.memberId; - } - notificationStr += '的'; - } - notificationStr += '群成员信息为'; - notificationStr += this.groupMemberExtra; - - return notificationStr; - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - n: this.groupMemberExtra, - o: this.operator, - m: this.memberId, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.groupId = obj.g; - this.operator = obj.o; - this.groupMemberExtra = obj.n; - this.memberId = obj.m; - } -} diff --git a/src/wfc/messages/notification/muteGroupMemberNotification.js b/src/wfc/messages/notification/muteGroupMemberNotification.js deleted file mode 100644 index 1a628a30..00000000 --- a/src/wfc/messages/notification/muteGroupMemberNotification.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import GroupNotificationContent from './groupNotification' -import MessageContentType from '../messageContentType' -import wfc from '../../client/wfc' - -export default class MuteGroupMemberNotification extends GroupNotificationContent { - groupId - operator - // 操作类型,1禁言,0取消禁言 - muteType - memberIds - - constructor(operator, muteType, memberIds) { - super(MessageContentType.MuteGroupMember_Notification) - this.operator = operator - this.muteType = muteType - this.memberIds = memberIds - } - - formatNotification(message) { - let notifyStr = '' - if (this.fromSelf) { - notifyStr += '您' - } else { - notifyStr += wfc.getGroupMemberDisplayName(this.groupId, - this.operator) - } - notifyStr += '把' - if (this.memberIds) { - this.memberIds.forEach((memberId) => { - notifyStr += ' ' - notifyStr += wfc.getGroupMemberDisplayName(this.groupId, - memberId) - }) - } - if (this.muteType === 1) { - notifyStr += '设置了禁言' - } else { - notifyStr += '取消了禁言' - } - return notifyStr - } - - encode() { - let payload = super.encode() - let obj = { - g: this.groupId, - o: this.operator, - n: this.muteType + '', - ms: this.memberIds, - } - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)) - return payload - } - - decode(payload) { - super.decode(payload) - - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json) - this.groupId = obj.g - this.operator = obj.o - this.muteType = parseInt(obj.n) - this.memberIds = obj.ms - } -} diff --git a/src/wfc/messages/notification/notificationMessageContent.js b/src/wfc/messages/notification/notificationMessageContent.js deleted file mode 100644 index e12e6370..00000000 --- a/src/wfc/messages/notification/notificationMessageContent.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from "../messageContent"; - -export default class NotificationMessageContent extends MessageContent { - // message#protoMessageToMessage时设置 - fromSelf = false; - - constructor(type) { - super(type); - } - - digest(message) { - var desc = ''; - try { - desc = this.formatNotification(message); - } catch (error) { - console.log('disgest', error); - } - return desc; - } - - formatNotification(message) { - return '..nofication..'; - } -} diff --git a/src/wfc/messages/notification/quitGroupNotification.js b/src/wfc/messages/notification/quitGroupNotification.js deleted file mode 100644 index f68462f5..00000000 --- a/src/wfc/messages/notification/quitGroupNotification.js +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from '../messageContentType'; - -import GroupNotificationContent from './groupNotification'; - -export default class QuitGroupNotification extends GroupNotificationContent { - operator = ''; - - constructor(operator) { - super(MessageContentType.QuitGroup_Notification); - this.operator = operator; - } - - formatNotification() { - if (this.fromSelf) { - return '您退出了群组'; - } else { - return wfc.getGroupMemberDisplayName(this.groupId, this.operator) + '退出了群组'; - } - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - o: this.operator, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.groupId = obj.g; - this.operator = obj.o; - } -} diff --git a/src/wfc/messages/notification/quitGroupVisiableNotification.js b/src/wfc/messages/notification/quitGroupVisiableNotification.js deleted file mode 100644 index 7b8bbf46..00000000 --- a/src/wfc/messages/notification/quitGroupVisiableNotification.js +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from '../messageContentType'; - -import GroupNotificationContent from './groupNotification'; - -export default class QuitVisiableGroupNotification extends GroupNotificationContent { - operator = ''; - - constructor(operator) { - super(MessageContentType.QuitGroup_Visible_Notification); - this.operator = operator; - } - - formatNotification() { - if (this.fromSelf) { - return '您退出了群组'; - } else { - return wfc.getGroupMemberDisplayName(this.groupId, this.operator) + '退出了群组'; - } - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - o: this.operator, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.groupId = obj.g; - this.operator = obj.o; - } -} diff --git a/src/wfc/messages/notification/recallMessageNotification.js b/src/wfc/messages/notification/recallMessageNotification.js deleted file mode 100644 index 1cb94a29..00000000 --- a/src/wfc/messages/notification/recallMessageNotification.js +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import NotificationMessageContent from './notificationMessageContent' -import wfc from '../../client/wfc' -import MessageContentType from '../messageContentType'; -import Long from 'long'; -import ConversationType from "../../model/conversationType"; - -export default class RecallMessageNotification extends NotificationMessageContent { - operatorId = ''; - messageUid = new Long(0); - - originalSender; - originalContentType; - originalSearchableContent; - originalContent; - originalExtra; - originalMessageTimestamp; - - constructor(operatorId, messageUid) { - super(MessageContentType.RecallMessage_Notification); - this.operatorId = operatorId; - this.messageUid = messageUid; - } - - formatNotification(message) { - if (this.operatorId === wfc.getUserId()){ - return "你撤回了一条消息"; - } - if (message.conversation.type === ConversationType.Group) { - return wfc.getGroupMemberDisplayName(message.conversation.target, this.operatorId) + "撤回了一条消息"; - } else { - return wfc.getUserDisplayName(this.operatorId) + "撤回了一条消息"; - } - } - - encode() { - let payload = super.encode(); - payload.content = this.operatorId; - payload.binaryContent = wfc.utf8_to_b64(this.messageUid.toString()); - return payload; - } - - decode(payload) { - super.decode(payload); - this.operatorId = payload.content; - this.messageUid = Long.fromString(wfc.b64_to_utf8(payload.binaryContent)); - - try { - this.setExtra(payload.extra); - } catch (e) { - console.error('decode recallMessage extra error', e) - } - } - - setExtra(extra) { - if (extra) { - extra =extra.replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t"); - let obj = JSON.parse(extra); - this.originalSender = obj["s"]; - this.originalContentType = obj["t"]; - this.originalSearchableContent = obj["sc"]; - this.originalContent = obj["c"]; - this.originalExtra = obj["e"]; - this.originalMessageTimestamp = Long.fromValue(obj["ts"]); - } - } -} diff --git a/src/wfc/messages/notification/richNotificationMessageContent.js b/src/wfc/messages/notification/richNotificationMessageContent.js deleted file mode 100644 index 26031c60..00000000 --- a/src/wfc/messages/notification/richNotificationMessageContent.js +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from '../messageContentType'; - -import NotificationMessageContent from "./notificationMessageContent"; - -export default class RichNotificationMessageContent extends NotificationMessageContent { - - // 富通知消息 - title; - desc; - remark; - - // @[@{@"key":@"登陆账户", @"value":@"野火IM", @"color":@"#173155"}, @{@"key":@"登陆地点", @"value":@"北京", @"color":@"#173155"}] - datas; - - // 附加信息 - exName; - exPortrait; - exUrl; - - // 应用信息 - appId; - - constructor() { - super(MessageContentType.Rich_Notification); - } - - formatNotification() { - return this.title; - } - - encode() { - let payload = super.encode(); - payload.pushContent = this.title; - payload.content = this.desc; - - let obj = { - remark: this.remark, - exName: this.exName, - exPortrait: this.exPortrait, - exUrl: this.exUrl, - appId: this.appId, - datas: this.datas, - } - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)) - - return payload; - } - - decode(payload) { - super.decode(payload); - this.title = payload.pushContent; - this.desc = payload.content; - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.remark = obj.remark; - this.exName = obj.exName; - this.exPortrait = obj.exPortrait; - this.exUrl = obj.exUrl; - this.appId = obj.appId; - this.datas = obj.datas; - } -} diff --git a/src/wfc/messages/notification/startSecretChatNotification.js b/src/wfc/messages/notification/startSecretChatNotification.js deleted file mode 100644 index 9e088de4..00000000 --- a/src/wfc/messages/notification/startSecretChatNotification.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import NotificationMessageContent from './notificationMessageContent' -import MessageContentType from "../messageContentType"; -import wfc from "../../client/wfc"; -import SecretChatState from "../../model/secretChatState"; - -export default class StartSecretChatNotification extends NotificationMessageContent { - - constructor() { - super(MessageContentType.StartSecretChat_Notification); - } - - formatNotification(message) { - let state = wfc.getSecretChatInfo(message.conversation.target).state; - if (state === SecretChatState.Starting) { - return "等待对方响应"; - } else if (state === SecretChatState.Accepting) { - return "密聊会话建立中"; - } else if (state === SecretChatState.Established) { - return "密聊会话已建立"; - } else if (state === SecretChatState.Canceled) { - return "密聊会话已取消"; - } else { - return "密聊会话不可用"; - } - } - - encode() { - return super.encode(); - } - - decode(payload) { - super.decode(payload); - } -} diff --git a/src/wfc/messages/notification/templateNotification.js b/src/wfc/messages/notification/templateNotification.js deleted file mode 100644 index 56a9dfbb..00000000 --- a/src/wfc/messages/notification/templateNotification.js +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import NotificationMessageContent from './notificationMessageContent' - -export default class TemplateNotification extends NotificationMessageContent { - tip = ''; - - constructor(type) { - super(type) - this.tip = ''; - } - - formatNotification() { - return this.tip; - } - - digest() { - return this.tip; - } - - encode() { - let payload = super.encode(); - payload.content = this.tip; - return payload; - }; - - decode(payload) { - super.decode(payload); - this.tip = payload.content; - } -} diff --git a/src/wfc/messages/notification/tipNotification.js b/src/wfc/messages/notification/tipNotification.js deleted file mode 100644 index 1fc1ffb7..00000000 --- a/src/wfc/messages/notification/tipNotification.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import NotificationMessageContent from './notificationMessageContent' -import MessageContentType from '../messageContentType'; - -export default class TipNotificationMessageContent extends NotificationMessageContent { - tip = ''; - - constructor(tip) { - super(MessageContentType.Tip_Notification); - this.tip = tip; - } - - formatNotification() { - return this.tip; - } - - digest() { - return this.tip; - } - - encode() { - let payload = super.encode(); - payload.content = this.tip; - return payload; - }; - - decode(payload) { - super.decode(payload); - this.tip = payload.content; - } -} diff --git a/src/wfc/messages/notification/transferGroupOwnerNotification.js b/src/wfc/messages/notification/transferGroupOwnerNotification.js deleted file mode 100644 index d7fd1373..00000000 --- a/src/wfc/messages/notification/transferGroupOwnerNotification.js +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../../client/wfc' -import MessageContentType from '../messageContentType'; -import GroupNotificationContent from './groupNotification'; - -export default class TransferGroupOwnerNotification extends GroupNotificationContent { - operator = ''; - newOwner = ''; - - constructor(operator, newOwner) { - super(MessageContentType.TransferGroupOwner_Notification); - this.operator = operator; - this.newOwner = newOwner; - } - - formatNotification() { - if (this.fromSelf) { - return '您把群转让给了 ' + wfc.getGroupMemberDisplayName(this.groupId, this.newOwner); - } else { - return wfc.getGroupMemberDisplayName(this.groupId, this.operator) + '把群转让给了 ' + wfc.getGroupMemberDisplayName(this.groupId, this.newOwner) - } - } - - encode() { - let payload = super.encode(); - let obj = { - g: this.groupId, - o: this.operator, - m: this.newOwner, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let json = wfc.b64_to_utf8(payload.binaryContent) - let obj = JSON.parse(json); - this.groupId = obj.g; - this.operator = obj.o; - this.newOwner = obj.m; - } -} diff --git a/src/wfc/messages/pcLoginRequestMessageContent.js b/src/wfc/messages/pcLoginRequestMessageContent.js deleted file mode 100644 index 7e1fdd28..00000000 --- a/src/wfc/messages/pcLoginRequestMessageContent.js +++ /dev/null @@ -1,37 +0,0 @@ -import MessageContent from "./messageContent"; -import MessageContentType from "./messageContentType"; -import MessageContentMediaType from "./messageContentMediaType"; -import wfc from "../client/wfc"; - -export default class PcLoginRequestMessageContent extends MessageContent{ - platform; - sessionId; - - - constructor() { - super(MessageContentType.PC_Login_Request); - } - - digest() { - return '[PC请求登录]'; - } - - encode() { - let payload = super.encode(); - payload.mediaType = MessageContentMediaType.File; - let obj = { - p : this.platform, - t: this.sessionId, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let obj = JSON.parse(wfc.b64_to_utf8(payload.binaryContent)); - this.platform = obj.p; - this.sessionId = obj.t; - } - -} diff --git a/src/wfc/messages/persistFlag.js b/src/wfc/messages/persistFlag.js deleted file mode 100644 index 59d4d1eb..00000000 --- a/src/wfc/messages/persistFlag.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - - -export default class PersistFlag { - static No_Persist = 0; - static Persist = 1; - static Persist_And_Count = 3; - static Transparent = 4; -} diff --git a/src/wfc/messages/ptextMessageContent.js b/src/wfc/messages/ptextMessageContent.js deleted file mode 100644 index 028ec664..00000000 --- a/src/wfc/messages/ptextMessageContent.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContentType from './messageContentType'; -import TextMessageContent from './textMessageContent'; - - -export default class PTextMessageContent extends TextMessageContent { - - constructor(content, mentionedType = 0, mentionedTargets = []) { - super(content, mentionedType, mentionedTargets); - this.type = MessageContentType.P_Text; - } - -} diff --git a/src/wfc/messages/soundMessageContent.js b/src/wfc/messages/soundMessageContent.js deleted file mode 100644 index 65442711..00000000 --- a/src/wfc/messages/soundMessageContent.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MediaMessageContent from './mediaMessageContent' -import MessageContentMediaType from './messageContentMediaType'; -import MessageContentType from './messageContentType'; - -export default class SoundMessageContent extends MediaMessageContent { - duration; - - constructor(fileOrLocalPath, remotePath, duration) { - super(MessageContentType.Voice, MessageContentMediaType.Voice, fileOrLocalPath, remotePath); - this.duration = duration; - } - - digest() { - return '[语音]'; - } - - encode() { - let payload = super.encode(); - payload.mediaType = MessageContentMediaType.Voice; - let obj = { - duration: this.duration, - }; - payload.content = JSON.stringify(obj); - return payload; - } - - decode(payload) { - super.decode(payload); - let obj = JSON.parse(payload.content); - this.duration = obj.duration; - } -} diff --git a/src/wfc/messages/stickerMessageContent.js b/src/wfc/messages/stickerMessageContent.js deleted file mode 100644 index 29d816be..00000000 --- a/src/wfc/messages/stickerMessageContent.js +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContentMediaType from "./messageContentMediaType"; -import MediaMessageContent from "./mediaMessageContent"; -import MessageContentType from "./messageContentType"; - -import wfc from "../client/wfc" - - -export default class StickerMessageContent extends MediaMessageContent { - width = 200; - height = 200; - - constructor(filerOrLocalPath, remotePath, width, height) { - super(MessageContentType.Sticker, MessageContentMediaType.Sticker, filerOrLocalPath, remotePath); - this.width = width; - this.height = height; - } - - digest() { - return '[表情]'; - } - - encode() { - let payload = super.encode(); - payload.mediaType = MessageContentMediaType.File; - let obj = { - x: this.width, - y: this.height, - }; - payload.binaryContent = wfc.utf8_to_b64(JSON.stringify(obj)); - return payload; - } - - decode(payload) { - super.decode(payload); - let obj = JSON.parse(wfc.b64_to_utf8(payload.binaryContent)); - this.width = obj.x; - this.height = obj.y; - } -} diff --git a/src/wfc/messages/streamingTextGeneratedMessageContent.js b/src/wfc/messages/streamingTextGeneratedMessageContent.js deleted file mode 100644 index 6faaa77b..00000000 --- a/src/wfc/messages/streamingTextGeneratedMessageContent.js +++ /dev/null @@ -1,28 +0,0 @@ -import MessageContent from "./messageContent"; -import MessageContentType from "./messageContentType"; - -export default class StreamingTextGeneratedMessageContent extends MessageContent { - text = ''; - streamId = ''; - - constructor() { - super(MessageContentType.Streaming_Text_Generated); - } - - digest(message) { - return this.text; - } - - encode() { - let payload = super.encode(); - payload.searchableContent = this.text; - payload.content = this.streamId; - return payload; - } - - decode(payload) { - super.decode(payload); - this.text = payload.searchableContent; - this.streamId = payload.content; - } -} \ No newline at end of file diff --git a/src/wfc/messages/streamingTextGeneratingMessageContent.js b/src/wfc/messages/streamingTextGeneratingMessageContent.js deleted file mode 100644 index b82b8b73..00000000 --- a/src/wfc/messages/streamingTextGeneratingMessageContent.js +++ /dev/null @@ -1,28 +0,0 @@ -import MessageContent from "./messageContent"; -import MessageContentType from "./messageContentType"; - -export default class StreamingTextGeneratingMessageContent extends MessageContent { - text = ''; - streamId = ''; - - constructor() { - super(MessageContentType.Streaming_Text_Generating); - } - - digest(message) { - return this.text; - } - - encode() { - let payload = super.encode(); - payload.searchableContent = this.text; - payload.content = this.streamId; - return payload; - } - - decode(payload) { - super.decode(payload); - this.text = payload.searchableContent; - this.streamId = payload.content; - } -} \ No newline at end of file diff --git a/src/wfc/messages/textMessageContent.js b/src/wfc/messages/textMessageContent.js deleted file mode 100644 index eb4eb14e..00000000 --- a/src/wfc/messages/textMessageContent.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from './messageContent' -import MessageContentType from './messageContentType'; -import wfc from '../client/wfc' -import QuoteInfo from "../model/quoteInfo"; - -export default class TextMessageContent extends MessageContent { - content; - quoteInfo; - - constructor(content, mentionedType = 0, mentionedTargets = []) { - super(MessageContentType.Text, mentionedType, mentionedTargets); - this.content = content; - } - - digest() { - return this.content; - } - - encode() { - let payload = super.encode(); - payload.searchableContent = this.content; - if (this.quoteInfo) { - let obj = { - "quote": this.quoteInfo.encode() - } - // JSON.parse 和 JSON.stringify 不能处理java long - let orgStr = JSON.stringify(obj); - let str = orgStr.replace(/"u":"([0-9]+)"/, "\"u\":$1"); - - payload.binaryContent = wfc.utf8_to_b64(str); - } - return payload; - } - - decode(payload) { - super.decode(payload); - this.content = payload.searchableContent; - if (payload.binaryContent && payload.binaryContent.length > 0) { - // JSON.parse 和 JSON.stringify 不能处理java long - let quoteInfoStr = wfc.b64_to_utf8(payload.binaryContent) - // FIXME node 环境,decodeURIComponent 方法,有时候会在最后添加上@字符,目前尚未找到原因,先规避 - quoteInfoStr = quoteInfoStr.substring(0, quoteInfoStr.lastIndexOf('}') + 1) - quoteInfoStr = quoteInfoStr.replace(/"u":([0-9]+),/, '"u":"$1",') - let obj = JSON.parse(quoteInfoStr).quote - if(obj){ - this.quoteInfo = new QuoteInfo(); - this.quoteInfo.decode(obj); - } - } - } - - setQuoteInfo(quoteInfo) { - this.quoteInfo = quoteInfo; - } - -} diff --git a/src/wfc/messages/typingMessageContent.js b/src/wfc/messages/typingMessageContent.js deleted file mode 100644 index 23395c42..00000000 --- a/src/wfc/messages/typingMessageContent.js +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from "./messageContent"; -import MessageContentType from "./messageContentType"; - -export default class TypingMessageContent extends MessageContent { - - static TYPING_TEXT = 0; - static TYPING_VOICE = 1; - static TYPING_CAMERA = 2; - static TYPING_LOCATION = 3; - static TYPING_FILE = 4; - - typingType = TypingMessageContent.TYPING_TEXT; - - constructor(type) { - super(MessageContentType.Typing); - this.typingType = type; - } - - digest() { - return this.content; - } - - encode() { - let payload = super.encode(); - payload.content = this.typingType + ''; - return payload; - } - - decode(payload) { - super.decode(payload); - this.typingType = parseInt(payload.content); - } -} diff --git a/src/wfc/messages/unknownMessageContent.js b/src/wfc/messages/unknownMessageContent.js deleted file mode 100644 index 26731dd1..00000000 --- a/src/wfc/messages/unknownMessageContent.js +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from "./messageContent"; -import MessageContentType from "./messageContentType"; - -export default class UnknownMessageContent extends MessageContent { - originalPayload; - - constructor(originalPayload) { - super(MessageContentType.Unknown); - this.originalPayload = originalPayload; - } - - encode() { - return this.originalPayload; - } - - decode(paylaod) { - this.originalPayload = paylaod; - } - - digest() { - return '未知类型消息'; - } -} \ No newline at end of file diff --git a/src/wfc/messages/unsupportMessageConten.js b/src/wfc/messages/unsupportMessageConten.js deleted file mode 100644 index e9627973..00000000 --- a/src/wfc/messages/unsupportMessageConten.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MessageContent from "./messageContent"; - -export default class UnsupportMessageContent extends MessageContent { - - digest() { - return '尚不支持该类型消息, 请手机查看 : ' + this.type; - } -} \ No newline at end of file diff --git a/src/wfc/messages/videoMessageContent.js b/src/wfc/messages/videoMessageContent.js deleted file mode 100644 index 590f98bd..00000000 --- a/src/wfc/messages/videoMessageContent.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import MediaMessageContent from './mediaMessageContent' -import MessageContentMediaType from './messageContentMediaType'; -import MessageContentType from './messageContentType'; - -export default class VideoMessageContent extends MediaMessageContent { - // base64 encoded - thumbnail; - duration; - - constructor(fileOrLocalPath, remotePath, thumbnail, duration = 0) { - super(MessageContentType.Video, MessageContentMediaType.Video, fileOrLocalPath, remotePath); - this.thumbnail = thumbnail; - this.duration = duration; - } - - digest() { - return '[视频]'; - } - - encode() { - let payload = super.encode(); - payload.binaryContent = this.thumbnail; - let obj = { - d: this.duration, - duration: this.duration - } - payload.content = JSON.stringify(obj); - payload.mediaType = MessageContentMediaType.Video; - return payload; - } - - decode(payload) { - super.decode(payload); - this.thumbnail = payload.binaryContent; - if (payload.content) { - let obj = JSON.parse(payload.content) - this.duration = obj.d; - if (this.duration === undefined) { - this.duration = obj.duration; - } - } - } -} diff --git a/src/wfc/model/NullChannelInfo.js b/src/wfc/model/NullChannelInfo.js deleted file mode 100644 index 085cc5aa..00000000 --- a/src/wfc/model/NullChannelInfo.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import ChannelInfo from "./channelInfo"; - -export default class NullChannelInfo extends ChannelInfo { - constructor(channelId) { - super() - this.channelId = channelId; - this.name = `<${channelId}>` - } -} diff --git a/src/wfc/model/channelInfo.js b/src/wfc/model/channelInfo.js deleted file mode 100644 index 646e9700..00000000 --- a/src/wfc/model/channelInfo.js +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class ChannelInfo { - channelId; - name; - portrait; - desc; - owner; - // 0, public; 1, private; 2, destoryed - status; - extra; - updateDt; - menus; - //第0位表示是否允许查看用户所有信息,还是只允许看用户id,用户名称,用户昵称和用户头像 - static StatusMaskFullInfo = 0x01; - //第1位表示是否允许查看非订阅用户信息 - static StatusMaskUnsubscribedUserAccess = 0x02; - //第2位表示是否允许主动添加用户订阅关系 - static StatusMaskActiveSubscribe = 0x04; - //第3位表示是否允许给非订阅用户发送消息 - static StatusMaskMessageUnsubscribed = 0x08; - //第4位表示是否私有 - static StatusMaskPrivate = 0x10; - - //第6位表示是否删除 - static StatusMaskDeleted = 0x40; - - //第8位表示是否全局频道,全局平道发送消息时,会广播给系统所有人 - static StatusMaskGlobal = 0x80; -} diff --git a/src/wfc/model/channelMenu.js b/src/wfc/model/channelMenu.js deleted file mode 100644 index 6ba39ac2..00000000 --- a/src/wfc/model/channelMenu.js +++ /dev/null @@ -1,13 +0,0 @@ -export default class ChannelMenu { - menuId; - type; - name; - key; - url; - mediaId; - articleId; - appId; - appPage; - extra; - subMenus; -} diff --git a/src/wfc/model/chatRoomInfo.js b/src/wfc/model/chatRoomInfo.js deleted file mode 100644 index bdc1723b..00000000 --- a/src/wfc/model/chatRoomInfo.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class ChatRoomInfo { - chatRoomId; - title; - desc; - portrait; - extra; - // 0, normal; 1, not start; 2, end - state; - memberCount; - createDt; - updateDt; -} \ No newline at end of file diff --git a/src/wfc/model/chatRoomMemberInfo.js b/src/wfc/model/chatRoomMemberInfo.js deleted file mode 100644 index 5942a05a..00000000 --- a/src/wfc/model/chatRoomMemberInfo.js +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class ChatRoomMemberInfo { - memberCount; - members; -} \ No newline at end of file diff --git a/src/wfc/model/conversation.js b/src/wfc/model/conversation.js deleted file mode 100644 index d5fe812a..00000000 --- a/src/wfc/model/conversation.js +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import ConversationType from "./conversationType"; - -/** - * - "conversation":{ - "conversationType": 0, - "target": "UZUWUWuu", - "line": 0, - } - */ -export default class Conversation { - type = ConversationType.Single; - conversationType = this.type; // 这行是为了做一个兼容处理 - target = ''; - line = 0; - - constructor(type, target, line = 0) { - this.type = type; - this.conversationType = type; - this.target = target; - this.line = line; - } - - equal(conversation) { - if (!conversation) { - return false; - } - return this.type === conversation.type - && this.target === conversation.target - && this.line === conversation.line; - } -} diff --git a/src/wfc/model/conversationInfo.js b/src/wfc/model/conversationInfo.js deleted file mode 100644 index 4c2cb12d..00000000 --- a/src/wfc/model/conversationInfo.js +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import Conversation from "./conversation"; -import Message from "../messages/message"; -import wfc from '../client/wfc' -import {eq, gt} from '../util/longUtil' - -import ConversationType from "./conversationType"; - -export default class ConversationInfo { - conversation = {}; - lastMessage = {}; - timestamp = 0; - draft = ''; - unreadCount = {}; - top = 0; - isSilent = false; - - // TODO cache, maybe userInfo, groupInfo - target; - - static protoConversationToConversationInfo(obj) { - let conversationInfo = Object.assign(new ConversationInfo(), obj); - conversationInfo.top = obj.isTop; - delete conversationInfo.isTop; - if (obj.conversation) { - conversationInfo.conversation = new Conversation(obj.conversation.type, obj.conversation.target, obj.conversation.line); - } else { - conversationInfo.conversation = new Conversation(obj.conversationType, obj.target, obj.line); - } - conversationInfo.lastMessage = Message.fromProtoMessage(obj.lastMessage); - if (!conversationInfo.timestamp){ - conversationInfo.timestamp = 0; - } - return conversationInfo; - } - - portrait() { - let portrait = ''; - switch (this.conversation.type) { - case ConversationType.Single: - let u = wfc.getUserInfo(this.conversation.target, false); - portrait = u.portrait; - break; - case ConversationType.Group: - let g = wfc.getGroupInfo(this.conversation.target, false); - portrait = g.portrait; - break; - case ConversationType.Channel: - break; - case ConversationType.ChatRoom: - break; - default: - break; - } - - return portrait; - } - - title() { - let targetName = this.conversation.target; - switch (this.conversation.type) { - case ConversationType.Single: - targetName = wfc.getUserDisplayName(this.conversation.target); - break; - case ConversationType.Group: - let g = wfc.getGroupInfo(this.conversation.target, false); - targetName = g.name; - break; - case ConversationType.ChatRoom: - break; - case ConversationType.Channel: - break; - default: - break; - } - - return targetName; - } - - static equals(info1, info2) { - if (!info1 || !info2) { - return false; - } - if (!info1.conversation.equal(info2.conversation)) { - return false; - } - - let unreadCount1 = info1.unreadCount; - let unreadCount2 = info2.unreadCount; - if (unreadCount1.unread !== unreadCount2.unread - || unreadCount1.unreadMention !== unreadCount2.unreadMention - || unreadCount1.unreadMentionAll !== unreadCount2.unreadMentionAll) { - return false; - } - - if ((info1.lastMessage && !info2.lastMessage) || (!info1.lastMessage && info2.lastMessage)) { - return false; - } - - if (info1.lastMessage && info2.lastMessage && info1.lastMessage.messageId !== info2.lastMessage.messageId) { - return false; - } - // 其他的应当都会反应在timestamp上 - return eq(info1.timestamp, info2.timestamp) && info1.draft === info2.draft; - - } -} diff --git a/src/wfc/model/conversationSearchResult.js b/src/wfc/model/conversationSearchResult.js deleted file mode 100644 index 9c06bfc5..00000000 --- a/src/wfc/model/conversationSearchResult.js +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import Conversation from "./conversation"; -import Message from "../messages/message"; - -export default class ConversationSearchResult { - conversation; - //only matchCount == 1, load the message - matchMessage; - timestamp; - matchCount; - - static fromProtoConversationSearchResult(obj) { - let conversationSearchResult = new ConversationSearchResult(); - if (obj.conversation) { - conversationSearchResult.conversation = new Conversation(obj.conversation.conversationType !== undefined ? obj.conversation.conversationType : obj.conversation.type, obj.conversation.target, obj.conversation.line); - } else { - conversationSearchResult.conversation = new Conversation(obj.conversationType, obj.target, obj.line); - } - conversationSearchResult.matchCount = obj.marchedCount; - if (obj.marchedCount === 1) { - conversationSearchResult.matchMessage = Message.fromProtoMessage(obj.marchedMessage); - } - conversationSearchResult.timestamp = Number(obj.timestamp); - - return conversationSearchResult; - } -} diff --git a/src/wfc/model/conversationType.js b/src/wfc/model/conversationType.js deleted file mode 100644 index d99f431e..00000000 --- a/src/wfc/model/conversationType.js +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class ConversationType { - static Single = 0; - static Group = 1; - static ChatRoom = 2; - static Channel = 3; - static SecretChat = 5; -} diff --git a/src/wfc/model/favItem.js b/src/wfc/model/favItem.js deleted file mode 100644 index 146bec64..00000000 --- a/src/wfc/model/favItem.js +++ /dev/null @@ -1,191 +0,0 @@ -import ConversationType from "./conversationType"; -import wfc from "../client/wfc"; -import MessageContentType from "../messages/messageContentType"; -import Message from "../messages/message"; -import TextMessageContent from "../messages/textMessageContent"; -import ImageMessageContent from "../messages/imageMessageContent"; -import VideoMessageContent from "../messages/videoMessageContent"; -import FileMessageContent from "../messages/fileMessageContent"; -import CompositeMessageContent from "../messages/compositeMessageContent"; -import MessagePayload from "../messages/messagePayload"; -import SoundMessageContent from "../messages/soundMessageContent"; -import Long from "long"; -import UnknownMessageContent from "../messages/unknownMessageContent"; -import Config from '../../config' - -export default class FavItem { - id; - messageUid; - // 和消息类型对应 - favType; - timestamp; - conversation; - origin; - sender; - title; - url; - thumbUrl; - data; - - static fromMessage(message) { - let favItem = new FavItem(); - favItem.messageUid = message.messageUid; - favItem.conversation = message.conversation; - favItem.favType = message.messageContent.type; - favItem.sender = message.from; - switch (message.conversation.type) { - case ConversationType.Group: - let groupInfo = wfc.getGroupInfo(message.conversation.target, false); - favItem.origin = groupInfo.name; - break; - case ConversationType.Single: - favItem.origin = wfc.getUserDisplayName(message.from); - break; - case ConversationType.Channel: - let channelInfo = wfc.getChannelInfo(message.conversation.target, false); - favItem.origin = channelInfo.name; - break; - case ConversationType.ChatRoom: - break; - default: - break; - } - - let data; - switch (message.messageContent.type) { - case MessageContentType.Text: - let textMessageContent = message.messageContent; - favItem.title = textMessageContent.content; - break; - case MessageContentType.Image: - let imageContent = message.messageContent; - favItem.url = imageContent.remotePath; - if (imageContent.thumbnail) { - let data = { - "thumb": imageContent.thumbnail, - } - favItem.data = JSON.stringify(data); - } - break; - case MessageContentType.Video: - let videoContent = message.messageContent; - favItem.url = videoContent.remotePath; - data = { - duration: videoContent.duration, - } - if (videoContent.thumbnail) { - data['thumb'] = videoContent.thumbnail; - } - favItem.data = JSON.stringify(data); - break; - case MessageContentType.File: - let fileContent = message.messageContent; - favItem.url = fileContent.remotePath; - favItem.title = fileContent.name; - data = { - size: fileContent.size, - } - favItem.data = JSON.stringify(data); - break; - case MessageContentType.Composite_Message: - let compositeContent = message.messageContent; - favItem.title = compositeContent.title; - let payload = compositeContent.encode(); - if (payload.remoteMediaUrl) { - let str = wfc.b64_to_utf8(payload.binaryContent); - let obj = JSON.parse(str) - obj['remote_url'] = payload.remoteMediaUrl; - str = JSON.stringify(obj); - payload.binaryContent = wfc.utf8_to_b64(str); - } - favItem.data = payload.binaryContent; - break; - case MessageContentType.Voice: - let voiceContent = message.messageContent; - favItem.url = voiceContent.remotePath; - data = { - duration: voiceContent.duration, - } - favItem.data = JSON.stringify(data); - break; - // TODO - // case MessageContentType.Link: - // break - default: - break; - } - if (Config.urlRedirect){ - favItem.url = Config.urlRedirect(favItem.url); - } - return favItem; - } - - toMessage() { - if (this.messageUid){ - let msg = wfc.getMessageByUid(this.messageUid); - if (msg){ - return msg; - } - } - let content; - try { - switch (this.favType) { - case MessageContentType.Text: - content = new TextMessageContent(this.title); - break; - case MessageContentType.Image: - content = new ImageMessageContent(null, this.url, Config.DEFAULT_THUMBNAIL_URL.split(',')[1]); - if (this.data) { - content.thumbnail = this.data.thumb; - } - break; - case MessageContentType.Video: - content = new VideoMessageContent(null, this.url, Config.DEFAULT_THUMBNAIL_URL.split(',')[1]); - if (this.data) { - content.thumbnail = this.data.thumb; - } - break; - case MessageContentType.File: - content = new FileMessageContent(null, this.url, this.title); - if (this.data) { - content.size = this.data.size; - } - break; - case MessageContentType.Composite_Message: - content = new CompositeMessageContent(); - content.title = this.title; - if (this.data) { - let payload = new MessagePayload(); - //let payloadBytes = wfc.b64_to_utf8(this.data) - payload.type = this.favType; - payload.content = this.title; - payload.binaryContent = this.data; - let obj = JSON.parse(this.data); - payload.remoteMediaUrl = obj['remote_url']; - content.decode(payload) - } - break; - case MessageContentType.Voice: - content = new SoundMessageContent(null, this.url) - if (this.data) { - content.duration = this.data.duration; - } - break; - // TODO - // case MessageContentType.Link: - // break - default: - break; - } - }catch (e) { - console.log('toMessage Error', e) - content = new UnknownMessageContent(); - } - let msg = new Message(this.conversation, content); - if (this.messageUid) { - msg.messageUid = Long.fromValue(this.messageUid); - } - - return msg; - } -} diff --git a/src/wfc/model/fileRecord.js b/src/wfc/model/fileRecord.js deleted file mode 100644 index bc2653f1..00000000 --- a/src/wfc/model/fileRecord.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class FileRecord { - userId; - conversation; - messageUid; - name; - url; - size; - downloadCount; - timestamp; -} diff --git a/src/wfc/model/friend.js b/src/wfc/model/friend.js deleted file mode 100644 index 9bde1366..00000000 --- a/src/wfc/model/friend.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class Friend { - userId; - alias; - extra; - timestamp; -} diff --git a/src/wfc/model/friendRequest.js b/src/wfc/model/friendRequest.js deleted file mode 100644 index 8cbbf5c5..00000000 --- a/src/wfc/model/friendRequest.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class FriendRequest { - direction; - target; - reason; - extra; - // RequestStatus_Sent = 0, - // RequestStatus_Accepted = 1, - // RequestStatus_Rejected = 3 - status; - readStatus; - timestamp; -} diff --git a/src/wfc/model/groupInfo.js b/src/wfc/model/groupInfo.js deleted file mode 100644 index 7860e798..00000000 --- a/src/wfc/model/groupInfo.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import GroupType from "./groupType"; - -/* -public String target; - public String name; - public String portrait; - public String owner; - public GroupType type; - public int memberCount; - public String extra; - public long updateDt - */ - -export default class GroupInfo { - target = ''; - name = ''; - portrait = ''; - owner = ''; - type = GroupType.Normal; - memberCount = 0; - extra = ''; - remark = ''; - updateDt = 0; - deleted = 0; - memberDt = 0; - - //0 正常;1 全局禁言 - mute = 0; - - //在group type为Restricted时,0 开放加入权限(群成员可以拉人,用户也可以主动加入);1 只能群成员拉人入群;2 只能群管理拉人入群 - joinType = 0; - - //是否运行群中普通成员私聊。0 允许,1不允许 - privateChat = 0; - - //是否是超级群组 - superGroup = 0; - - //是否可以搜索到该群,功能暂未实现 - searchable - - //是否可以查看群历史消息, 0 不允许,1允许。仅专业版有效 - historyMessage; - - //群最大成员数。仅专业版有效 - maxMemberCount; -} diff --git a/src/wfc/model/groupMember.js b/src/wfc/model/groupMember.js deleted file mode 100644 index 375325e8..00000000 --- a/src/wfc/model/groupMember.js +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import wfc from '../client/wfc' - -export default class GroupMember { - groupId = ''; - memberId = ''; - alias = ''; - extra = ''; - type = 0; - updateDt = 0; - createDt = 0; - - getName() { - let u = wfc.getUserInfo(this.memberId); - return u.displayName; - } - - getPortrait() { - let u = wfc.getUserInfo(this.memberId); - return u.portrait; - } -} diff --git a/src/wfc/model/groupMemberType.js b/src/wfc/model/groupMemberType.js deleted file mode 100644 index 4397392a..00000000 --- a/src/wfc/model/groupMemberType.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class GroupMemberType { - static Normal = 0; - static Manager = 1; - static Owner = 2; - static Muted = 3; - static Removed = 4; - static Allowed = 5; -} diff --git a/src/wfc/model/groupSearchResult.js b/src/wfc/model/groupSearchResult.js deleted file mode 100644 index 058ffe9c..00000000 --- a/src/wfc/model/groupSearchResult.js +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import GroupInfo from "./groupInfo"; - -export default class GroupSearchResult { - groupInfo; - //0 march group name, 1 march group member name, 2 both - matchType; - matchMembers = []; - - static fromProtoGroupSearchResult(obj) { - let groupSearchResult = new GroupSearchResult(); - groupSearchResult.groupInfo = Object.assign(new GroupInfo(), obj.groupInfo) - groupSearchResult.matchType = obj.marchedType; - groupSearchResult.matchMembers = obj.marchedMemberNames; - return groupSearchResult; - - } -} diff --git a/src/wfc/model/groupType.js b/src/wfc/model/groupType.js deleted file mode 100644 index fa4b0dc8..00000000 --- a/src/wfc/model/groupType.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class GroupType { - static Normal = 0; - static Free = 1; - static Restricted = 2; - static Organization = 3; -} diff --git a/src/wfc/model/internal/friendInfo.js b/src/wfc/model/internal/friendInfo.js deleted file mode 100644 index b6954ed4..00000000 --- a/src/wfc/model/internal/friendInfo.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class FriendInfo { - uid = ''; - updateDt = 0; - state = 0; // 0, 正常;1,无关系;2 黑名单 - alias = ''; - blacked = 0; - extra = ''; -} diff --git a/src/wfc/model/mention.js b/src/wfc/model/mention.js deleted file mode 100644 index 35856cba..00000000 --- a/src/wfc/model/mention.js +++ /dev/null @@ -1,13 +0,0 @@ -export default class Mention { - start; - end; - isMentionAll; - uid; - - constructor(start, end, uid, isMentionAll) { - this.start = start; - this.end = end; - this.uid = uid; - this.isMentionAll = isMentionAll; - } -} diff --git a/src/wfc/model/modifyGroupInfoType.js b/src/wfc/model/modifyGroupInfoType.js deleted file mode 100644 index 641598ea..00000000 --- a/src/wfc/model/modifyGroupInfoType.js +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class ModifyGroupInfoType { - static Modify_Group_Name = 0; - static Modify_Group_Portrait = 1; - static Modify_Group_Extra = 2; - static Modify_Group_Mute = 3; - static Modify_Group_JoinType = 4; - static Modify_Group_PrivateChat = 5; - static Modify_Group_Searchable = 6; -} diff --git a/src/wfc/model/modifyMyInfoEntry.js b/src/wfc/model/modifyMyInfoEntry.js deleted file mode 100644 index 2b8303dc..00000000 --- a/src/wfc/model/modifyMyInfoEntry.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class ModifyMyInfoEntry { - /** - * - * @type {number} 可选值,参考{@link ModifyMyInfoType } - */ - type = -1; - value = ''; -} diff --git a/src/wfc/model/modifyMyInfoType.js b/src/wfc/model/modifyMyInfoType.js deleted file mode 100644 index 94420d93..00000000 --- a/src/wfc/model/modifyMyInfoType.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class ModifyMyInfoType { - static Modify_DisplayName = 0; - static Modify_Portrait = 1; - static Modify_Gender = 2; - static Modify_Mobile = 3; - static Modify_Email = 4; - static Modify_Address = 5; - static Modify_Company = 6; - static Modify_Social = 7; - static Modify_Extra = 8; - -} \ No newline at end of file diff --git a/src/wfc/model/nullGroupInfo.js b/src/wfc/model/nullGroupInfo.js deleted file mode 100644 index a97d603e..00000000 --- a/src/wfc/model/nullGroupInfo.js +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import GroupInfo from "./groupInfo"; - -export default class NullGroupInfo extends GroupInfo { - constructor(groupId) { - super(); - this.target = groupId; - // this.name = '<' + groupId+ '>'; - this.name = '群聊'; - } -} diff --git a/src/wfc/model/nullUserInfo.js b/src/wfc/model/nullUserInfo.js deleted file mode 100644 index 48f1e230..00000000 --- a/src/wfc/model/nullUserInfo.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import UserInfo from "./userInfo"; - -export default class NullUserInfo extends UserInfo { - constructor(userId) { - super(); - this.uid = userId; - //this.name = '<' + userId + '>'; - this.name = '用户'; - this.displayName = this.name; - this.portrait = ''; - } -} diff --git a/src/wfc/model/pcOnlineInfo.js b/src/wfc/model/pcOnlineInfo.js deleted file mode 100644 index b3502c89..00000000 --- a/src/wfc/model/pcOnlineInfo.js +++ /dev/null @@ -1,53 +0,0 @@ -export default class PcOnlineInfo { - static PC_ONLINE_TYPE_PC_Online = 0; - static PC_ONLINE_TYPE_Web_Online = 1; - static PC_ONLINE_TYPE_WX_Online = 2; - static PC_ONLINE_TYPE_Pad_Online = 3 - - /** - * PC online type - * @type {number} - */ - type = 0 - /** - * 参考 - * PlatformType_UNSET(0), - * PlatformType_iOS(1), - * PlatformType_Android(2), - * PlatformType_Windows(3), - * PlatformType_OSX(4), - * PlatformType_WEB(5), - * PlatformType_WX(6), - * PlatformType_Linux(7), - * PlatformType_iPad(8), - * PlatformType_APad(9), - * PlatformType_Harmony(10), - * PlatformType_Harmony_Pad(11), - * PlatformType_Harmony_PC(12); - * @type {number} - */ - platform = 0; - isOnline = false; - clientId = ''; - clientName = ''; - timestamp = 0; - - - static fromStr(value, pcOnlineType) { - if (!value || !value.trim()) { - return null; - } - let parts = value.split('|'); - if (parts.length >= 4) { - let info = new PcOnlineInfo(); - info.type = pcOnlineType; - info.timestamp = Number(parts[0]); - info.platform = Number(parts[1]); - info.clientId = parts[2]; - info.clientName = parts[3]; - info.isOnline = true; - return info; - } - return null; - } -} \ No newline at end of file diff --git a/src/wfc/model/pcsession.js b/src/wfc/model/pcsession.js deleted file mode 100644 index f68415c3..00000000 --- a/src/wfc/model/pcsession.js +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class PCSession { - token = ''; - status = 0; - expired = 0; - device_name = ''; -} \ No newline at end of file diff --git a/src/wfc/model/quoteInfo.js b/src/wfc/model/quoteInfo.js deleted file mode 100644 index 0287abbc..00000000 --- a/src/wfc/model/quoteInfo.js +++ /dev/null @@ -1,50 +0,0 @@ -import wfc from "../client/wfc"; -import {stringValue} from "../util/longUtil"; -import Long from "long"; - -export default class QuoteInfo { - messageUid; - userId; - userDisplayName; - messageDigest; - - static initWithMessage(message) { - let info = new QuoteInfo(); - if (message) { - info.messageUid = message.messageUid; - info.userId = message.from; - let userInfo = wfc.getUserInfo(message.from, false); - info.userDisplayName = userInfo.displayName; - info.messageDigest = message.messageContent.digest(); - if (info.messageDigest.length > 48) { - info.messageDigest = info.messageDigest.substr(0, 48); - } - } - return info; - } - - encode() { - let obj = { - u: stringValue(this.messageUid), - i: this.userId, - n: this.userDisplayName, - d: this.messageDigest, - }; - return obj; - } - - decode(obj) { - if (obj.messageUid) { - this.messageUid = Long.fromValue(obj.messageUid); - this.userId = obj.userId; - this.userDisplayName = obj.userDisplayName; - this.messageDigest = obj.messageDigest; - - } else { - this.messageUid = Long.fromValue(obj.u || obj.messageUid); - this.userId = obj.i; - this.userDisplayName = obj.n; - this.messageDigest = obj.d; - } - } -} diff --git a/src/wfc/model/readEntry.js b/src/wfc/model/readEntry.js deleted file mode 100644 index f9c59831..00000000 --- a/src/wfc/model/readEntry.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class ReadEntry { - userId; - conversation; - readTime; -} diff --git a/src/wfc/model/searchType.js b/src/wfc/model/searchType.js deleted file mode 100644 index bf467445..00000000 --- a/src/wfc/model/searchType.js +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class SearchType { - //模糊搜索displayName,精确搜索name或电话号码 - static General = 0; - - //精确搜索name或电话号码 - static NameOrMobile = 1; - - //精确搜索name - static Name = 2; - - //精确搜索电话号码 - static Mobile = 3; -} diff --git a/src/wfc/model/secretChatInfo.js b/src/wfc/model/secretChatInfo.js deleted file mode 100644 index 7bdcca10..00000000 --- a/src/wfc/model/secretChatInfo.js +++ /dev/null @@ -1,7 +0,0 @@ -export default class SecretChatInfo { - targetId; - userId; - state; - burnTime; - createTime; -} diff --git a/src/wfc/model/secretChatState.js b/src/wfc/model/secretChatState.js deleted file mode 100644 index 59ce742f..00000000 --- a/src/wfc/model/secretChatState.js +++ /dev/null @@ -1,14 +0,0 @@ -export default class SecretChatState { - //密聊会话建立中 - static Starting = 0; - - //密聊会话接受中 - static Accepting = 1; - - //密聊会话已建立 - static Established = 2; - - //密聊会话已取消 - static Canceled = 3; - -} diff --git a/src/wfc/model/unreadCount.js b/src/wfc/model/unreadCount.js deleted file mode 100644 index b52a0911..00000000 --- a/src/wfc/model/unreadCount.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class UnreadCount { - // 单聊未读数 - unread = 0; - // 群聊@数 - unreadMention = 0; - // 群聊@All数 - unreadMentionAll = 0; -} \ No newline at end of file diff --git a/src/wfc/model/userClientState.js b/src/wfc/model/userClientState.js deleted file mode 100644 index a552d14c..00000000 --- a/src/wfc/model/userClientState.js +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class UserClientState { - /** - Platform_UNSET = 0; - Platform_iOS = 1; - Platform_Android = 2; - Platform_Windows = 3; - Platform_OSX = 4; - Platform_WEB = 5; - Platform_WX = 6; - Platform_LINUX = 7; - Platform_iPad = 8; - Platform_APad = 9; - */ - platform; - - //设备的在线状态,0是在线,1是有session但不在线,其它不在线。 - state; - - //最后可见 - lastSeen; - -} diff --git a/src/wfc/model/userCustomState.js b/src/wfc/model/userCustomState.js deleted file mode 100644 index 01036f1c..00000000 --- a/src/wfc/model/userCustomState.js +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class UserCustomState { - //0,未设置,1 忙碌,2 离开(主动设置),3 离开(长时间不操作),4 隐身,其它可以自主扩展。 - state; - text; -} diff --git a/src/wfc/model/userInfo.js b/src/wfc/model/userInfo.js deleted file mode 100644 index 6afa7d23..00000000 --- a/src/wfc/model/userInfo.js +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -/* -{ - "uid": "uiuJuJcc", - "name": "13888888888", - "displayName": "imndx", - "gender": 0, - "portrait": "https://avatars.io/gravatar/uiuJuJcc", - "mobile": "13888888888", - "email": "", - "address": "", - "company": "", - "social": "", - "extra": "", - "type": -472579968, - "updateDt": 1550652404513 -} - -*/ -export default class UserInfo { - uid = ''; - name = ''; - displayName = ''; - groupAlias = ''; - friendAlias = ''; - gender = 0; - portrait = ''; - mobile = ''; - email = ''; - address = ''; - social = ''; - extra = ''; - type = 0; //0 normal; 1 robot; 2 thing; - //0 normal; 1 deleted; - deleted = 0; - updateDt = 0; -} diff --git a/src/wfc/model/userOnlineState.js b/src/wfc/model/userOnlineState.js deleted file mode 100644 index 4ba4a15e..00000000 --- a/src/wfc/model/userOnlineState.js +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -export default class UserOnlineState { - userId; - customState; - clientStates; - - // 手机在线、web在线、pc在线 - desc() { - if (this.customState.state > 0) { - //0,未设置,1 忙碌,2 离开(主动设置),3 离开(长时间不操作),4 隐身,其它可以自主扩展。 - let cs = ['未设置', '忙碌', '离开(主动离开)', '离开(长时间未操作)', '隐身']; - return this.customState.text + cs[this.customState.state]; - } - - let onlineClientDesc = ''; - let lastSeenDesc = ''; - this.clientStates.forEach(s => { - // - // /** - // Platform_UNSET = 0; - // Platform_iOS = 1; - // Platform_Android = 2; - // Platform_Windows = 3; - // Platform_OSX = 4; - // Platform_WEB = 5; - // Platform_WX = 6; - // Platform_LINUX = 7; - // Platform_iPad = 8; - // Platform_APad = 9; - // */ - // platform; - // - // //设备的在线状态,0是在线,1是有session但不在线,其它不在线。 - // state; - // - // //最后可见 - // lastSeen; - - let ps = ['', 'iOS', 'Android', 'Windows', 'mac', 'Web', '小程序', 'Linux', 'iPad', 'Android-Pad']; - if (s.state === 0) { - onlineClientDesc += ps[s.platform] + ' ' - } else if ([1, 2, 8, 9].indexOf(s.platform) >= 0) { - // TODO - lastSeenDesc += ps[s.platform] + ' '; - } - }); - - if (onlineClientDesc.trim()) { - return onlineClientDesc + '在线'; - } else if (lastSeenDesc.trim()) { - return lastSeenDesc + '不久前在线'; - } - //return '不在线'; - return ''; - } -} diff --git a/src/wfc/model/userSettingEntry.js b/src/wfc/model/userSettingEntry.js deleted file mode 100644 index 5ed0cc11..00000000 --- a/src/wfc/model/userSettingEntry.js +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import UserSettingScope from "../client/userSettingScope"; - -export default class UserSettingEntry { - scope = UserSettingScope.kUserSettingCustomBegin; - key = ''; - value = ''; - updateDt = 0; -} diff --git a/src/wfc/proto/proto.min.js b/src/wfc/proto/proto.min.js deleted file mode 100644 index 89adc296..00000000 --- a/src/wfc/proto/proto.min.js +++ /dev/null @@ -1,2252 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -// import proto from 'node-loader!../../../marswrapper.node'; -import Message from '../messages/message'; -import Conversation from '../model/conversation'; -import ConversationInfo from '../model/conversationInfo'; -import { - EventEmitter -} from 'events'; -import EventType from '../client/wfcEvent' -import UserInfo from '../model/userInfo'; -import NullUserInfo from '../model/nullUserInfo'; -import NullGroupInfo from '../model/nullGroupInfo'; -import GroupInfo from '../model/groupInfo'; -import GroupMember from '../model/groupMember'; -import UserSettingScope from '../client/userSettingScope'; -import AddGroupMemberNotification from '../messages/notification/addGroupMemberNotification'; -import MessageConfig from '../client/messageConfig'; -import UnreadCount from '../model/unreadCount'; -import ConversationSearchResult from '../model/conversationSearchResult'; -import MessageStatus from '../messages/messageStatus'; -import GroupSearchResult from '../model/groupSearchResult'; -import FriendRequest from '../model/friendRequest'; -import ChatRoomMemberInfo from '../model/chatRoomMemberInfo'; -import ChannelInfo from '../model/channelInfo'; -import ConnectionStatus from '../client/connectionStatus'; -import Long from 'long'; -import Config from "../../config"; -import ChatRoomInfo from "../model/chatRoomInfo"; -import ReadEntry from "../model/readEntry"; -import FileRecord from "../model/fileRecord"; -import MediaMessageContent from "../messages/mediaMessageContent"; -import MarkUnreadMessageContent from "../messages/markUnreadMessageContent"; -import { - gt, numberValue, - stringValue -} from "../util/longUtil"; -import NullChannelInfo from "../model/NullChannelInfo"; -import UserOnlineState from "../model/userOnlineState"; -import UserCustomState from "../model/userCustomState"; -import UserClientState from "../model/userClientState"; -import ConversationType from "../model/conversationType"; - - -var proto = null; - -var lastScreenShotTime = 0; - -var uniWfcClient = uni.requireNativePlugin("wf-uni-wfc-client"); - -/** - * java long 类型在 javascript 类型的映射说明: - * 字段messageUid 对应 Long 对象 - * 其他 long 类型的变量 对应 number - * - * native 和 proto.min.js 之间 java long类型数据的传递 - * 双向传递时,都需 java long 类型的数据转换成字符串传递 - * - */ -class WfcImpl { - connectionStatus = 0; - userId = ''; - token = ''; - isLogined = false; - firstSync = true; - - // TODO 移除吧,全都走EventEmitter - // onReceiveMessageListeners = []; - - messageContentList = []; - - eventEmitter = null; - - needPreloadDefaultData = false; - - onConnectionChanged(status) { - status = Number(status); - if (!self.isLogined && status == ConnectionStatus.ConnectionStatusConnected) { - self.isLogined = true; - } - if (status === ConnectionStatus.ConnectionStatusConnected) { - if (self.needPreloadDefaultData) { - // 预加载数据 - // 拉取会话相关用户、群信息 - // 自己的用户信息 - // 获取所有好友、好友请求的用户信息 - let estimatedTime = self._preloadDefaultData(); - console.log('to load default data', estimatedTime); - setTimeout(() => { - self.connectionStatus = status; - self.eventEmitter.emit(EventType.ConnectionStatusChanged, status); - }, estimatedTime) - } else { - self.connectionStatus = status; - self.eventEmitter.emit(EventType.ConnectionStatusChanged, status); - } - } else { - self.connectionStatus = status; - self.eventEmitter.emit(EventType.ConnectionStatusChanged, status); - } - console.log('connection status changed', status); - if (self.isLogined && (status == ConnectionStatus.ConnectionStatusSecretKeyMismatch || status === ConnectionStatus.ConnectionStatusRejected)) { - self.disconnect(); - } - } - - onConnectToServer(host, ip, port) { - console.log('connect to server', host, ip, port); - self.eventEmitter.emit(EventType.ConnectToServer, host); - } - - // /** - // * - // * @param {function} listener - // */ - // setOnReceiveMessageListener(listener) { - // if (typeof listener !== 'function') { - // console.log('listener should be a function'); - // return; - // } - // self.onReceiveMessageListeners.forEach(l => { - // l === listener - // return - // }); - // self.onReceiveMessageListeners.push(listener); - // } - - // removeOnReceiMessageListener(listener) { - // if (typeof listener !== 'function') { - // console.log('listener should be a function'); - // return; - // } - // self.onReceiveMessageListeners.splice(self.onReceiveMessageListeners.indexOf(listener), 1); - // } - - onReceiveMessage(messages, hasMore) { - if (!self.isLogined) { - return; - } - // receiving - if (self.connectionStatus === 2 && self.firstSync) { - return; - } - - if (self.connectionStatus === 1) { - self.firstSync = false; - } - - let objMsgs = JSON.parse(messages); - let msgs = [] - objMsgs.forEach(m => { - let msg = Message.fromProtoMessage(m); - // self.onReceiveMessageListeners.forEach(listener => { - // listener(msg, hasMore); - // }); - if (!msg) { - return - } - if (msg.messageContent instanceof MarkUnreadMessageContent && msg.from === self.userId) { - let markMsg = msg.messageContent; - let conversation = msg.conversation; - uniWfcClient.setLastReceivedMessageUnRead(JSON.stringify(conversation), stringValue(markMsg.messageUid), stringValue(markMsg.timestamp)); - } - // 兼容旧版 - if (msg) { - self.eventEmitter.emit(EventType.ReceiveMessage, msg, hasMore); - } - - msgs.push(msg) - }); - if (msgs.length > 0) { - self.eventEmitter.emit(EventType.ReceiveMessages, msgs, hasMore); - } - } - - onConferenceEvent(event) { - self.eventEmitter.emit(EventType.ConferenceEvent, event) - } - - onOnlineEvent(event) { - let userOnlineStates = self._parseUserOnlineState(event); - self.eventEmitter.emit(EventType.UserOnlineEvent, userOnlineStates); - } - - onSendSuccess(message) { - let msg = Message.fromProtoMessage(JSON.parse(message)); - self.eventEmitter.emit(EventType.MessageStatusUpdate, msg); - } - - onSendFail(message, errorCode) { - let msg = Message.fromProtoMessage(JSON.parse(message)); - self.eventEmitter.emit(EventType.MessageStatusUpdate, msg); - } - - onSendPrepare(message, savedTime) { - let msg = Message.fromProtoMessage(JSON.parse(message)); - self.eventEmitter.emit(EventType.SendMessage, msg); - } - - onProgress(message, uploaded, total) { - // TODO - } - - onMediaUpload(message, remoteUrl) { - let msg = Message.fromProtoMessage(JSON.parse(message)); - self.eventEmitter.emit(EventType.MessageStatusUpdate, msg); - } - - onMessageUpdate(message) { - let msg = Message.fromProtoMessage(JSON.parse(message)); - self.eventEmitter.emit(EventType.MessageStatusUpdate, msg); - } - - _parseUserOnlineState(userOnlineStateStr) { - let userOnlineStates = []; - let states = JSON.parse(userOnlineStateStr); - states.forEach(s => { - let userOnlineState = new UserOnlineState(); - userOnlineState.userId = s.userId; - userOnlineState.customState = new UserCustomState(); - userOnlineState.customState.state = s.customState; - userOnlineState.customState.text = s.customText; - userOnlineState.clientStates = []; - - let clientStates = s.states ? s.states : s.clientStates; - if (clientStates) { - clientStates.forEach(ss => { - let clientState = new UserClientState(); - clientState.state = ss.state; - clientState.platform = ss.platform; - clientState.lastSeen = Long.fromValue(ss.lastSeen); - userOnlineState.clientStates.push(clientState) - }) - } - userOnlineStates.push(userOnlineState); - }) - return userOnlineStates; - } - - onGroupInfoUpdate(groupInfosStr) { - if (!self.isLogined) { - return; - } - - let groupInfoArray = JSON.parse(groupInfosStr); - - let groupInfos = []; - groupInfoArray.forEach((groupInfo => { - groupInfos.push(Object.assign(new GroupInfo(), groupInfo)); - })) - self.eventEmitter.emit(EventType.GroupInfosUpdate, groupInfos); - } - - onChannelInfoUpdate(channelListIds) { - if (!self.isLogined) { - return; - } - let channelIdArray = JSON.parse(channelListIds); - - let channelInfos = []; - channelIdArray.forEach((channelId => { - channelInfos.push(self.getChannelInfo(channelId, false)); - })) - self.eventEmitter.emit(EventType.ChannelInfosUpdate, channelInfos) - } - - onGroupMemberUpdateListener(groupId, groupMembersStr) { - if (!self.isLogined) { - return; - } - let members = []; - let memberIds = []; - let arr = JSON.parse(groupMembersStr); - arr.forEach(e => { - members.push(Object.assign(new GroupMember(), e)); - memberIds.push(e.memberId) - }); - self._preloadGroupMemberUserInfos(memberIds); - self.eventEmitter.emit(EventType.GroupMembersUpdate, groupId, members); - } - - onSettingUpdate() { - if (!self.isLogined) { - return; - } - // TODO 具体更新的信息 - self.eventEmitter.emit(EventType.SettingUpdate); - } - - onRecallMessage(operatorUid, messageUid) { - if (!self.isLogined) { - return; - } - self.eventEmitter.emit(EventType.RecallMessage, operatorUid, Long.fromValue(messageUid)); - } - - onDeleteRemoteMessage(messageUid) { - if (!self.isLogined) { - return; - } - self.eventEmitter.emit(EventType.MessageDeleted, Long.fromValue(messageUid)); - } - - onUserReceivedMessage(receivedMapStr) { - if (!self.isLogined) { - return; - } - let deliveries = JSON.parse(receivedMapStr); - let deliveryMap = new Map(); - deliveries.forEach(e => { - deliveryMap.set(e.key, e.value); - }); - self.eventEmitter.emit(EventType.MessageReceived, deliveryMap); - console.log('onreceive', deliveryMap); - } - - onUserReadedMessage(readedMapStr) { - if (!self.isLogined) { - return; - } - // [{"userId":"GNMtGtZZ","conversationType":1,"target":"Jl8jLjkk","line":0,"readDt":1590308777299} ] - let arr = JSON.parse(readedMapStr); - let readEntries = []; - arr.forEach(e => { - let entry = new ReadEntry(); - entry.userId = e.userId; - if (e.conversation) { - entry.conversation = Object.assign(new Conversation(), e.conversation) - } else { - entry.conversation = new Conversation(e.conversationType, e.target, e.line); - } - entry.readTime = e.readDt; - readEntries.push(entry); - }) - self.eventEmitter.emit(EventType.MessageRead, readEntries); - // console.log('onread', readEntries) - } - - onMessageDeleted(messageId) { - if (!self.isLogined) { - return; - } - self.eventEmitter.emit(EventType.DeleteMessage, messageId); - } - - onUserInfoUpdate(userInfosStr) { - if (!self.isLogined) { - return; - } - let userInfoArray = JSON.parse(userInfosStr); - - let userInfos = userInfoArray.map(info => Object.assign(new UserInfo(), info)) - self.eventEmitter.emit(EventType.UserInfosUpdate, userInfos); - } - - onFriendListUpdate(friendListIds) { - if (!self.isLogined) { - return; - } - console.log('friendList update, ids', friendListIds); - let ids = JSON.parse(friendListIds); - self.eventEmitter.emit(EventType.FriendListUpdate, ids); - } - - onFriendRequestUpdate(newRequests = '[]') { - if (!self.isLogined) { - return; - } - console.log('friend request list update, new incomming requests', newRequests); - let ids = JSON.parse(newRequests); - self.eventEmitter.emit(EventType.FriendRequestUpdate, ids); - } - - init(args = []) { - // {"timestamp":1649176742400,"data":["onConnectionStatusChange",-6]} - console.log('proto init') - uniWfcClient.initProto(); - - //去Bugly官网注册账号和创建App,把AppId填写到这里 - //uniWfcClient.startBugly('f06e6c67c5'); - - plus.globalEvent.addEventListener("wfc-event", (e) => { - // console.debug('wfc-event', e); - self._handleNativeEvent(e); - // this.log = [this.interpreter(e), ...this.log]; - }); - - self.connectionStatus = self.getConnectionStatus(); - self.isLogined = self.connectionStatus === ConnectionStatus.ConnectionStatusConnected; - - console.log('proto init end') - - self.registerDefaultMessageContents(); - } - - registerMessageContent(name, flag, type, clazz) { - MessageConfig.MessageContents.push({ - name: name, - flag: flag, - type: type, - contentClazz: clazz, - }); - uniWfcClient.registerMessageFlag(type, flag); - } - - useSM4() { - uniWfcClient.useSM4(); - } - - connect(userId, token) { - // 强制转成 string - userId = userId + ''; - self.userId = userId; - let lastActiveTime = uniWfcClient.connect(Config.IM_SERVER_HOST, userId, token); - console.log('connect', userId, Config.IM_SERVER_HOST); - // for testing your code - // self.test(); - // 超过一周没有活跃,就预加载数据 - if (new Date().getTime() / 1000 - lastActiveTime > 7 * 24 * 60 * 60) { - self.needPreloadDefaultData = true; - } - return lastActiveTime; - } - - setProxyInfo(host, ip, port, username, password) { - uniWfcClient.setProxyInfo(host, ip, port, username, password); - } - - setPackageName(packageName) { - // not support - // proto.setPackageName(packageName); - } - - disconnect(disablePush, clearSession) { - self.userId = ''; - uniWfcClient.disconnect(disablePush, clearSession); - - - //sleep 1 second wait disconnect with im server - var now = new Date(); - var exitTime = now.getTime() + 1000; - while (true) { - now = new Date(); - if (now.getTime() > exitTime) - return; - } - } - - registerDefaultMessageContents() { - MessageConfig.MessageContents.map((e) => { - uniWfcClient.registerMessageFlag(e.type, e.flag); - }); - } - - getClientId() { - return uniWfcClient.getClientId(); - } - - getUserId() { - try { - return uniWfcClient.getUserId(); - } catch (e) { - return self.userId; - } - } - - getServerDeltaTime() { - return uniWfcClient.getServerDeltaTime(); - } - - - screenShot() { - // not support - } - - isLogin() { - // return proto.isLogin(); - return self.isLogined; - } - - getConnectionStatus() { - return uniWfcClient.getConnectionStatus(); - } - - setBackupAddressStrategy(strategy) { - uniWfcClient.setBackupAddressStrategy(strategy); - } - - setBackupAddress(backupHost, backupPort) { - uniWfcClient.setBackupAddress(backupHost, backupPort); - } - - setProtoUserAgent(userAgent) { - if (typeof userAgent !== 'string') { - console.error('setProtoUserAgent userAgent must be string'); - return; - } - uniWfcClient.setUserAgent(userAgent); - } - - addHttpHeader(header, value) { - if (typeof header !== "string" || typeof value !== "string") { - console.error('addHttpHeader header, value must be string') - return; - } - uniWfcClient.addHttpHeader(header, value); - } - - onAppResume() { - // not support - } - - onAppSuspend() { - // not support - } - - // setLanguage(language) { - // proto.setLanguage(language); - // } - - getMyGroupList() { - let settings = this.getUserSettings(UserSettingScope.FavoriteGroup); - let groupInfos = settings.filter(setting => setting.value === '1') - .map(setting => this.getGroupInfo(setting.key, false)); - return groupInfos; - } - - /** - * @param {string} userId - * @param {boolean} fresh - */ - getUserInfo(userId, fresh = false, groupId = '') { - if (!userId || userId === '') { - return new NullUserInfo(''); - } - let userInfo; - - let userInfoStr = uniWfcClient.getUserInfo(userId, fresh, groupId); - if (userInfoStr === '') { - userInfo = new NullUserInfo(userId); - } else { - userInfo = Object.assign(new UserInfo(), JSON.parse(userInfoStr)); - } - return userInfo; - } - - getUserInfos(userIds, groupId = '') { - if (!userIds || userIds.length === 0) { - return []; - } - let users = []; - let userInfoStrs = uniWfcClient.getUserInfos(userIds, groupId); - if (userInfoStrs && userInfoStrs !== '') { - let tmp = JSON.parse(userInfoStrs); - tmp.forEach((u) => { - let userInfo = Object.assign(new UserInfo(), u); - users.push(userInfo) - }); - } - return users; - } - - async getUserInfoEx(userId, refresh, successCB, failCB) { - uniWfcClient.getUserInfoEx(userId, refresh, (userInfoStr) => { - let userInfo = Object.assign(new UserInfo(), JSON.parse(userInfoStr)); - if (successCB) { - successCB(userInfo); - } - }, (errorCode) => { - if (errorCode) { - failCB(errorCode); - } - - }); - } - - async getUserInfosEx(userIds, groupId, successCB, failCB) { - uniWfcClient.getUserInfosEx(userIds, groupId, (userInfoStrs) => { - let users = []; - if (userInfoStrs && userInfoStrs !== '') { - let tmp = JSON.parse(userInfoStrs); - tmp.forEach((u) => { - let userInfo = Object.assign(new UserInfo(), u); - users.push(userInfo) - }); - } - if (successCB) { - successCB(users); - } - }, (errorCode) => { - if (errorCode) { - failCB(errorCode); - } - - }); - } - - async searchUser(keyword, searchType, page, successCB, failCB) { - uniWfcClient.searchUser(keyword, searchType, page, (result) => { - let userListStr = JSON.parse(result); - let userList = []; - if (userListStr && userListStr.length > 0) { - userListStr.forEach(u => { - userList.push(Object.assign(new UserInfo(), u)); - }); - } - if (successCB) { - successCB(keyword, userList); - } - }, (errorCode) => { - if (errorCode) { - failCB(errorCode); - } - - }); - } - - searchFriends(keyword) { - let result = uniWfcClient.searchFriends(keyword); - let userListStr = JSON.parse(result); - let userList = []; - if (userListStr && userListStr.length > 0) { - userListStr.forEach(u => { - userList.push(Object.assign(new UserInfo(), u)); - }); - } - return userList; - } - - searchGroups(keyword) { - let result = uniWfcClient.searchGroups(keyword); - let groupSearchResultListStr = JSON.parse(result); - let groupSearchResultList = []; - if (groupSearchResultListStr && groupSearchResultListStr.length > 0) { - groupSearchResultListStr.forEach(g => { - groupSearchResultList.push(GroupSearchResult.fromProtoGroupSearchResult(g)); - }); - } - return groupSearchResultList; - } - - getIncommingFriendRequest() { - let result = uniWfcClient.getIncommingFriendRequest(); - let friendRequestListStr = JSON.parse(result); - let firendRequestList = []; - if (friendRequestListStr && friendRequestListStr.length > 0) { - friendRequestListStr.forEach((r) => { - firendRequestList.push(Object.assign(new FriendRequest(), r)); - }); - } - return firendRequestList; - } - - getOutgoingFriendRequest() { - let result = uniWfcClient.getOutgoingFriendRequest(); - let friendRequestListStr = JSON.parse(result); - let firendRequestList = []; - if (friendRequestListStr && friendRequestListStr.length > 0) { - friendRequestListStr.forEach((r) => { - firendRequestList.push(Object.assign(new FriendRequest(), r)); - }); - } - return firendRequestList; - } - - getFriendRequest(userId, incomming) { - let result = uniWfcClient.getFriendRequest(userId, incomming); - return JSON.parse(result); - } - - loadFriendRequestFromRemote() { - uniWfcClient.loadFriendRequestFromRemote(); - } - - getFavUsers() { - let result = uniWfcClient.getFavUsers(); - return JSON.parse(result); - } - - isFavUser(groupId) { - return uniWfcClient.isFavUser(groupId); - } - - setFavUser(userId, fav, successCB, failCB) { - uniWfcClient.setFavUser(userId, fav, () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - loadRemoteMessages(conversation, contentTypes, beforeUid, count, successCB, failCB) { - if (!contentTypes) { - contentTypes = []; - } - uniWfcClient.getRemoteMessages(JSON.stringify(conversation), beforeUid + '', count, (protoMsgsStr) => { - var protoMsgs = JSON.parse(protoMsgsStr); - let msgs = []; - protoMsgs.map(m => { - let msg = Message.fromProtoMessage(m); - if (msg) { - msgs.push(msg); - } - }); - console.log('loadRemoteMessages', beforeUid + '', msgs.length); - successCB && successCB(msgs); - }, (errorCode) => { - console.log("loadRemoteMessages failure:", beforeUid + '', errorCode); - failCB && failCB(errorCode); - }, contentTypes); - } - - loadRemoteMessage(messageUid, successCB, failCB) { - uniWfcClient.getRemoteMessage(stringValue(messageUid), (protoMsgsStr) => { - var protoMsgs = JSON.parse(protoMsgsStr); - let msgs = []; - protoMsgs.map(m => { - let msg = Message.fromProtoMessage(m); - if (msg) { - msgs.push(msg); - } - }); - console.log('loadRemoteMessage', msgs.length); - successCB && successCB(msgs); - }, (errorCode) => { - console.log("loadRemoteMessage failure:", errorCode); - failCB && failCB(errorCode); - }); - } - - getUnreadFriendRequestCount() { - return uniWfcClient.getUnreadFriendRequestStatus(); - } - - clearUnreadFriendRequestStatus() { - uniWfcClient.clearUnreadFriendRequestStatus(); - } - - async deleteFriend(userId, successCB, failCB) { - uniWfcClient.deleteFriend(userId, () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - failCB(errorCode); - }); - } - - async handleFriendRequest(userId, accept, extra, successCB, failCB) { - uniWfcClient.handleFriendRequest(userId, accept, () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - - }, extra); - } - - isBlackListed(userId) { - return uniWfcClient.isBlackListed(userId); - } - - getBlackList() { - let result = uniWfcClient.getBlackList(); - return JSON.parse(result); - } - - setBlackList(userId, block, successCB, failCB) { - uniWfcClient.setBlackList(userId, block, () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - getMyFriendList(fresh = false) { - let idsStr = uniWfcClient.getMyFriendList(fresh); - if (idsStr !== '') { - return JSON.parse(idsStr); - } - return []; - } - - getFriendList(fresh = false) { - let result = uniWfcClient.getFriendList(fresh); - return JSON.parse(result); - } - - getFriendAlias(userId) { - return uniWfcClient.getFriendAlias(userId); - } - - async setFriendAlias(userId, alias, successCB, failCB) { - uniWfcClient.setFriendAlias(userId, alias, successCB, failCB); - } - - async createGroup(groupId, groupType, name, portrait, groupExtra = '', memberIds = [], memberExtra = '', lines = [0], notifyContent, successCB, failCB) { - groupId = !groupId ? '' : groupId; - groupExtra = !groupExtra ? '' : groupExtra; - memberExtra = !memberExtra ? '' : memberExtra; - let myUid = self.getUserId(); - - if (!memberIds.includes(myUid)) { - memberIds.push(myUid); - } - - let payload = notifyContent ? notifyContent.encode() : ''; - let notifyContentStr = '' ? null : JSON.stringify(payload); - //群组类型0,管理员和群主才能加人和退群,修改群信息;2,严格模式,只有群主和管理员才能操作群 - uniWfcClient.createGroup(groupId, groupType, name, portrait, groupExtra, memberIds, memberExtra, lines, notifyContentStr, - (groupId) => { - if (successCB) { - successCB(groupId); - } - }, - (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - async setGroupManager(groupId, isSet, memberIds = [], lines = [0], notifyContent, successCB, failCB) { - let payload = notifyContent ? notifyContent.encode() : ''; - let notifyContentStr = JSON.stringify(payload); - uniWfcClient.setGroupManager(groupId, isSet, memberIds, lines, notifyContentStr, successCB, failCB); - } - - async muteOrAllowGroupMembers(groupId, isSet, isAllow, memberIds, notifyLines = [0], notifyContent, successCB, failCB) { - if (isAllow) { - let payload = notifyContent ? notifyContent.encode() : ''; - let notifyContentStr = JSON.stringify(payload); - uniWfcClient.allowGroupMember(groupId, isSet, memberIds, notifyLines, notifyContentStr, () => { - successCB && successCB(); - }, (errorCode) => { - failCB && failCB(); - }); - } else { - let payload = notifyContent ? notifyContent.encode() : ''; - let notifyContentStr = JSON.stringify(payload); - uniWfcClient.muteGroupMember(groupId, isSet, memberIds, notifyLines, notifyContentStr, () => { - successCB && successCB(); - }, (errorCode) => { - failCB && failCB(errorCode); - }); - } - } - - getGroupInfo(groupId, fresh = false) { - let groupInfo; - - //console.log('get groupInfo', groupId, fresh); - let groupInfoStr = uniWfcClient.getGroupInfo(groupId, fresh); - if (groupInfoStr === '') { - return new NullGroupInfo(groupId); - } else { - groupInfo = Object.assign(new GroupInfo(), JSON.parse(groupInfoStr)); - return groupInfo; - } - } - - getGroupInfos(groupIds, fresh = false) { - console.log('get groupInfos', groupIds.length, fresh); - let groupInfosStr = uniWfcClient.getGroupInfos(groupIds, fresh); - if (groupInfosStr === '') { - return []; - } else { - let arr = JSON.parse(groupInfosStr); - let groupInfos = []; - arr.forEach(e => { - groupInfos.push(Object.assign(new GroupInfo(), e)); - }); - return groupInfos; - } - } - - async getGroupInfoEx(groupId, refresh, successCB, failCB) { - uniWfcClient.getGroupInfoEx(groupId, refresh, (groupInfoStr) => { - let groupInfo = Object.assign(new GroupInfo(), JSON.parse(groupInfoStr)); - - if (successCB) { - successCB(groupInfo); - } - }, (errorCode) => { - if (errorCode) { - failCB(errorCode); - } - - }); - } - - addGroupMembers(groupId, memberIds, extra, notifyLines, notifyMessageContent, successCB, failCB) { - if (!notifyMessageContent) { - notifyMessageContent = new AddGroupMemberNotification(self.getUserId(), memberIds); - } - let payload = notifyMessageContent.encode(); - let notifyContentStr = JSON.stringify(payload); - extra = !extra ? '' : extra; - uniWfcClient.addMembers(groupId, memberIds, extra, notifyLines, notifyContentStr, - () => { - if (successCB) { - successCB(); - } - }, - (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - getGroupMemberIds(groupId, fresh = false) { - let groupMembers = self.getGroupMembers(groupId, fresh); - var groupMemberIds = []; - groupMembers.forEach(e => { - groupMemberIds.push(e.memberId); - }); - return groupMemberIds; - } - - getGroupMembers(groupId, fresh = false) { - let memberIdsStr = uniWfcClient.getGroupMembers(groupId, fresh); - var members = []; - let arr = JSON.parse(memberIdsStr); - arr.forEach(e => { - members.push(Object.assign(new GroupMember(), e)); - }); - return members; - } - - getGroupMembersByType(groupId, memberType) { - let memberIdsStr = uniWfcClient.getGroupMembersByType(groupId, memberType); - var members = []; - let arr = JSON.parse(memberIdsStr); - arr.forEach(e => { - members.push(Object.assign(new GroupMember(), e)); - }); - return members; - } - - getGroupMember(groupId, memberId) { - let result = uniWfcClient.getGroupMember(groupId, memberId); - return Object.assign(new GroupMember(), JSON.parse(result)); - } - - async getGroupMembersEx(groupId, refresh, successCB, failCB) { - uniWfcClient.getGroupMembersEx(groupId, refresh, (memberIdsStr) => { - var members = []; - let arr = JSON.parse(memberIdsStr); - arr.forEach(e => { - members.push(Object.assign(new GroupMember(), e)); - }); - - if (successCB) { - successCB(members); - } - }, (errorCode) => { - if (errorCode) { - failCB(errorCode); - } - - }); - } - - kickoffGroupMembers(groupId, memberIds, notifyLines, notifyMsg, successCB, failCB) { - let payload = notifyMsg ? notifyMsg.encode() : ''; - let strCont = JSON.stringify(payload); - uniWfcClient.kickoffMembers(groupId, memberIds, notifyLines, strCont, - () => { - if (successCB) { - successCB(); - } - - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - async quitGroup(groupId, lines = [0], notifyMessageContent, successCB, failCB) { - let payload = notifyMessageContent ? notifyMessageContent.encode() : ''; - uniWfcClient.quitGroup(groupId, lines, JSON.stringify(payload), () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - failCB(errorCode); - }); - } - - async quitGroupEx(groupId, keepMessage, lines = [0], notifyMessageContent, successCB, failCB) { - let payload = notifyMessageContent ? notifyMessageContent.encode() : ''; - uniWfcClient.quitGroupEx(groupId, keepMessage, lines, JSON.stringify(payload), () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - failCB(errorCode); - }); - } - - async dismissGroup(groupId, lines = [0], notifyMessageContent, successCB, failCB) { - let payload = notifyMessageContent ? notifyMessageContent.encode() : ''; - uniWfcClient.dismissGroup(groupId, lines, JSON.stringify(payload), () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - failCB(errorCode); - }); - } - - async modifyGroupInfo(groupId, type, newValue, lines = [0], notifyMessageContent, successCB, failCB) { - let payload = notifyMessageContent ? notifyMessageContent.encode() : ''; - uniWfcClient.modifyGroupInfo(groupId, type, newValue, lines, JSON.stringify(payload), - () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - async modifyGroupAlias(groupId, alias, lines = [0], notifyMessageContent, successCB, failCB) { - let payload = notifyMessageContent ? notifyMessageContent.encode() : ''; - uniWfcClient.modifyGroupAlias(groupId, alias, lines, JSON.stringify(payload), () => { - successCB(); - }, (errorCode) => { - failCB(errorCode); - }); - } - - async modifyGroupMemberAlias(groupId, memberId, alias, lines = [0], notifyMessageContent, successCB, failCB) { - let payload = notifyMessageContent ? notifyMessageContent.encode() : ''; - uniWfcClient.modifyGroupMemberAlias(groupId, memberId, alias, lines, JSON.stringify(payload), () => { - successCB(); - }, (errorCode) => { - failCB(errorCode); - }); - } - - async modifyGroupMemberExtra(groupId, memberId, extra, lines = [0], notifyMessageContent, successCB, failCB) { - let payload = notifyMessageContent ? notifyMessageContent.encode() : ''; - uniWfcClient.modifyGroupMemberExtra(groupId, memberId, extra, lines, JSON.stringify(payload), () => { - successCB(); - }, (errorCode) => { - failCB(errorCode); - }); - } - - transferGroup(groupId, newOwner, lines = [0], notifyMessageContent, successCB, failCB) { - let payload = notifyMessageContent ? notifyMessageContent.encode() : ''; - uniWfcClient.transferGroup(groupId, newOwner, lines, JSON.stringify(payload), () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - getFavGroups() { - let result = uniWfcClient.getFavGroups(); - return JSON.parse(result); - } - - isFavGroup(groupId) { - return uniWfcClient.isFavGroup(groupId); - } - - async setFavGroup(groupId, fav, successCB, failCB) { - uniWfcClient.setFavGroup(groupId, fav, () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - getUserSetting(scope, key) { - return uniWfcClient.getUserSetting(scope, key); - } - - getUserSettings(scope) { - let result = uniWfcClient.getUserSettings(scope); - return JSON.parse(result); - } - - async setUserSetting(scope, key, value, successCB, failCB) { - uniWfcClient.setUserSetting(scope, key, value, () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - modifyMyInfo(modifyMyInfoEntries, successCB, failCB) { - uniWfcClient.modifyMyInfo(modifyMyInfoEntries[0].type, modifyMyInfoEntries[0].value, () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - isGlobalSlient() { - return uniWfcClient.isGlobalSlient(); - } - - setGlobalSlient(silent, successCB, failCB) { - uniWfcClient.setGlobalSlient(silent, () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - isHiddenNotificationDetail() { - return uniWfcClient.isHiddenNotificationDetail(); - } - - async setHiddenNotificationDetail(hide, successCB, failCB) { - uniWfcClient.setHiddenNotificationDetail(hide, () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - isHiddenGroupMemberName(groupId) { - const setting = uniWfcClient.getUserSetting(UserSettingScope.GroupHideNickname, groupId); - return '1' === setting; - } - - async setHiddenGroupMemberName(groupId, hide, successCB, failCB) { - uniWfcClient.setUserSetting(UserSettingScope.GroupHideNickname, groupId, hide ? '1' : '0', () => { - successCB(); - }, (errorCode) => { - failCB(errorCode); - }); - } - - isUserReceiptEnabled() { - return uniWfcClient.isUserReceiptEnabled(); - } - - async setUserEnableReceipt(enable, successCB, failCB) { - uniWfcClient.setUserReceiptEnable(enable, () => { - successCB && successCB(); - }, (errorCode) => { - failCB && failCB(errorCode); - }); - } - - async joinChatroom(chatroomId, successCB, failCB) { - uniWfcClient.joinChatroom(chatroomId, () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - async quitChatroom(chatroomId, successCB, failCB) { - uniWfcClient.quitChatroom(chatroomId, () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - async getChatroomInfo(chatroomId, updateDt, successCB, failCB) { - uniWfcClient.getChatroomInfo(chatroomId, updateDt, (info) => { - if (successCB) { - successCB(Object.assign(new ChatRoomInfo(), JSON.parse(info))); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - async getChatroomMemberInfo(chatroomId, maxCount, successCB, failCB) { - uniWfcClient.getChatroomMemberInfo(chatroomId, maxCount, (info) => { - if (successCB) { - successCB(Object.assign(new ChatRoomMemberInfo(), JSON.parse(info))); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - createChannel(name, portrait, desc, extra, successCB, failCB) { - uniWfcClient.createChannel(name, portrait, 0, desc, extra, (info) => { - if (successCB) { - successCB(Object.assign(new ChannelInfo(), JSON.parse(info))); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - getChannelInfo(channelId, refresh) { - let result = uniWfcClient.getChannelInfo(channelId, refresh); - if (result === '') { - return new NullChannelInfo(channelId); - } - - return Object.assign(new ChannelInfo(), JSON.parse(result)); - } - - async modifyChannelInfo(channelId, type, newValue, successCB, failCB) { - uniWfcClient.modifyChannelInfo(channelId, type, newValue, () => { - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - searchChannel(keyword, successCB, failCB) { - uniWfcClient.searchChannel(keyword, (result) => { - if (successCB) { - let channels = []; - let tmp = JSON.parse(result); - tmp.forEach(channel => { - channels.push(Object.assign(new ChannelInfo(), channel)); - }); - successCB(channels); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - isListenedChannel(channelId) { - return uniWfcClient.isListenedChannel(channelId); - } - - async listenChannel(channelId, listen, successCB, failCB) { - uniWfcClient.listenChannel(channelId, listen, () => { - successCB(); - }, errorCode => { - failCB(errorCode); - }); - } - - // return channelIds - getMyChannels() { - let result = uniWfcClient.getMyChannels(); - return JSON.parse(result); - } - - getListenedChannels() { - let result = uniWfcClient.getListenedChannels(); - return JSON.parse(result); - } - - async destoryChannel(channelId, successCB, failCB) { - uniWfcClient.destoryChannel(channelId, () => { - if (successCB) { - successCB(); - } - }, errorCode => { - if (failCB) { - failCB(errorCode); - } - }); - } - - getConversationList(types, lines) { - var conversationListStr = uniWfcClient.getConversationInfos(types, lines); - if (!conversationListStr) { - console.log('getConversationInfos return null') - return []; - } - - let conversationInfoList = []; - let tmp = JSON.parse(conversationListStr); - tmp.forEach(c => { - conversationInfoList.push(ConversationInfo.protoConversationToConversationInfo(c)); - }); - - return conversationInfoList; - } - - getConversationInfo(conversation) { - let convStr = uniWfcClient.getConversationInfo(JSON.stringify(conversation)); - return ConversationInfo.protoConversationToConversationInfo(JSON.parse(convStr)); - } - - searchConversation(keyword, types = [], lines = []) { - let result = uniWfcClient.searchConversation(keyword, types, lines); - let resultList = JSON.parse(result); - var conversationSearchResult = []; - if (resultList && resultList.length > 0) { - resultList.forEach(r => { - conversationSearchResult.push(ConversationSearchResult.fromProtoConversationSearchResult(r)); - }); - } - return conversationSearchResult; - } - - async removeConversation(conversation, clearMsg = false) { - uniWfcClient.removeConversation(JSON.stringify(conversation), clearMsg); - } - - setConversationTop(conversation, top, successCB, failCB) { - uniWfcClient.setConversationTop(JSON.stringify(conversation), top, () => { - let conversationInfo = self.getConversationInfo(conversation); - self.eventEmitter.emit(EventType.ConversationInfoUpdate, conversationInfo); - - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - setConversationSlient(conversation, silent, successCB, failCB) { - uniWfcClient.setConversationSlient(JSON.stringify(conversation), silent, () => { - let conversationInfo = self.getConversationInfo(conversation); - self.eventEmitter.emit(EventType.ConversationInfoUpdate, conversationInfo); - - if (successCB) { - successCB(); - } - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - setConversationDraft(conversation, draft = '') { - let conversationInfo = self.getConversationInfo(conversation); - if (conversationInfo.draft === draft) { - return; - } - uniWfcClient.setConversationDraft(JSON.stringify(conversation), draft); - conversationInfo = self.getConversationInfo(conversation); - self.eventEmitter.emit(EventType.ConversationInfoUpdate, conversationInfo); - } - - //timestamp 为毫秒,字符串类型 - setConversationTimestamp(conversation, timestamp) { - timestamp = timestamp + ''; - uniWfcClient.setConversationTimestamp(JSON.stringify(conversation), timestamp); - let conversationInfo = self.getConversationInfo(conversation); - self.eventEmitter.emit(EventType.ConversationInfoUpdate, conversationInfo); - } - - getUnreadCount(types = [], lines = [0]) { - let unreadCountStr = uniWfcClient.getUnreadCount(types, lines); - return Object.assign(new UnreadCount(), JSON.parse(unreadCountStr)); - } - - getConversationUnreadCount(conversation) { - let unreadCountStr = uniWfcClient.getConversationUnreadCount(JSON.stringify(conversation)); - return Object.assign(new UnreadCount(), JSON.parse(unreadCountStr)); - } - - clearConversationUnreadStatus(conversation) { - console.log('clearConversationUnreadStatus', JSON.stringify(conversation)); - uniWfcClient.clearUnreadStatus(JSON.stringify(conversation)); - let conversationInfo = self.getConversationInfo(conversation); - self.eventEmitter.emit(EventType.ConversationInfoUpdate, conversationInfo); - } - - markConversationAsUnread(conversation, syncToOtherClient) { - let result = uniWfcClient.setLastReceivedMessageUnRead(JSON.stringify(conversation), '0', '0'); - if (result) { - let conversationInfo = self.getConversationInfo(conversation); - self.eventEmitter.emit(EventType.ConversationInfoUpdate, conversationInfo); - } - return result; - } - - getConversationRead(conversation) { - let readedStr = uniWfcClient.getConversationRead(JSON.stringify(conversation)); - let readedArr = JSON.parse(readedStr); - let result = new Map(); - if (readedArr) { - readedArr.forEach(e => { - result.set(e.key, e.value) - }) - } - return result; - } - - clearAllUnreadStatus() { - // TODO emit ConversationInfoUpdate event - uniWfcClient.clearAllUnreadStatus(); - } - - getConversationFirstUnreadMessageId(conversation) { - let messageId = uniWfcClient.getConversationFirstUnreadMessageId(JSON.stringify(conversation)); - return messageId; - } - - setMediaMessagePlayed(messageId) { - // TODO need to emit message update event? - uniWfcClient.setMediaMessagePlayed(messageId); - } - - setMessageLocalExtra(messageId, extra) { - uniWfcClient.setMessageLocalExtra(messageId, extra); - } - - isMyFriend(userId) { - return uniWfcClient.isMyFriend(userId); - } - - async sendFriendRequest(userId, reason, extra, successCB, failCB) { - extra = !extra ? '' : extra; - uniWfcClient.sendFriendRequest(userId, reason, extra, () => { - if (successCB) { - successCB(); - } - - }, (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - /** - * - * @param {Conversation} conversation - * @param {number} fromIndex - * @param {boolean} before - * @param {number} count - * @param {string} withUser - * @param {array} contentTypes - */ - getMessages(conversation, fromIndex, before = true, count = 20, withUser = '', contentTypes = []) { - let protoMsgsStr = uniWfcClient.getMessages(JSON.stringify(conversation), contentTypes, fromIndex, before, count, withUser); - // let protoMsgsStr = proto.getMessages('xxx', [0], fromIndex, before, count, withUser); - var protoMsgs = JSON.parse(protoMsgsStr); - let msgs = []; - protoMsgs.map(m => { - let msg = Message.fromProtoMessage(m); - if (msg) { - msgs.push(msg); - } - }); - console.log('getMessages', msgs.length); - - return msgs; - } - - - getMessagesEx(conversationTypes, lines, contentTypes, fromIndex, before = true, count = 20, withUser = '') { - let protoMsgsStr = uniWfcClient.getMessagesEx(conversationTypes, lines, contentTypes, fromIndex, before, count, withUser); - // let protoMsgsStr = proto.getMessages('xxx', [0], fromIndex, before, count, withUser); - var protoMsgs = JSON.parse(protoMsgsStr); - let msgs = []; - protoMsgs.map(m => { - let msg = Message.fromProtoMessage(m); - if (msg) { - msgs.push(msg); - } - }); - console.log('getMessages', msgs.length); - - return msgs; - } - - getUserMessages(userId, conversation, fromIndex, before = true, count = 20, contentTypes = []) { - let protoMsgsStr = uniWfcClient.getUserMessages(userId, JSON.stringify(conversation), contentTypes, fromIndex, before, count); - var protoMsgs = JSON.parse(protoMsgsStr); - let msgs = []; - protoMsgs.map(m => { - let msg = Message.fromProtoMessage(m); - if (msg) { - msgs.push(msg); - } - }); - console.log('getMessages', msgs.length); - - return msgs; - } - - - getUserMessagesEx(userId, conversationTypes, lines, fromIndex, before = true, count = 20, contentTypes = []) { - let protoMsgsStr = uniWfcClient.getUserMessagesEx(userId, conversationTypes, lines, contentTypes, fromIndex, before, count); - var protoMsgs = JSON.parse(protoMsgsStr); - let msgs = []; - protoMsgs.map(m => { - let msg = Message.fromProtoMessage(m); - if (msg) { - msgs.push(msg); - } - }); - console.log('getMessages', msgs.length); - - return msgs; - } - - getMessagesV2(conversation, fromIndex, before, count, withUser, successCB, failCB) { - uniWfcClient.getMessagesV2(JSON.stringify(conversation), fromIndex, before, count, withUser, ...this._wrapperGetMessageCallbacks(successCB, failCB)); - } - - getMessagesExV2(conversationTypes, lines, fromIndex, before, count, withUser, contentTypes, successCB, failCB) { - uniWfcClient.getMessagesExV2(conversationTypes, lines, fromIndex, before, count, withUser, contentTypes, ...this._wrapperGetMessageCallbacks(successCB, failCB)); - } - - getMessagesEx2V2(conversationTypes, lines, messageStatuses, fromIndex, before, count, withUser, successCB, failCB) { - uniWfcClient.getMessagesEx2V2(conversationTypes, lines, messageStatuses, fromIndex, before, count, withUser, ...this._wrapperGetMessageCallbacks(successCB, failCB)); - } - - getMessagesByTimestampV2(conversation, contentTypes, timestamp, before, count, withUser, successCB, failCB) { - uniWfcClient.getMessagesByTimestampV2(JSON.stringify(conversation), contentTypes, numberValue(timestamp), before, count, withUser, ...this._wrapperGetMessageCallbacks(successCB, failCB)); - } - - getUserMessagesV2(userId, conversation, fromIndex, before, count, successCB, failCB) { - uniWfcClient.getUserMessagesV2(userId, JSON.stringify(conversation), fromIndex, before, count, ...this._wrapperGetMessageCallbacks(successCB, failCB)); - } - - getUserMessagesExV2(userId, conversationTypes, lines, fromIndex, before, count, contentTypes, successCB, failCB) { - uniWfcClient.getUserMessagesExV2(userId, conversationTypes, lines, fromIndex, before, count, contentTypes, ...this._wrapperGetMessageCallbacks(successCB, failCB)); - } - - _wrapperGetMessageCallbacks(successCB, failCB) { - let cbs = [ - protoMsgsStr => { - var protoMsgs = JSON.parse(protoMsgsStr); - let msgs = []; - protoMsgs.map(m => { - let msg = Message.fromProtoMessage(m); - if (msg) { - msgs.push(msg); - } - }); - successCB && successCB(msgs); - }, - err => { - failCB && failCB(err); - } - ] - return cbs; - } - - getMessageById(messageId) { - let mStr = uniWfcClient.getMessage(messageId); - return Message.fromProtoMessage(JSON.parse(mStr)); - } - - getMessageByUid(messageUid) { - console.log('getMesssageByUid', Long.fromValue(messageUid).toString()); - let mStr = uniWfcClient.getMessageByUid(Long.fromValue(messageUid).toString()); - console.log('getMesssageByUid----', mStr); - return Message.fromProtoMessage(JSON.parse(mStr)); - } - - searchMessage(conversation, keyword, withUser = '') { - let result = uniWfcClient.searchMessage(JSON.stringify(conversation), keyword, withUser); - let msgs = JSON.parse(result); - let matchMsgs = []; - if (msgs && msgs.length > 0) { - msgs.forEach(m => { - matchMsgs.push(Message.fromProtoMessage(m)); - }); - } - - return matchMsgs; - } - - searchMessageEx(conversation, keyword, desc, limit, offset, withUser) { - let result = uniWfcClient.searchMessageEx(JSON.stringify(conversation), keyword, desc, limit, offset, withUser); - let msgs = JSON.parse(result); - let matchMsgs = []; - if (msgs && msgs.length > 0) { - msgs.forEach(m => { - matchMsgs.push(Message.fromProtoMessage(m)); - }); - } - - return matchMsgs; - } - - searchMessageByTypes(conversation, keyword, contentTypes, desc, limit, offset, withUser = '') { - if (!contentTypes) { - contentTypes = []; - } - let result = uniWfcClient.searchMessageByTypes(JSON.stringify(conversation), keyword, contentTypes, desc, limit, offset, withUser); - let msgs = JSON.parse(result); - let matchMsgs = []; - if (msgs && msgs.length > 0) { - msgs.forEach(m => { - matchMsgs.push(Message.fromProtoMessage(m)); - }); - } - - return matchMsgs; - } - - searchMessageByTypesAndTimes(conversation, keyword, contentTypes, startTime, endTime, desc, limit, offset, withUser) { - if (!contentTypes) { - contentTypes = []; - } - let result = uniWfcClient.searchMessageByTypesAndTimes(JSON.stringify(conversation), keyword, contentTypes, startTime.toString(), endTime.toString(), desc, limit, offset, withUser); - let msgs = JSON.parse(result); - let matchMsgs = []; - if (msgs && msgs.length > 0) { - msgs.forEach(m => { - matchMsgs.push(Message.fromProtoMessage(m)); - }); - } - - return matchMsgs; - } - - searchMessageEx2(conversationTypes, lines, contentTypes, keyword, fromIndex, desc, count) { - if (!contentTypes) { - contentTypes = []; - } - let result = uniWfcClient.searchMessageEx2(conversationTypes, lines, contentTypes, keyword, fromIndex, desc, count); - let msgs = JSON.parse(result); - let matchMsgs = []; - if (msgs && msgs.length > 0) { - msgs.forEach(m => { - matchMsgs.push(Message.fromProtoMessage(m)); - }); - } - - return matchMsgs; - } - - async sendConversationMessage(conversation, messageContent, toUsers = [], preparedCB, progressCB, successCB, failCB) { - let message = new Message(); - message.conversation = conversation; - message.messageContent = messageContent; - self.sendMessageEx(message, toUsers, preparedCB, progressCB, successCB, failCB); - } - - async sendMessage(message, preparedCB, progressCB, successCB, failCB) { - self.sendMessageEx(message, [], preparedCB, progressCB, successCB, failCB); - } - - // toUsers 用来实现定向消息 - async sendMessageEx(message, toUsers = [], preparedCB, progressCB, successCB, failCB) { - let strConv = JSON.stringify(message.conversation); - message.content = await message.messageContent.encode(); - message.from = this.userId; - console.log('--------------p', message.content); - let strCont = JSON.stringify(message.content); - - uniWfcClient.sendMessage(strConv, strCont, toUsers, 0, - (args) => { //preparedCB - let [messageId, timestamp] = args; - message.messageId = messageId; - message.timestamp = Long.fromValue(timestamp).toNumber(); - if (typeof preparedCB === 'function') { - preparedCB(messageId, Long.fromValue(timestamp).toNumber()); - } - // 有 onSendMessageListener 触发 - // self.eventEmitter.emit(EventType.SendMessage, message); - }, - args => { //progressCB - let [uploaded, total] = args; - if (typeof progressCB === 'function') { - progressCB(uploaded, total); - } - // upload progress update - }, - args => { //successCB - let [messageUid, timestamp] = args; - message.status = MessageStatus.Sent; - message.messageUid = Long.fromValue(messageUid); - message.timestamp = Long.fromValue(timestamp).toNumber(); - // update remote url - if (message.messageContent instanceof MediaMessageContent) { - let msg = self.getMessageById(message.messageId); - message.messageContent = msg.messageContent; - } - - if (typeof successCB === 'function') { - successCB(Long.fromValue(messageUid), Long.fromValue(timestamp).toNumber()); - } - // self.eventEmitter.emit(EventType.MessageStatusUpdate, message); - }, - (errorCode) => { //errorCB - message.status = MessageStatus.SendFailure; - if (typeof failCB === 'function') { - failCB(errorCode); - } - // self.eventEmitter.emit(EventType.MessageStatusUpdate, message); - }); - - } - - // 更新了原始消息的内容 - async recallMessage(messageUid, successCB, failCB) { - console.log('recall', messageUid); - uniWfcClient.recall(messageUid.toString(), - () => { - console.log('recall, s', messageUid); - if (successCB) { - successCB(); - } - this.onRecallMessage(this.getUserId(), messageUid); - }, - (errorCode) => { - console.log('recall, f', messageUid, errorCode); - if (failCB) { - failCB(); - } - }); - } - - async deleteRemoteMessage(messageUid, successCB, failCB) { - console.log('deleteRemoteMessageByUid', messageUid); - uniWfcClient.deleteRemoteMessage(messageUid.toString(), - () => { - if (successCB) { - successCB(); - } - this.onDeleteRemoteMessage(messageUid); - }, - (errorCode) => { - if (failCB) { - failCB(); - } - }); - } - - async updateRemoteMessageContent(messageUid, messageContent, distribute, updateLocal, successCB, failCB) { - console.log('updateRemoteMessageContent', messageUid); - let protoMessageContent = messageContent.encode(); - uniWfcClient.updateRemoteMessageContent(messageUid.toString(), JSON.stringify(protoMessageContent), distribute, updateLocal, - () => { - if (successCB) { - successCB(); - } - }, - (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }); - } - - deleteMessageById(messageId) { - // 底层返回值是 void,先不修改底层 SDK 了 - let result = uniWfcClient.deleteMessage(messageId); - this.onMessageDeleted(messageId); - return result; - } - - watchOnlineState(conversationType, targets, duration, successCB, failCB) { - uniWfcClient.watchOnlineState(conversationType, targets, duration, - (strStates) => { - let userOnlineStates = self._parseUserOnlineState(strStates); - successCB && successCB(userOnlineStates); - }, - (errorCode) => { - failCB && failCB(errorCode); - }); - } - - unwatchOnlineState(conversationType, targets, successCB, failCB) { - uniWfcClient.unwatchOnlineState(conversationType, targets, - () => { - if (successCB) { - successCB(); - } - }, - (errorCode) => { - if (failCB) { - failCB(); - } - }); - } - - isCommercialServer() { - return uniWfcClient.isCommercialServer(); - } - - isReceiptEnabled() { - return uniWfcClient.isReceiptEnabled(); - } - - isGlobalDisableSyncDraft() { - return uniWfcClient.isGlobalDisableSyncDraft(); - } - - isEnableUserOnlineState() { - return uniWfcClient.isEnableUserOnlineState(); - } - - setDisableSyncDraft(disable, successCB, failCB) { - this.setUserSetting(UserSettingScope.DisableSyncDraft, '', disable ? '1' : '0', - () => successCB && successCB(), - (err) => failCB && failCB(err)); - } - - isDisableSyncDraft() { - return this.getUserSetting(UserSettingScope.DisableSyncDraft, '') === '1'; - } - - getAuthorizedMediaUrl(messaggeUid, mediaType, mediaPath, successCB, failCB) { - uniWfcClient.getAuthorizedMediaUrl(messaggeUid, mediaType, mediaPath, (args) => { - let [url, backupUrl] = args; - successCB && successCB(url, backupUrl); - }, failCB); - } - - isSupportBigFilesUpload() { - return uniWfcClient.isSupportBigFilesUpload(); - } - - getUploadMediaUrl(fileName, mediaType, contentType, successCB, failCB) { - uniWfcClient.getUploadMediaUrl(fileName, mediaType, contentType, (args) => { - let [uploadUrl, remoteUrl, backUploadupUrl, serverType] = args; - successCB && successCB(uploadUrl, remoteUrl, backUploadupUrl, serverType); - }, failCB); - } - - getConversationFileRecords(conversation, fromUser, beforeUid, count, successCB, failCB) { - uniWfcClient.getConversationFiles(JSON.stringify(conversation), fromUser, Long.fromValue(beforeUid).toString(), count, (frsStr) => { - let frs = JSON.parse(frsStr); - let fileRecords = []; - frs.forEach(fr => { - fileRecords.push(this._objStrToFileRecordObj(fr)); - }) - successCB && successCB(fileRecords); - }, (errorCode) => { - failCB && failCB(errorCode); - }); - } - - _objStrToFileRecordObj(obj) { - - let fileRecord = new FileRecord(); - fileRecord.userId = obj.userId; - if (obj.conversation) { - fileRecord.conversation = Object.assign(new Conversation(), obj.conversation); - } else { - fileRecord.conversation = new Conversation(obj.conversationType, obj.target, obj.line); - } - fileRecord.messageUid = Long.fromValue(obj.messageUid); - fileRecord.name = obj.name; - fileRecord.url = obj.url; - fileRecord.size = obj.size; - fileRecord.downloadCount = obj.downloadCount; - fileRecord.timestamp = obj.timestamp; - - return fileRecord; - } - - getMyFileRecords(beforeUid, count, successCB, failCB) { - uniWfcClient.getMyFiles(Long.fromValue(beforeUid).toString(), count, (frsStr) => { - let frs = JSON.parse(frsStr); - let fileRecords = []; - frs.forEach(fr => { - fileRecords.push(this._objStrToFileRecordObj(fr)); - }) - successCB && successCB(fileRecords); - }, (errorCode) => { - failCB && failCB(errorCode); - }); - } - - deleteFileRecord(messageUid, successCB, failCB) { - uniWfcClient.deleteFileRecord(Long.fromValue(messageUid).toString(), () => { - successCB && successCB(); - }, (errorCode) => { - failCB && failCB(errorCode); - }); - } - - async clearMessages(conversation) { - uniWfcClient.clearMessages(JSON.stringify(conversation)); - let conversationInfo = this.getConversationInfo(conversation); - self.eventEmitter.emit(EventType.ConversationInfoUpdate, conversationInfo); - } - - async clearRemoteConversationMessages(conversation, successCB, failCB) { - uniWfcClient.clearRemoteConversationMessages(JSON.stringify(conversation), - () => { - successCB && successCB(); - }, - (errorCode) => { - failCB && failCB(errorCode); - } - ); - } - - /** - * 删除before时间之前的所有消息 - * - * @param {Conversation} conversation - * @param {String} before 时间精度到毫秒,字符串格式 - */ - async clearMessagesByTime(conversation, before) { - uniWfcClient.clearMessagesByTime(JSON.stringify(conversation), before); - let conversationInfo = this.getConversationInfo(conversation); - self.eventEmitter.emit(EventType.ConversationInfoUpdate, conversationInfo); - } - - /** - * - * @param {Conversation} conversation - * @param {MessageContent} messageContent - * @param {MessageStatus} status - * @param {boolean} notify 是否触发onReceiveMessage - * @param {Number} serverTime 服务器时间,精度到毫秒 - */ - insertMessage(conversation, messageContent, status, notify = false, toUsers = [], serverTime = 0) { - let protoMessageContent = messageContent.encode(); - uniWfcClient.insertMessage(JSON.stringify(conversation), self.userId, JSON.stringify(protoMessageContent), status, notify, toUsers, serverTime); - } - - async updateMessageContent(messageId, messageContent) { - let protoMessageContent = messageContent.encode(); - uniWfcClient.updateMessage(messageId, JSON.stringify(protoMessageContent)); - } - - async updateMessageStatus(messageId, status) { - uniWfcClient.updateMessageStatus(messageId, status); - } - - async uploadMedia(fileName, data, mediaType, successCB, failCB, progressCB) { - // var data = file.slile(0, file.size); - // TODO - // FIXME - // if (data.path) { - // data = await fs.readFile(data.path, {encoding: 'base64'}); - // } - if (data.indexOf("base64,") >= 0) { - data = data.substring(data.indexOf(',') + 1); - } - uniWfcClient.uploadMedia(fileName, data, mediaType, - (remoteUrl) => { - if (successCB) { - successCB(remoteUrl); - } - }, - (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }, - (current, total) => { - if (progressCB) { - progressCB(current, total); - } - }); - } - - async uploadMediaFile(mediaPath, mediaType, successCB, failCB, progressCB) { - uniWfcClient.uploadMediaFile(mediaPath, mediaType, - (remoteUrl) => { - if (successCB) { - successCB(remoteUrl); - } - }, - (errorCode) => { - if (failCB) { - failCB(errorCode); - } - }, - (current, total) => { - if (progressCB) { - progressCB(current, total); - } - }); - } - - sendConferenceRequest(sessionId, roomId, request, data, advance, callback) { - uniWfcClient.sendConferenceRequest('' + sessionId, roomId, request, data, - (resp) => { - callback && callback(0, resp); - }, - (errorCode) => { - callback && callback(errorCode, null) - }, advance === true); - } - - searchFiles(keyword, conversation, fromUser, beforeMessageId, count, successCB, failCB) { - uniWfcClient.searchFiles(keyword, conversation ? JSON.stringify(conversation) : '', fromUser, Long.fromValue(beforeMessageId).toString(), count, - (files) => { - let frs = JSON.parse(files); - - let fileRecords = []; - frs.forEach(fr => { - fileRecords.push(this._objStrToFileRecordObj(fr)); - }) - successCB && successCB(fileRecords); - }, - (errorCode) => { - failCB && failCB(errorCode); - }) - } - - searchMyFiles(keyword, beforeMessageUid, count, successCB, failCB) { - uniWfcClient.searchMyFiles(keyword, Long.fromValue(beforeMessageUid).toString(), count, - (files) => { - let frs = JSON.parse(files); - - let fileRecords = []; - frs.forEach(fr => { - fileRecords.push(this._objStrToFileRecordObj(fr)); - }) - successCB && successCB(fileRecords); - }, - (errorCode) => { - failCB && failCB(errorCode); - }); - } - - getAuthCode(appId, appType, host, successCB, failCB) { - uniWfcClient.getAuthCode(appId, appType, host, (authCode) => { - successCB && successCB(authCode); - }, (err) => { - failCB && failCB(err); - }) - } - - configApplication(appId, appType, timestamp, nonceStr, signature, successCB, failCB) { - uniWfcClient.configApplication(appId, appType, timestamp, nonceStr, signature, () => { - successCB && successCB(); - }, (err) => { - failCB && failCB(err); - }) - } - - notify(title, content) { - uniWfcClient.notify(title, content); - } - - clearAllNotification() { - uniWfcClient.clearAllNotification(); - } - - setDeviceToken(type, token) { - uniWfcClient.setDeviceToken(type, token); - } - - chooseFile(type, successCB, failCB) { - uniWfcClient.chooseFile(type, (res) => { - successCB && successCB(res); - }, (err) => { - failCB && failCB(err); - }); - } - - kickoffPCClient(pcClientId, successCB, failCB) { - uniWfcClient.kickoffPCClient(pcClientId, () => { - successCB && successCB(); - }, err => { - failCB && failCB(err); - }); - } - - getCommonGroups(userId, successCB, failCB) { - uniWfcClient.getCommonGroups(userId, successCB, failCB); - } - - _nativeEvent2WfcEvent = { - // 'onChannelInfoUpdate': EventType.ChannelInfosUpdate, - // 'onClearMessage': null, - // 'onConferenceEvent': EventType.ConferenceEvent, - // 'onConnectToServer': EventType.ConnectToServer, - // 'onConnectionStatusChange': EventType.ConnectionStatusChanged, - // 'onConversationDraftUpdate': null, - // 'onDeleteMessage': EventType.DeleteMessage, - // 'onFriendListUpdate': EventType.FriendListUpdate, - // 'onGroupInfoUpdate': EventType.GroupInfosUpdate, - // 'onGroupMembersUpdate': EventType.GroupMembersUpdate, - // 'onServiceConnected': null, - // 'onMessageDelivered': EventType.MessageReceived, - // 'onMessageRead': EventType.MessageRead, - // 'onMessageUpdate': EventType.MessageStatusUpdate, - // 'onReceiveMessage': EventType.ReceiveMessage, - // 'onRecallMessage': EventType.RecallMessage, - // 'onConversationRemove': null, - // 'onMediaUpload': null, - // 'onSettingUpdate': EventType.SettingUpdate, - // 'onTrafficData': null, - // 'onUserInfoUpdate': EventType.UserInfosUpdate, - // 'onUserOnlineEvent': EventType.UserOnlineEvent, - - 'onChannelInfoUpdate': this.onChannelInfoUpdate, - 'onClearMessage': null, - 'onConferenceEvent': this.onConferenceEvent, - 'onConnectToServer': this.onConnectToServer, - 'onConnectionStatusChange': this.onConnectionChanged, - 'onConversationDraftUpdate': null, - 'onDeleteMessage': this.onDeleteRemoteMessage, - 'onFriendListUpdate': this.onFriendListUpdate, - 'onFriendRequestUpdate': this.onFriendRequestUpdate, - 'onGroupInfoUpdate': this.onGroupInfoUpdate, - 'onGroupMembersUpdate': this.onGroupMemberUpdateListener, - 'onServiceConnected': null, - 'onMessageDelivered': this.onUserReceivedMessage, - 'onMessageRead': this.onUserReadedMessage, - 'onMessageUpdate': this.onMessageUpdate, - 'onReceiveMessage': this.onReceiveMessage, - 'onRecallMessage': this.onRecallMessage, - 'onConversationRemove': null, - 'onSettingUpdate': this.onSettingUpdate, - 'onTrafficData': null, - 'onUserInfoUpdate': this.onUserInfoUpdate, - 'onUserOnlineEvent': this.onOnlineEvent, - // sendMessageListener - 'onSendSuccess': this.onSendSuccess, - 'onSendFail': this.onSendFail, - 'onSendPrepare': this.onSendPrepare, - 'onProgress': this.onProgress, - 'onMediaUpload': this.onMediaUpload, - } - - _handleNativeEvent(e) { - let args = e.args; - let func = this._nativeEvent2WfcEvent[args[0]]; - if (func) { - func(...args.slice(1)); - } - } - - _callNativeFunc(...args) { - - } - - // 预加载数据 - // 拉取会话相关用户、群信息 - // 自己的用户信息 - // 获取所有好友、好友请求的用户信息 - _preloadDefaultData() { - let requests = self.getIncommingFriendRequest() - let userIdSet = new Set(); - requests.forEach(fr => { - userIdSet.add(fr.target); - }); - requests = self.getOutgoingFriendRequest() - requests.forEach(fr => { - userIdSet.add(fr.target); - }); - - let friendIds = self.getMyFriendList(false); - friendIds.forEach(uid => userIdSet.add(uid)); - - let conversationInfoList = self.getConversationList([0, 1, 3], [0, 1, 2]); - let groupIdIds = []; - let channelIds = []; - conversationInfoList.forEach(info => { - if (info.conversation.type === ConversationType.Single) { - userIdSet.add(info.conversation.target); - } else if (info.conversation.type === ConversationType.Group) { - groupIdIds.push(info.conversation.target); - } else if (info.conversation.type === ConversationType.Channel) { - channelIds.push(info.conversation.target) - } - if (info.lastMessage && info.lastMessage.from) { - userIdSet.add(info.lastMessage.from); - } - }) - let uids = Array.from(userIdSet); - console.log('to preload userIds', uids, userIdSet) - for (let i = 0; i < uids.length / 2000; i++) { - self.getUserInfos(uids.slice(2000 * i, (i + 1) * 2000), ''); - console.log('to preload', uids.slice(2000 * i, (i + 1) * 2000)) - } - - console.log('to preload groupIds', groupIdIds) - self.getGroupInfos(groupIdIds, false) - groupIdIds.forEach(groupId => { - self.getGroupMembers(groupId, false); - }) - channelIds.forEach(channelId => { - self.getChannelInfo(channelId) - }) - - let estimatedTime = 0; - // 每 2000 人 5 秒 - estimatedTime += Math.round(uids.length / 2000) * 4 - // 每 10 个群 2 秒 - estimatedTime += Math.round(groupIdIds.length / 10) * 2 - - return estimatedTime * 1000; - } - - _preloadGroupMemberUserInfos(memberIds) { - for (let i = 0; i < memberIds.length / 2000; i++) { - self.getUserInfos(memberIds.slice(2000 * i, (i + 1) * 2000), ''); - console.log('to preload', memberIds.slice(2000 * i, (i + 1) * 2000)) - } - } -} - -const self = new WfcImpl(); -export default self; diff --git a/src/wfc/ptt/messages/pttSoundMessageContent.js b/src/wfc/ptt/messages/pttSoundMessageContent.js deleted file mode 100644 index 340769a8..00000000 --- a/src/wfc/ptt/messages/pttSoundMessageContent.js +++ /dev/null @@ -1,23 +0,0 @@ -import SoundMessageContent from "../../messages/soundMessageContent"; - -export default class PttSoundMessageContent extends SoundMessageContent { - - constructor(file, duration) { - super(file, null, duration); - this.type = 23; - } - - digest(message) { - return '[对讲语音]' - } - - encode() { - let payload = super.encode(); - payload.searchableContent = '[对讲语音]'; - return payload; - } - - decode(payload) { - super.decode(payload); - } -} diff --git a/src/wfc/ptt/pttClient.js b/src/wfc/ptt/pttClient.js deleted file mode 100644 index 9563f6b0..00000000 --- a/src/wfc/ptt/pttClient.js +++ /dev/null @@ -1,273 +0,0 @@ -import {EventEmitter} from 'events'; -import PttEventType from "./pttEventType"; -import Conversation from "../model/conversation"; -import wfc from "../client/wfc"; -import PersistFlag from "../messages/persistFlag"; -import PttSoundMessageContent from "./messages/pttSoundMessageContent"; -import Config from "../../config"; - -const uniWfcPttClient = Config.ENABLE_PTT ? uni.requireNativePlugin("wf-uni-wfc-pttclient") : null; - -export class PttClient { - - /** - * 只在正常模式下生效 - * 单聊会话里面,最多允许几个人同时说话 - */ - static SINGLE_CHAT_MAX_SPEAKER_COUNT = 1; - - /** - * 只在正常模式下生效 - * 群会话里面,最多允许几个人同时说话 - */ - static GROUP_CHAT_MAX_SPEAKER_COUNT = 3; - - // 对讲时,是否发送额外的语音消息 - static SINGLE_CHAT_SEND_VOICE_MESSAGE = true; - static GROUP_CHAT_SEND_VOICE_MESSAGE = true; - /** - * 单位是秒 - */ - static SINGLE_CHAT_MAX_SPEAK_TIME = 60; - - /** - * 单位是秒 - */ - static GROUP_CHAT_MAX_SPEAK_TIME = 60; - - /** - * 对讲模式 - * 默认是正常模式 - * 1. 正常模式,用户可以同时播放多路对讲,一个会话里面,可以配置允许多个人同时说话 - * 2. 优先级模式,用户只能播放优先级最高的那路对讲,一个会话里面,只允许一个人说话 - */ - static ENABLE_PRIORITY_MODE = false; - - /** - * 全局开启对讲功能,为false时,会话需要分别开启 {@link PTTClient#setEnablePtt} - */ - static ENABLE_GLOBAL_PTT = true; - - // 是否支持双工模式,双工模式下,说话的时候,允许收听其他人的说话。 - static ENABLE_FULL_DUPLEX = false; - - eventEmitter = new EventEmitter(); - - isPttClientEnable() { - return !!uniWfcPttClient; - } - - // 初始化 - init() { - uniWfcPttClient.initClient({ - enableFullDuplex: PttClient.ENABLE_FULL_DUPLEX, - enableGlobalPtt: PttClient.ENABLE_GLOBAL_PTT, - enablePriorityMode: PttClient.ENABLE_PRIORITY_MODE, - groupChatMaxSpeakTime: PttClient.GROUP_CHAT_MAX_SPEAK_TIME, - groupChatMaxSpeakerCount: PttClient.GROUP_CHAT_MAX_SPEAKER_COUNT, - groupChatSaveVoiceMessage: PttClient.SINGLE_CHAT_SEND_VOICE_MESSAGE, - singleChatMaxSpeakTime: PttClient.SINGLE_CHAT_MAX_SPEAK_TIME, - singleChatMaxSpeakerCount: PttClient.SINGLE_CHAT_MAX_SPEAKER_COUNT, - singleChatSaveVoiceMessage: PttClient.SINGLE_CHAT_SEND_VOICE_MESSAGE - }); - - plus.globalEvent.addEventListener("wfc-ptt-event", (e) => { - // console.debug('wfc-event', e); - self._handleNativeEvent(e); - // this.log = [this.interpreter(e), ...this.log]; - }); - - wfc.registerMessageContent('pttSoundMessage', PersistFlag.Persist_And_Count, 23, PttSoundMessageContent) - - // for test - // this._eventTest(); - } - - uninit() { - // TODO - } - - /** - * 请求说话 - * @param conversation - * @param {Number} priority 对讲优先级,默认优先级都是0,数字越高,优先级越高 - * @param {TalkingCallback} talkingCallback - */ - requestTalk(conversation, priority, talkingCallback) { - let strConv = JSON.stringify(conversation); - uniWfcPttClient.requestTalk(strConv, priority, - args => { - talkingCallback && talkingCallback.onStartTalking(conversation) - }, - args => { - talkingCallback && talkingCallback.onTalkingEnd(conversation) - }, - args => { - talkingCallback && talkingCallback.onRequestFail(conversation, args[1]) - }, - args => { - talkingCallback && talkingCallback.onAmplitudeUpdate(conversation, args[1]) - } - ) - } - - // 说话结束 - releaseTalking(conversation) { - let strConv = JSON.stringify(conversation); - uniWfcPttClient.releaseTalking(strConv); - } - - /** - * 获取频道允许同时说话人数 - */ - getMaxSpeakCount(conversation) { - let strConv = JSON.stringify(conversation); - return uniWfcPttClient.getMaxSpeakCount(strConv); - } - - isSendVoiceMessage(conversation) { - // TODO - } - - getMaxSpeakTime(conversation) { - let strConv = JSON.stringify(conversation); - return uniWfcPttClient.getMaxSpeakTime(strConv); - } - - setSendVoiceMessage(conversation, send, successCB, failCB) { - let strConv = JSON.stringify(conversation); - uniWfcPttClient.setSaveVoiceMessage(strConv, !!send, () => { - successCB && successCB() - }, err => { - failCB && failCB(err); - }) - } - - setConversationMaxSpeakTime(conversation, duration, successCB, failCB) { - let strConv = JSON.stringify(conversation); - uniWfcPttClient.setConversationMaxSpeakTime(strConv, duration, () => { - successCB && successCB() - }, err => { - failCB && failCB(err); - }) - } - - setConversationMaxSpeakerCount(conversation, count, successCB, failCB) { - let strConv = JSON.stringify(conversation); - uniWfcPttClient.setConversationMaxSpeakerCount(strConv, count, () => { - successCB && successCB() - }, err => { - failCB && failCB(err); - }) - } - - setConversationPttSilent(conversation, silent, successCB, failCB) { - let strConv = JSON.stringify(conversation); - uniWfcPttClient.setConversationPttSilent(strConv, !!silent, () => { - successCB && successCB() - }, err => { - failCB && failCB(err); - }) - } - - isConversationPttSilent(conversation) { - let strConv = JSON.stringify(conversation); - return uniWfcPttClient.isConversationPttSilent(strConv) - } - - getTalkingConversation() { - // TODO - } - - getTalkingStartTime() { - return uniWfcPttClient.getTalkingStartTime(); - } - - getTalkingMembers(conversation) { - let strConv = JSON.stringify(conversation); - let members = uniWfcPttClient.getTalkingMembers(strConv); - return JSON.parse(members); - } - - getTalkingMemberCount(conversation) { - let strConv = JSON.stringify(conversation); - return uniWfcPttClient.getTalkingMemberCount(strConv); - } - - setEnablePtt(conversation, enable) { - let strConv = JSON.stringify(conversation); - uniWfcPttClient.setEnablePtt(strConv, !!enable); - } - - - _nativeEvent2WfcEvent = { - 'onChannelInfoUpdate': this.onChannelInfoUpdate, - 'onClearMessage': null, - 'onConferenceEvent': this.onConferenceEvent, - 'onConnectToServer': this.onConnectToServer, - 'onConnectionStatusChange': this.onConnectionChanged, - 'onConversationDraftUpdate': null, - 'onDeleteMessage': this.onDeleteRemoteMessage, - 'onFriendListUpdate': this.onFriendListUpdate, - 'onFriendRequestUpdate': this.onFriendRequestUpdate, - 'onGroupInfoUpdate': this.onGroupInfoUpdate, - 'onGroupMembersUpdate': this.onGroupMemberUpdateListener, - 'onServiceConnected': null, - 'onMessageDelivered': this.onUserReceivedMessage, - 'onMessageRead': this.onUserReadedMessage, - 'onMessageUpdate': this.onMessageUpdate, - 'onReceiveMessage': this.onReceiveMessage, - 'onRecallMessage': this.onRecallMessage, - 'onConversationRemove': null, - 'onSettingUpdate': this.onSettingUpdate, - 'onTrafficData': null, - 'onUserInfoUpdate': this.onUserInfoUpdate, - 'onUserOnlineEvent': this.onOnlineEvent, - // sendMessageListener - 'onSendSuccess': this.onSendSuccess, - 'onSendFail': this.onSendFail, - 'onSendPrepare': this.onSendPrepare, - 'onProgress': this.onProgress, - 'onMediaUpload': this.onMediaUpload, - } - - _handleNativeEvent(e) { - let args = e.args; - console.log('native ptt event', e.args) - let conversation = Object.assign(new Conversation(), JSON.parse(args[1])) - this.eventEmitter.emit(args[0], conversation, ...args.slice(2)) - } - - _eventTest() { - // //某人开始在频道中讲话 - // // function (conversation, userId) {} - // static userStartTalking = 'userStartTalking' - // - // //某人结束在频道中讲话 - // // function (conversation, userId) {} - // static userEndTalking = 'userEndTalking' - // - // //接收到用户自定义数据 - // // function (conversation, userId, data) {} - // static receiveData = 'receiveData'; - // - // //用户说话音量大小回调 - // // function (conversation, userId, averageAmplitude) {} - // static userAmplitudeUpdate = 'userAmplitudeUpdate'; - this.eventEmitter.on(PttEventType.userStartTalking, (conversation, userId) => { - console.log('userStartTalking', conversation, userId); - }) - this.eventEmitter.on(PttEventType.userEndTalking, (conversation, userId) => { - console.log('userEndTalking', conversation, userId); - }) - this.eventEmitter.on(PttEventType.receiveData, (conversation, userId, data) => { - console.log('receiveData', conversation, userId, data); - }) - this.eventEmitter.on(PttEventType.userAmplitudeUpdate, (conversation, userId, averageAmplitude) => { - console.log('userAmplitudeUpdate', conversation, userId, averageAmplitude); - }) - } -} - -const self = new PttClient(); -export default self; diff --git a/src/wfc/ptt/pttEndReason.js b/src/wfc/ptt/pttEndReason.js deleted file mode 100644 index 594771d0..00000000 --- a/src/wfc/ptt/pttEndReason.js +++ /dev/null @@ -1,21 +0,0 @@ -export default class PttEndReason{ - //用户主动释放 - static User_Release = 0; - //讲话超时 - static Timeout = 1; - //被抢占 - static Take_Over = 2; - //网络错误 - static Network_Error = 3; - //频道禁言,只有频道主能讲话 - static Channel_Muted = 4; - //成员被禁言 - static Member_Muted = 5; - //音频服务错误 - static Media_Error = 6; - //不在频道内 - static Not_InChannel = 7; - //用户被封禁 - static User_Disabled = 8; - -} diff --git a/src/wfc/ptt/pttErrorCode.js b/src/wfc/ptt/pttErrorCode.js deleted file mode 100644 index fd25c12b..00000000 --- a/src/wfc/ptt/pttErrorCode.js +++ /dev/null @@ -1,12 +0,0 @@ -export default class PttErrorCode{ - static UNKNOWN = -1; - static OCCUPIED = -2; - static MAX_SPEAKER = -3; - static GROUP_MUTED = -4; - static GROUP_MEMBER_MUTED = -5; - static TALKING = -6; - static NOT_IN_GROUP = -7; - static PTT_DISABLED = -8; - // 没有录音权限等,会触发 - static RECORDER_ERROR = -9; -} diff --git a/src/wfc/ptt/pttEventType.js b/src/wfc/ptt/pttEventType.js deleted file mode 100644 index 77230bcc..00000000 --- a/src/wfc/ptt/pttEventType.js +++ /dev/null @@ -1,18 +0,0 @@ -export default class PttEventType { - //某人开始在频道中讲话 - // function (conversation, userId) {} - static userStartTalking = 'userStartTalking' - - //某人结束在频道中讲话 - // function (conversation, userId) {} - static userEndTalking = 'userEndTalking' - - //接收到用户自定义数据 - // function (conversation, userId, data) {} - static receiveData = 'receiveData'; - - //用户说话音量大小回调 - // function (conversation, userId, averageAmplitude) {} - static userAmplitudeUpdate = 'userAmplitudeUpdate'; - -} diff --git a/src/wfc/ptt/talkingCallback.js b/src/wfc/ptt/talkingCallback.js deleted file mode 100644 index 748eec13..00000000 --- a/src/wfc/ptt/talkingCallback.js +++ /dev/null @@ -1,40 +0,0 @@ - -export default class TalkingCallback { - - // 对讲优先级,默认优先级都是0,数字越高,优先级越高 - talkingPriority(conversation) { - console.log('talkingPriority', conversation) - return 0; - } - - //可以开始讲话了 - onStartTalking(conversation) { - console.log('onStartTalking', conversation) - } - - //reason包括超时,被禁言,被强制抢麦等 - onTalkingEnd(conversation, reason) { - console.log('onTalkingEnd', conversation, reason) - } - - //errorCode包括单工模式下没有抢到麦,全工模式下超过最大发言人数,被禁言。 - onRequestFail(conversation, errorCode) { - console.log('onRequestFail', conversation, errorCode); - } - - // 说话音量通知,每400秒通知一次 - // 暂不支持 - onAmplitudeUpdate(averageAmplitude) { - console.log('onAmplitudeUpdate', averageAmplitude); - } - - /** - * 默认发送的是 PTTSoundMessageContent,正常不用修改 - * @param conversation - * @param {File | string} fileOrLocalPath File类型,或者dataUri或者本地路径,本地路径是必须是绝对路径 - * @param {number} duration - */ - onCreateSoundMessageContent(conversation, fileOrLocalPath, duration) { - // TODO - } -} diff --git a/src/wfc/util/base64.min.js b/src/wfc/util/base64.min.js deleted file mode 100644 index 4e2e8943..00000000 --- a/src/wfc/util/base64.min.js +++ /dev/null @@ -1,36 +0,0 @@ -// 如果使用 vite时,提示:The requested module '/wfc/util/base64.min.js' does not provide an export named 'atob' -// 请用本文件的内容,替换 base64.min.js - -const c = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - -export function btoa(e) { - for ( - var t, r, o = String(e), n = 0, a = c, i = ""; - o.charAt(0 | n) || ((a = "="), n % 1); - i += a.charAt(63 & (t >> (8 - (n % 1) * 8))) - ) { - if (255 < (r = o.charCodeAt((n += 0.75)))) - throw new Error( - "'btoa' failed: The string to be encoded contains characters outside of the Latin1 range." - ); - t = (t << 8) | r; - } - return i; -} - -export function atob(e) { - var t = String(e).replace(/[=]+$/, ""); - if (t.length % 4 == 1) - throw new Error( - "'atob' failed: The string to be decoded is not correctly encoded." - ); - for ( - var r, o, n = 0, a = 0, i = ""; - (o = t.charAt(a++)); - ~o && ((r = n % 4 ? 64 * r + o : o), n++ % 4) - ? (i += String.fromCharCode(255 & (r >> ((-2 * n) & 6)))) - : 0 - ) - o = c.indexOf(o); - return i; -} \ No newline at end of file diff --git a/src/wfc/util/longUtil.js b/src/wfc/util/longUtil.js deleted file mode 100644 index cff62bbf..00000000 --- a/src/wfc/util/longUtil.js +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import Long from 'long' - -// 说明 -// 1. 由于PC SDK 和 Web SDK 对java long类型的处理不一致 ,故引入本系列函数 -// 2. PC SDK,messageUid转换为long类型(可参考long.js),其他所有时间相关的字段,都转换成number -// 3. Web SDK,messageUid 以及所有时间相关的字段都转换为long类型 -// 4. 为了将UI层代码统一,对所有相关字段进行比较 、运算等操作时,都必须由本序列函数处理 -/** - * 比较数值大小 - * @param {long | number | string} a - * @param {long | number | string} b - * @return {number} 相等返回0,a 大于 b 返回1,a 小于 b 返回-1 - */ -export function compare(a, b) { - const longA = Long.fromValue(a) - const longB = Long.fromValue(b) - return longA.compare(longB) -} - -/** - * 判断数值是否相等 - * @param {long | number | string} a - * @param {long | number | string} b - * @return {boolean} 相等返回true;否则返回false - */ -export function eq(a, b) { - if (!_isLong(a) || !_isLong(b)) { - return false; - } - return compare(a, b) === 0 -} - -/** - * 判断数值a是否大于b - * @param {long | number | string} a - * @param {long | number | string} b - * @return {boolean} a大于b返回true;否则返回false - */ -export function gt(a, b) { - if (!_isLong(a) || !_isLong(b)) { - return false; - } - return compare(a, b) === 1 -} - -/** - * 判断数值a是否大于或等于b - * @param {long | number | string} a - * @param {long | number | string} b - * @return {boolean} a大于或等于b返回true;否则返回false - */ -export function gte(a, b) { - if (!_isLong(a) || !_isLong(b)) { - return false; - } - return compare(a, b) >= 0 -} - -/** - * 判断数值a是否小于b - * @param {long | number | string} a - * @param {long | number | string} b - * @return {boolean} a小于b返回true;否则返回false - */ -export function lt(a, b) { - if (!_isLong(a) || !_isLong(b)) { - return false; - } - return compare(a, b) === -1 -} - -/** - * 判断数值a是否小于或等于b - * @param {long | number | string} a - * @param {long | number | string} b - * @return {boolean} a小于或者等于b返回true;否则返回false - */ -export function lte(a, b) { - if (!_isLong(a) || !_isLong(b)) { - return false; - } - return compare(a, b) <= 0 -} - -/** - * 将数值l转换成string类型 - * @param {long | number | string} l - * @return {string} 数值表示 - */ -export function stringValue(l) { - const longl = Long.fromValue(l); - return longl.toString(); -} - -/** - * 将数值l转换成long类型 - * @param {long | number | string} l - * @return {long} 数值表示 - */ -export function longValue(value) { - return Long.fromValue(value); -} - -/** - * 将数值l转换成number类型 - * @param {long | number | string} l - * @return {number|l} 如果数值l小于等于{@code Number.MAX_SAFE_INTEGER}则返回对应的number,否则原样返回 - */ -export function numberValue(l) { - if (lte(l, Number.MAX_SAFE_INTEGER)) { - const longl = Long.fromValue(l); - return longl.toNumber(); - } else { - console.log(l, 'is large than Number.MAX_SAFE_INTEGER, do nothing') - return l; - } -} - -/** - * - * 由于Java long类型,在js里面,不能用number类型表示,故js里面采用js long对象表示 - * java long数据和js long对象序列成json格式的字符串时,格式并一样,为了处理跨平台需求, - * 将序列化后的json格式字符串 - * java long "uid":12345678 - * - * 当Java long类型的值,需要序列化为json字符串进行传输时,js long对象序列化出来的 - */ -export function _patchToJavaLong(jsonStr, key) { - if (!jsonStr) { - return jsonStr; - } - - let reg = new RegExp(`"${key}":"([0-9]+)"`, 'g') - return jsonStr.replace(reg, `\"${key}\":$1`); -} - -export function _reverseToJsLongString(jsonStr, key) { - if (!jsonStr) { - return jsonStr; - } - let reg = new RegExp(`"${key}":([0-9]+)`, 'g') - return jsonStr.replace(reg, `\"${key}\":\"$1\"`); -} - -function _isLong(val) { - try { - Long.fromValue(val); - return true; - } catch (e) { - return false; - } -} - diff --git a/src/wfcScheme.js b/src/wfcScheme.js deleted file mode 100644 index 3f74431c..00000000 --- a/src/wfcScheme.js +++ /dev/null @@ -1,15 +0,0 @@ -export default class WfcScheme { - static QR_CODE_PREFIX_PC_SESSION = "wildfirechat://pcsession/"; - static QR_CODE_PREFIX_USER = "wildfirechat://user/"; - static QR_CODE_PREFIX_GROUP = "wildfirechat://group/"; - static QR_CODE_PREFIX_CHANNEL = "wildfirechat://channel/"; - static QR_CODE_PREFIX_CONFERENCE = "wildfirechat://conference/"; - - static buildConferenceLink(conferenceId, password) { - let link = WfcScheme.QR_CODE_PREFIX_CONFERENCE + conferenceId; - if (password) { - link += '/?pwd=' + password - } - return link; - } -} diff --git a/src/wfc_custom_message/README.md b/src/wfc_custom_message/README.md deleted file mode 100644 index 1067a0f6..00000000 --- a/src/wfc_custom_message/README.md +++ /dev/null @@ -1,13 +0,0 @@ -## 说明 - -**自定义消息扩展野火IM 功能时,请勿直接修改`wfc`目录下的内容,修改之后,会为后续升级带来很大的麻烦** - -## 自定义消息步骤 - -1. 定义消息类型,参考[customMessageContentType](./customMessageContentType.js),`1000`以下为内部保留,请使用`1000`以上的消息类型 -2. 实现自定义消息,普通消息参考[testCustomMessageContent](./testCustomMessageContent.js),通知消息参考[testCustomNotificationMessageContent](./testCustomNotificationMessageContent.js) -3. 配置自定义消息,参考[customMessageConfig](./customMessageConfig.js) -4. 实现自定义消息对应的 UI,普通类型消息请参考[testCustomMessageContentView](../pages/conversation/message/content/TestCustomMessageContentView.vue); - 普通通知类消息,默认会使用默认通知样式,具体参考[NotificationMessageContentView](../pages/conversation/message/NotificationMessageContentView.vue); -5. 配置自定义消息和自定义消息 UI 的对应关系,普通消息参考[MessageContentContainerView](../pages/conversation/message/MessageContentContainerView.vue); - 需要自定义通知类消息 UI 时,请参考考[MessageItemView](../ui/main/conversation/MessageItemView.vue) diff --git a/src/wfc_custom_message/customMessageConfig.js b/src/wfc_custom_message/customMessageConfig.js deleted file mode 100644 index 54261bff..00000000 --- a/src/wfc_custom_message/customMessageConfig.js +++ /dev/null @@ -1,30 +0,0 @@ -import PersistFlag from "../wfc/messages/persistFlag"; -import CustomMessageContentType from "./customMessageContentType"; -import TestCustomMessageContent from "./testCustomMessageContent"; -import TestCustomNotificationMessageContent from "./testCustomNotificationMessageContent"; -import wfc from "../wfc/client/wfc"; - -export default class CustomMessageConfig { - static CustomMessageContents = [ - { - name: 'testCustomMessage', // 消息名字 - flag: PersistFlag.Persist,// 消息的存储类型,根据消息是否需要存储选择 - type: CustomMessageContentType.MESSAGE_CONTENT_TYPE_CUSTOM_MESSAGE_TEST, // 消息类型 - contentClazz: TestCustomMessageContent, // 消息类型定义 - }, - { - name: 'testCustomNotificationMessage', - flag: PersistFlag.Persist, - type: CustomMessageContentType.MESSAGE_CONTENT_TYPE_CUSTOM_MESSAGE_TEST_NOTIFICATION, - contentClazz: TestCustomNotificationMessageContent, - }, - // 在此配置更多自定义消息 - ]; - - // 请勿修改 - static registerCustomMessages() { - CustomMessageConfig.CustomMessageContents.forEach(cmc => { - wfc.registerMessageContent(cmc.name, cmc.flag, cmc.type, cmc.contentClazz) - }) - } -} diff --git a/src/wfc_custom_message/customMessageContentType.js b/src/wfc_custom_message/customMessageContentType.js deleted file mode 100644 index 21c9ccb9..00000000 --- a/src/wfc_custom_message/customMessageContentType.js +++ /dev/null @@ -1,5 +0,0 @@ -export default class CustomMessageContentType { - // 1000 以下为内部消息保留,自定义消息需使用 1000 以上的数字 - static MESSAGE_CONTENT_TYPE_CUSTOM_MESSAGE_TEST = 1001; - static MESSAGE_CONTENT_TYPE_CUSTOM_MESSAGE_TEST_NOTIFICATION = 1002; -} diff --git a/src/wfc_custom_message/testCustomMessageContent.js b/src/wfc_custom_message/testCustomMessageContent.js deleted file mode 100644 index 45d404fb..00000000 --- a/src/wfc_custom_message/testCustomMessageContent.js +++ /dev/null @@ -1,35 +0,0 @@ -import CustomMessageContentType from "./customMessageContentType"; - - -import MessageContent from '../wfc/messages/messageContent' - -/** - * 对应的 UI,请参考{@link TestCustomMessageContentView} - */ -export default class TestCustomMessageContent extends MessageContent { - content; - - constructor(content) { - super(CustomMessageContentType.MESSAGE_CONTENT_TYPE_CUSTOM_MESSAGE_TEST); - this.content = content; - } - - // 会话列表显示对应会话时,会显示会话最后一条消息的摘要信息 - digest() { - return this.content; - } - - // 发送消息时,会进行 encode 操作,实际发送的是 payload - encode() { - let payload = super.encode(); - payload.searchableContent = this.content; - return payload; - } - - // 收到消息时,会执行 decode 操作,从 payload 解析到具体的消息内容,encode 和 decode 的操作要对应起来 - decode(payload) { - super.decode(payload); - this.content = payload.searchableContent; - } -} - diff --git a/src/wfc_custom_message/testCustomNotificationMessageContent.js b/src/wfc_custom_message/testCustomNotificationMessageContent.js deleted file mode 100644 index 73730a66..00000000 --- a/src/wfc_custom_message/testCustomNotificationMessageContent.js +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2020 WildFireChat. All rights reserved. - */ - -import CustomMessageContentType from "./customMessageContentType"; -import NotificationMessageContent from "../wfc/messages/notification/notificationMessageContent"; - -/** - * 对应的 UI 请参考{@link NotificationMessageContentView},或 {@link RichNotificationMessageContentView} - */ -export default class TestCustomNotificationMessageContent extends NotificationMessageContent { - tip = ''; - - constructor(tip) { - super(CustomMessageContentType.MESSAGE_CONTENT_TYPE_CUSTOM_MESSAGE_TEST_NOTIFICATION); - this.tip = tip; - } - - // 会话界面显示通知时,将显示本函数的返回值 - formatNotification() { - return this.tip; - } - - digest() { - return this.tip; - } - - encode() { - let payload = super.encode(); - payload.content = this.tip; - return payload; - }; - - decode(payload) { - super.decode(payload); - this.tip = payload.content; - } -} diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 8ad27a9b..00000000 --- a/yarn.lock +++ /dev/null @@ -1,5220 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.1.2": - version "2.3.0" - resolved "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@antfu/install-pkg@^1.1.0": - version "1.1.0" - resolved "https://registry.npmmirror.com/@antfu/install-pkg/-/install-pkg-1.1.0.tgz#78fa036be1a6081b5a77a5cf59f50c7752b6ba26" - integrity sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ== - dependencies: - package-manager-detector "^1.3.0" - tinyexec "^1.0.1" - -"@antfu/utils@^0.7.10": - version "0.7.10" - resolved "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.10.tgz#ae829f170158e297a9b6a28f161a8e487d00814d" - integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== - -"@antfu/utils@^9.2.0": - version "9.3.0" - resolved "https://registry.npmmirror.com/@antfu/utils/-/utils-9.3.0.tgz#e05e277f788ac3bec771f57a49fb64546bb32374" - integrity sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA== - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" - integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== - dependencies: - "@babel/helper-validator-identifier" "^7.27.1" - js-tokens "^4.0.0" - picocolors "^1.1.1" - -"@babel/compat-data@^7.27.2", "@babel/compat-data@^7.27.7", "@babel/compat-data@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.28.5.tgz#a8a4962e1567121ac0b3b487f52107443b455c7f" - integrity sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA== - -"@babel/core@^7.23.3", "@babel/core@^7.23.9": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/core/-/core-7.28.5.tgz#4c81b35e51e1b734f510c99b07dfbc7bbbb48f7e" - integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.5" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-module-transforms" "^7.28.3" - "@babel/helpers" "^7.28.4" - "@babel/parser" "^7.28.5" - "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.5" - "@babel/types" "^7.28.5" - "@jridgewell/remapping" "^2.3.5" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.20.5", "@babel/generator@^7.27.5", "@babel/generator@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/generator/-/generator-7.28.5.tgz#712722d5e50f44d07bc7ac9fe84438742dd61298" - integrity sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ== - dependencies: - "@babel/parser" "^7.28.5" - "@babel/types" "^7.28.5" - "@jridgewell/gen-mapping" "^0.3.12" - "@jridgewell/trace-mapping" "^0.3.28" - jsesc "^3.0.2" - -"@babel/helper-annotate-as-pure@^7.27.1", "@babel/helper-annotate-as-pure@^7.27.3": - version "7.27.3" - resolved "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz#f31fd86b915fc4daf1f3ac6976c59be7084ed9c5" - integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== - dependencies: - "@babel/types" "^7.27.3" - -"@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": - version "7.27.2" - resolved "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" - integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== - dependencies: - "@babel/compat-data" "^7.27.2" - "@babel/helper-validator-option" "^7.27.1" - browserslist "^4.24.0" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.27.1", "@babel/helper-create-class-features-plugin@^7.28.3", "@babel/helper-create-class-features-plugin@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz#472d0c28028850968979ad89f173594a6995da46" - integrity sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - "@babel/helper-member-expression-to-functions" "^7.28.5" - "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/traverse" "^7.28.5" - semver "^6.3.1" - -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz#7c1ddd64b2065c7f78034b25b43346a7e19ed997" - integrity sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - regexpu-core "^6.3.1" - semver "^6.3.1" - -"@babel/helper-define-polyfill-provider@^0.6.5": - version "0.6.5" - resolved "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz#742ccf1cb003c07b48859fc9fa2c1bbe40e5f753" - integrity sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg== - dependencies: - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-plugin-utils" "^7.27.1" - debug "^4.4.1" - lodash.debounce "^4.0.8" - resolve "^1.22.10" - -"@babel/helper-globals@^7.28.0": - version "7.28.0" - resolved "https://registry.npmmirror.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" - integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== - -"@babel/helper-member-expression-to-functions@^7.27.1", "@babel/helper-member-expression-to-functions@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz#f3e07a10be37ed7a63461c63e6929575945a6150" - integrity sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg== - dependencies: - "@babel/traverse" "^7.28.5" - "@babel/types" "^7.28.5" - -"@babel/helper-module-imports@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" - integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.28.3": - version "7.28.3" - resolved "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6" - integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== - dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - "@babel/traverse" "^7.28.3" - -"@babel/helper-optimise-call-expression@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz#c65221b61a643f3e62705e5dd2b5f115e35f9200" - integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== - dependencies: - "@babel/types" "^7.27.1" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" - integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== - -"@babel/helper-remap-async-to-generator@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz#4601d5c7ce2eb2aea58328d43725523fcd362ce6" - integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-wrap-function" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/helper-replace-supers@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz#b1ed2d634ce3bdb730e4b52de30f8cccfd692bc0" - integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.27.1" - "@babel/helper-optimise-call-expression" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/helper-skip-transparent-expression-wrappers@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz#62bb91b3abba8c7f1fec0252d9dbea11b3ee7a56" - integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== - dependencies: - "@babel/traverse" "^7.27.1" - "@babel/types" "^7.27.1" - -"@babel/helper-string-parser@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" - integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== - -"@babel/helper-validator-identifier@^7.27.1", "@babel/helper-validator-identifier@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" - integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== - -"@babel/helper-validator-option@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" - integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== - -"@babel/helper-wrap-function@^7.27.1": - version "7.28.3" - resolved "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz#fe4872092bc1438ffd0ce579e6f699609f9d0a7a" - integrity sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g== - dependencies: - "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.3" - "@babel/types" "^7.28.2" - -"@babel/helpers@^7.28.4": - version "7.28.4" - resolved "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.28.4.tgz#fe07274742e95bdf7cf1443593eeb8926ab63827" - integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== - dependencies: - "@babel/template" "^7.27.2" - "@babel/types" "^7.28.4" - -"@babel/parser@7.27.7": - version "7.27.7" - resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.27.7.tgz#1687f5294b45039c159730e3b9c1f1b242e425e9" - integrity sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q== - dependencies: - "@babel/types" "^7.27.7" - -"@babel/parser@^7.23.9", "@babel/parser@^7.27.2", "@babel/parser@^7.27.7", "@babel/parser@^7.28.0", "@babel/parser@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.5.tgz#0b0225ee90362f030efd644e8034c99468893b08" - integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== - dependencies: - "@babel/types" "^7.28.5" - -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz#fbde57974707bbfa0376d34d425ff4fa6c732421" - integrity sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.28.5" - -"@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz#43f70a6d7efd52370eefbdf55ae03d91b293856d" - integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz#beb623bd573b8b6f3047bd04c32506adc3e58a72" - integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz#e134a5479eb2ba9c02714e8c1ebf1ec9076124fd" - integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/plugin-transform-optional-chaining" "^7.27.1" - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.28.3": - version "7.28.3" - resolved "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz#373f6e2de0016f73caf8f27004f61d167743742a" - integrity sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.28.3" - -"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": - version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" - integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== - -"@babel/plugin-syntax-import-assertions@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz#88894aefd2b03b5ee6ad1562a7c8e1587496aecd" - integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-syntax-import-attributes@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" - integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-syntax-import-meta@^7.10.4": - version "7.10.4" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-jsx@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c" - integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-syntax-typescript@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz#5147d29066a793450f220c63fa3a9431b7e6dd18" - integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.npmmirror.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" - integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-transform-arrow-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz#6e2061067ba3ab0266d834a9f94811196f2aba9a" - integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-async-generator-functions@^7.28.0": - version "7.28.0" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz#1276e6c7285ab2cd1eccb0bc7356b7a69ff842c2" - integrity sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-remap-async-to-generator" "^7.27.1" - "@babel/traverse" "^7.28.0" - -"@babel/plugin-transform-async-to-generator@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz#9a93893b9379b39466c74474f55af03de78c66e7" - integrity sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA== - dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-remap-async-to-generator" "^7.27.1" - -"@babel/plugin-transform-block-scoped-functions@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz#558a9d6e24cf72802dd3b62a4b51e0d62c0f57f9" - integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-block-scoping@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz#e0d3af63bd8c80de2e567e690a54e84d85eb16f6" - integrity sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-class-properties@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz#dd40a6a370dfd49d32362ae206ddaf2bb082a925" - integrity sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-class-static-block@^7.28.3": - version "7.28.3" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz#d1b8e69b54c9993bc558203e1f49bfc979bfd852" - integrity sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.28.3" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-classes@^7.28.4": - version "7.28.4" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz#75d66175486788c56728a73424d67cbc7473495c" - integrity sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-globals" "^7.28.0" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" - "@babel/traverse" "^7.28.4" - -"@babel/plugin-transform-computed-properties@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz#81662e78bf5e734a97982c2b7f0a793288ef3caa" - integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/template" "^7.27.1" - -"@babel/plugin-transform-destructuring@^7.28.0", "@babel/plugin-transform-destructuring@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz#b8402764df96179a2070bb7b501a1586cf8ad7a7" - integrity sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.28.5" - -"@babel/plugin-transform-dotall-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz#aa6821de864c528b1fecf286f0a174e38e826f4d" - integrity sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-duplicate-keys@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz#f1fbf628ece18e12e7b32b175940e68358f546d1" - integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz#5043854ca620a94149372e69030ff8cb6a9eb0ec" - integrity sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-dynamic-import@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz#4c78f35552ac0e06aa1f6e3c573d67695e8af5a4" - integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-explicit-resource-management@^7.28.0": - version "7.28.0" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz#45be6211b778dbf4b9d54c4e8a2b42fa72e09a1a" - integrity sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-transform-destructuring" "^7.28.0" - -"@babel/plugin-transform-exponentiation-operator@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz#7cc90a8170e83532676cfa505278e147056e94fe" - integrity sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-export-namespace-from@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz#71ca69d3471edd6daa711cf4dfc3400415df9c23" - integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-for-of@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz#bc24f7080e9ff721b63a70ac7b2564ca15b6c40a" - integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - -"@babel/plugin-transform-function-name@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz#4d0bf307720e4dce6d7c30fcb1fd6ca77bdeb3a7" - integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== - dependencies: - "@babel/helper-compilation-targets" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/traverse" "^7.27.1" - -"@babel/plugin-transform-json-strings@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz#a2e0ce6ef256376bd527f290da023983527a4f4c" - integrity sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz#baaefa4d10a1d4206f9dcdda50d7d5827bb70b24" - integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-logical-assignment-operators@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz#d028fd6db8c081dee4abebc812c2325e24a85b0e" - integrity sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-member-expression-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz#37b88ba594d852418e99536f5612f795f23aeaf9" - integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-modules-amd@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz#a4145f9d87c2291fe2d05f994b65dba4e3e7196f" - integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== - dependencies: - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-modules-commonjs@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz#8e44ed37c2787ecc23bdc367f49977476614e832" - integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== - dependencies: - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-modules-systemjs@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz#7439e592a92d7670dfcb95d0cbc04bd3e64801d2" - integrity sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew== - dependencies: - "@babel/helper-module-transforms" "^7.28.3" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-validator-identifier" "^7.28.5" - "@babel/traverse" "^7.28.5" - -"@babel/plugin-transform-modules-umd@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz#63f2cf4f6dc15debc12f694e44714863d34cd334" - integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== - dependencies: - "@babel/helper-module-transforms" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz#f32b8f7818d8fc0cc46ee20a8ef75f071af976e1" - integrity sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-new-target@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz#259c43939728cad1706ac17351b7e6a7bea1abeb" - integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-nullish-coalescing-operator@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz#4f9d3153bf6782d73dd42785a9d22d03197bc91d" - integrity sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-numeric-separator@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz#614e0b15cc800e5997dadd9bd6ea524ed6c819c6" - integrity sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-object-rest-spread@^7.28.4": - version "7.28.4" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz#9ee1ceca80b3e6c4bac9247b2149e36958f7f98d" - integrity sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew== - dependencies: - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-transform-destructuring" "^7.28.0" - "@babel/plugin-transform-parameters" "^7.27.7" - "@babel/traverse" "^7.28.4" - -"@babel/plugin-transform-object-super@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz#1c932cd27bf3874c43a5cac4f43ebf970c9871b5" - integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-replace-supers" "^7.27.1" - -"@babel/plugin-transform-optional-catch-binding@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz#84c7341ebde35ccd36b137e9e45866825072a30c" - integrity sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-optional-chaining@^7.27.1", "@babel/plugin-transform-optional-chaining@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz#8238c785f9d5c1c515a90bf196efb50d075a4b26" - integrity sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - -"@babel/plugin-transform-parameters@^7.27.7": - version "7.27.7" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz#1fd2febb7c74e7d21cf3b05f7aebc907940af53a" - integrity sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-private-methods@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz#fdacbab1c5ed81ec70dfdbb8b213d65da148b6af" - integrity sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-private-property-in-object@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz#4dbbef283b5b2f01a21e81e299f76e35f900fb11" - integrity sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.1" - "@babel/helper-create-class-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-property-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz#07eafd618800591e88073a0af1b940d9a42c6424" - integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-regenerator@^7.28.4": - version "7.28.4" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz#9d3fa3bebb48ddd0091ce5729139cd99c67cea51" - integrity sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-regexp-modifiers@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz#df9ba5577c974e3f1449888b70b76169998a6d09" - integrity sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-reserved-words@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz#40fba4878ccbd1c56605a4479a3a891ac0274bb4" - integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-shorthand-properties@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz#532abdacdec87bfee1e0ef8e2fcdee543fe32b90" - integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-spread@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz#1a264d5fc12750918f50e3fe3e24e437178abb08" - integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - -"@babel/plugin-transform-sticky-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz#18984935d9d2296843a491d78a014939f7dcd280" - integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-template-literals@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz#1a0eb35d8bb3e6efc06c9fd40eb0bcef548328b8" - integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-typeof-symbol@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz#70e966bb492e03509cf37eafa6dcc3051f844369" - integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-typescript@^7.23.3": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.5.tgz#441c5f9a4a1315039516c6c612fc66d5f4594e72" - integrity sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.27.3" - "@babel/helper-create-class-features-plugin" "^7.28.5" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" - "@babel/plugin-syntax-typescript" "^7.27.1" - -"@babel/plugin-transform-unicode-escapes@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz#3e3143f8438aef842de28816ece58780190cf806" - integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== - dependencies: - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-unicode-property-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz#bdfe2d3170c78c5691a3c3be934c8c0087525956" - integrity sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-unicode-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz#25948f5c395db15f609028e370667ed8bae9af97" - integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/plugin-transform-unicode-sets-regex@^7.27.1": - version "7.27.1" - resolved "https://registry.npmmirror.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz#6ab706d10f801b5c72da8bb2548561fa04193cd1" - integrity sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - -"@babel/preset-env@^7.23.9": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.28.5.tgz#82dd159d1563f219a1ce94324b3071eb89e280b0" - integrity sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg== - dependencies: - "@babel/compat-data" "^7.28.5" - "@babel/helper-compilation-targets" "^7.27.2" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/helper-validator-option" "^7.27.1" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.28.5" - "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.27.1" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.27.1" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.27.1" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.28.3" - "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions" "^7.27.1" - "@babel/plugin-syntax-import-attributes" "^7.27.1" - "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" - "@babel/plugin-transform-arrow-functions" "^7.27.1" - "@babel/plugin-transform-async-generator-functions" "^7.28.0" - "@babel/plugin-transform-async-to-generator" "^7.27.1" - "@babel/plugin-transform-block-scoped-functions" "^7.27.1" - "@babel/plugin-transform-block-scoping" "^7.28.5" - "@babel/plugin-transform-class-properties" "^7.27.1" - "@babel/plugin-transform-class-static-block" "^7.28.3" - "@babel/plugin-transform-classes" "^7.28.4" - "@babel/plugin-transform-computed-properties" "^7.27.1" - "@babel/plugin-transform-destructuring" "^7.28.5" - "@babel/plugin-transform-dotall-regex" "^7.27.1" - "@babel/plugin-transform-duplicate-keys" "^7.27.1" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.27.1" - "@babel/plugin-transform-dynamic-import" "^7.27.1" - "@babel/plugin-transform-explicit-resource-management" "^7.28.0" - "@babel/plugin-transform-exponentiation-operator" "^7.28.5" - "@babel/plugin-transform-export-namespace-from" "^7.27.1" - "@babel/plugin-transform-for-of" "^7.27.1" - "@babel/plugin-transform-function-name" "^7.27.1" - "@babel/plugin-transform-json-strings" "^7.27.1" - "@babel/plugin-transform-literals" "^7.27.1" - "@babel/plugin-transform-logical-assignment-operators" "^7.28.5" - "@babel/plugin-transform-member-expression-literals" "^7.27.1" - "@babel/plugin-transform-modules-amd" "^7.27.1" - "@babel/plugin-transform-modules-commonjs" "^7.27.1" - "@babel/plugin-transform-modules-systemjs" "^7.28.5" - "@babel/plugin-transform-modules-umd" "^7.27.1" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.27.1" - "@babel/plugin-transform-new-target" "^7.27.1" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.27.1" - "@babel/plugin-transform-numeric-separator" "^7.27.1" - "@babel/plugin-transform-object-rest-spread" "^7.28.4" - "@babel/plugin-transform-object-super" "^7.27.1" - "@babel/plugin-transform-optional-catch-binding" "^7.27.1" - "@babel/plugin-transform-optional-chaining" "^7.28.5" - "@babel/plugin-transform-parameters" "^7.27.7" - "@babel/plugin-transform-private-methods" "^7.27.1" - "@babel/plugin-transform-private-property-in-object" "^7.27.1" - "@babel/plugin-transform-property-literals" "^7.27.1" - "@babel/plugin-transform-regenerator" "^7.28.4" - "@babel/plugin-transform-regexp-modifiers" "^7.27.1" - "@babel/plugin-transform-reserved-words" "^7.27.1" - "@babel/plugin-transform-shorthand-properties" "^7.27.1" - "@babel/plugin-transform-spread" "^7.27.1" - "@babel/plugin-transform-sticky-regex" "^7.27.1" - "@babel/plugin-transform-template-literals" "^7.27.1" - "@babel/plugin-transform-typeof-symbol" "^7.27.1" - "@babel/plugin-transform-unicode-escapes" "^7.27.1" - "@babel/plugin-transform-unicode-property-regex" "^7.27.1" - "@babel/plugin-transform-unicode-regex" "^7.27.1" - "@babel/plugin-transform-unicode-sets-regex" "^7.27.1" - "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.14" - babel-plugin-polyfill-corejs3 "^0.13.0" - babel-plugin-polyfill-regenerator "^0.6.5" - core-js-compat "^3.43.0" - semver "^6.3.1" - -"@babel/preset-modules@0.1.6-no-external-plugins": - version "0.1.6-no-external-plugins" - resolved "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" - integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/runtime@^7.17.2", "@babel/runtime@^7.7.2": - version "7.28.4" - resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" - integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== - -"@babel/template@^7.27.1", "@babel/template@^7.27.2": - version "7.27.2" - resolved "https://registry.npmmirror.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" - integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/parser" "^7.27.2" - "@babel/types" "^7.27.1" - -"@babel/traverse@7.27.7": - version "7.27.7" - resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.27.7.tgz#8355c39be6818362eace058cf7f3e25ac2ec3b55" - integrity sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.27.5" - "@babel/parser" "^7.27.7" - "@babel/template" "^7.27.2" - "@babel/types" "^7.27.7" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.0", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.4", "@babel/traverse@^7.28.5": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.28.5.tgz#450cab9135d21a7a2ca9d2d35aa05c20e68c360b" - integrity sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.28.5" - "@babel/helper-globals" "^7.28.0" - "@babel/parser" "^7.28.5" - "@babel/template" "^7.27.2" - "@babel/types" "^7.28.5" - debug "^4.3.1" - -"@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.7", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.28.5", "@babel/types@^7.4.4": - version "7.28.5" - resolved "https://registry.npmmirror.com/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b" - integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== - dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.28.5" - -"@dcloudio/types@^2.0.16": - version "2.6.12" - resolved "https://registry.npmmirror.com/@dcloudio/types/-/types-2.6.12.tgz#6c9559b9e65483f355dd61cb88fe8c14c8e61189" - integrity sha512-mrCMwcINy1IFjU9VUqLeWBkj404yWs5paLDttBcA+eqUjanuUQbBcTVPqlrGgkyzLXDcV2oDDZRSNxNpXi4kMQ== - -"@dcloudio/types@^3.4.8": - version "3.4.28" - resolved "https://registry.npmmirror.com/@dcloudio/types/-/types-3.4.28.tgz#79d2850ee8687e99401f0e9ed7e09af72928e02e" - integrity sha512-uVIRp1VLBkrL0LaGLgIS/sT3bl1zzVTKZQbfqJEQcSAvBffRdirbSh5OvOHfA1WV5lmCAGfjhKsUQouNEVUQHg== - -"@dcloudio/uni-app-harmony@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-app-harmony/-/uni-app-harmony-3.0.0-4030620241128001.tgz#658db284c15d68a178bb940f0954d1f99d1a80b1" - integrity sha512-T2coKkZawltfsgvaPX8bfAQofmHTpkPiZB8Am3gcnkHRE/Z3NOOlk/Ko5EezuquSulTJvOkMMYcdyZcGZS4TLQ== - dependencies: - "@dcloudio/uni-app-vite" "3.0.0-4030620241128001" - debug "^4.3.3" - fs-extra "^10.0.0" - licia "^1.29.0" - postcss-selector-parser "^6.0.6" - -"@dcloudio/uni-app-plus@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-app-plus/-/uni-app-plus-3.0.0-4030620241128001.tgz#f73229e4b8daa641d9190549e208a3e74599dbf0" - integrity sha512-iSWCNQ682XKJ6K4U+hnNFFd/83wFkl66l2RvUNlq9DZalh5LnEO+W1/WqzIdeAr6KKB8gulNkTC+GAbGEOABDQ== - dependencies: - "@dcloudio/uni-app-uts" "3.0.0-4030620241128001" - "@dcloudio/uni-app-vite" "3.0.0-4030620241128001" - "@dcloudio/uni-app-vue" "3.0.0-4030620241128001" - debug "^4.3.3" - fs-extra "^10.0.0" - licia "^1.29.0" - postcss-selector-parser "^6.0.6" - -"@dcloudio/uni-app-uts@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-app-uts/-/uni-app-uts-3.0.0-4030620241128001.tgz#b1bd7050d5d69db38a6ea538a8993b038c564f52" - integrity sha512-VM4leJqf50UDR/9MMYAHxnKBNf13gpZWZUe8L11ai3zppubh+J12vaVBYmzAitOPCG6LaGnYSlYp3uxxGiEiLw== - dependencies: - "@babel/parser" "^7.23.9" - "@babel/types" "^7.20.7" - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-i18n" "3.0.0-4030620241128001" - "@dcloudio/uni-nvue-styler" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@jridgewell/gen-mapping" "^0.3.3" - "@jridgewell/trace-mapping" "^0.3.19" - "@rollup/pluginutils" "^5.0.5" - "@vue/compiler-core" "3.4.21" - "@vue/compiler-dom" "3.4.21" - "@vue/compiler-sfc" "3.4.21" - "@vue/consolidate" "^1.0.0" - "@vue/shared" "3.4.21" - debug "^4.3.3" - es-module-lexer "^1.2.1" - estree-walker "^2.0.2" - fs-extra "^10.0.0" - magic-string "^0.30.7" - picocolors "^1.0.0" - source-map-js "^1.0.2" - unimport "^3.11.1" - -"@dcloudio/uni-app-vite@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-app-vite/-/uni-app-vite-3.0.0-4030620241128001.tgz#ba46698194306f8f6bc4ca177f90263718f8cfd0" - integrity sha512-sPSXJqU9zh26lKMPdDRqVjBH4mjXRLrjQGcUPqPNLTQ2TOBhhJtkmiBIYhhgvYgQ4SZ5zqRwXlBvFvyNxAHitA== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-i18n" "3.0.0-4030620241128001" - "@dcloudio/uni-nvue-styler" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@rollup/pluginutils" "^5.0.5" - "@vitejs/plugin-vue" "5.1.0" - "@vue/compiler-dom" "3.4.21" - "@vue/compiler-sfc" "3.4.21" - debug "^4.3.3" - fs-extra "^10.0.0" - picocolors "^1.0.0" - -"@dcloudio/uni-app-vue@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-app-vue/-/uni-app-vue-3.0.0-4030620241128001.tgz#ce94fd1a85a5b83d92e1e0e96bde67d1f89b486b" - integrity sha512-BxblHfDWWmDW2+9M8TJwKNKCbvlmH0VGJvRYudF46vl7+6sRml/06YBy9KjhTRIY4WetN7IVYuSuA0PbH2HG+w== - -"@dcloudio/uni-app@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-app/-/uni-app-3.0.0-4030620241128001.tgz#f47cf8722b34e9a47a4b14f41f84176f55cd058b" - integrity sha512-J+hIUT+d2RIIKygO+2tOgHPgWjFtnpTTLLBYd2QsXtxWGDqV2CRvf2FG4KzNf82P46OjUh54O+EJwvAcMFItCg== - dependencies: - "@dcloudio/uni-cloud" "3.0.0-4030620241128001" - "@dcloudio/uni-components" "3.0.0-4030620241128001" - "@dcloudio/uni-i18n" "3.0.0-4030620241128001" - "@dcloudio/uni-push" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-stat" "3.0.0-4030620241128001" - "@vue/shared" "3.4.21" - -"@dcloudio/uni-automator@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-automator/-/uni-automator-3.0.0-4030620241128001.tgz#e2e7e095b9b712a3507b2db2849040bff5017edc" - integrity sha512-TsJnM9yaSWTnw8eApaNMpdH/+VNC9rjwLDJ6vyMpsYPCxko7LVQmu6QlAbNYONBFvaM5P63qlbooinPvnue2sA== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - address "^1.1.2" - cross-env "^7.0.3" - debug "^4.3.3" - default-gateway "^6.0.3" - fs-extra "^10.0.0" - jsonc-parser "^3.2.0" - licia "^1.29.0" - merge "^2.1.1" - qrcode-reader "^1.0.4" - qrcode-terminal "^0.12.0" - ws "^8.4.2" - -"@dcloudio/uni-cli-shared@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-cli-shared/-/uni-cli-shared-3.0.0-4030620241128001.tgz#12b79cc6fa74444a1d199a80784a9f1342c5c892" - integrity sha512-GidAAGBxpSV+77hPLWAACYJDsrcgRXTay+NNO1HPx4ESlOzuUPh9bFWkZL+D5hYcE0uj9xpwX0rMX4hYxApJEw== - dependencies: - "@ampproject/remapping" "^2.1.2" - "@babel/code-frame" "^7.23.5" - "@babel/core" "^7.23.3" - "@babel/parser" "^7.23.9" - "@babel/types" "^7.20.7" - "@dcloudio/uni-i18n" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@intlify/core-base" "9.1.9" - "@intlify/shared" "9.1.9" - "@intlify/vue-devtools" "9.1.9" - "@rollup/pluginutils" "^5.0.5" - "@vue/compiler-core" "3.4.21" - "@vue/compiler-dom" "3.4.21" - "@vue/compiler-sfc" "3.4.21" - "@vue/compiler-ssr" "3.4.21" - "@vue/server-renderer" "3.4.21" - "@vue/shared" "3.4.21" - adm-zip "^0.5.12" - autoprefixer "^10.4.19" - base64url "^3.0.1" - chokidar "^3.5.3" - compare-versions "^3.6.0" - debug "^4.3.3" - es-module-lexer "^1.2.1" - esbuild "^0.20.1" - estree-walker "^2.0.2" - fast-glob "^3.2.11" - fs-extra "^10.0.0" - hash-sum "^2.0.0" - isbinaryfile "^5.0.2" - jsonc-parser "^3.2.0" - lines-and-columns "^2.0.4" - magic-string "^0.30.7" - merge "^2.1.1" - mime "^3.0.0" - module-alias "^2.2.2" - os-locale-s-fix "^1.0.8-fix-1" - picocolors "^1.0.0" - postcss-import "^14.0.2" - postcss-load-config "^3.1.1" - postcss-modules "^4.3.0" - postcss-selector-parser "^6.0.6" - resolve "^1.22.1" - source-map-js "^1.0.2" - tapable "^2.2.0" - unplugin-auto-import "^0.18.2" - xregexp "3.1.0" - -"@dcloudio/uni-cloud@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-cloud/-/uni-cloud-3.0.0-4030620241128001.tgz#962e6119e0b7ce5cad533579bcde98f290584a8e" - integrity sha512-UcQwaBEoQHlA/SNxFij4kITjbbeNmOsOc3VC3PekNDL2rWvNTnH/H5ZWgTmLGn/7mmBmZfAzoF79c1KlVrHdJg== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-i18n" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/shared" "3.4.21" - fast-glob "^3.2.11" - -"@dcloudio/uni-components@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-components/-/uni-components-3.0.0-4030620241128001.tgz#1c18736c25e8911571300bc1dd02c4d5ad09da99" - integrity sha512-2yZko6In0XAeEHu9WqOjPj3a5r4wF53KDRRvRoxWBEvKg6byUmVg1NEl68N4cE4sa1I6P99jQO4D/SeI/6Dp7w== - dependencies: - "@dcloudio/uni-cloud" "3.0.0-4030620241128001" - "@dcloudio/uni-h5" "3.0.0-4030620241128001" - "@dcloudio/uni-i18n" "3.0.0-4030620241128001" - -"@dcloudio/uni-h5-vite@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-h5-vite/-/uni-h5-vite-3.0.0-4030620241128001.tgz#64ab575fb57a2ae3e6bd142ebd280eee0a19d0e9" - integrity sha512-z3tIO2FPQapUV6pj42cvNBrc6Uk2sH54GIC7uxdOGM2n3MWQJccycYaXqATLaMUFIHlHwQP4l+Ozw0dqTzc2mQ== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@rollup/pluginutils" "^5.0.5" - "@vue/compiler-dom" "3.4.21" - "@vue/compiler-sfc" "3.4.21" - "@vue/server-renderer" "3.4.21" - "@vue/shared" "3.4.21" - debug "^4.3.3" - fs-extra "^10.0.0" - mime "^3.0.0" - module-alias "^2.2.2" - -"@dcloudio/uni-h5-vue@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-h5-vue/-/uni-h5-vue-3.0.0-4030620241128001.tgz#026616d00b9c700dfdb608001dc246249a25e01d" - integrity sha512-9fFUYXA30IlgSrNKv5WIP6ksKMaCycEjx6Zo64Tlfyz/8sK6HSQSbL/JE8TawCreci8JgreGOCLBESYXpqmKDA== - dependencies: - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/server-renderer" "3.4.21" - -"@dcloudio/uni-h5@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-h5/-/uni-h5-3.0.0-4030620241128001.tgz#3bb279c4ea108986bb6d317cb2b2434dee3e8078" - integrity sha512-Jo83ICFIx1O22Z8FEw57Lqed/gqWw9sm1yn15R3eoYxYJsRdRqFqB+C3ktKdLMDBXNukuUo0zK8IPTN3GWRefA== - dependencies: - "@dcloudio/uni-h5-vite" "3.0.0-4030620241128001" - "@dcloudio/uni-h5-vue" "3.0.0-4030620241128001" - "@dcloudio/uni-i18n" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/server-renderer" "3.4.21" - "@vue/shared" "3.4.21" - debug "^4.3.3" - localstorage-polyfill "^1.0.1" - postcss-selector-parser "^6.0.6" - safe-area-insets "^1.4.1" - vue-router "^4.3.0" - xmlhttprequest "^1.8.0" - -"@dcloudio/uni-i18n@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-i18n/-/uni-i18n-3.0.0-4030620241128001.tgz#0e5b2c3959ebee908bd46d4f729e95808996fba6" - integrity sha512-0AMRvaQ1rxWceNoqkasosiOm9VY/CAziLohtD6WFYqvbn3U/rDy1cne8VpWcDItkNUFS8+mUIIVxp4RW09dtWw== - -"@dcloudio/uni-mp-alipay@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-mp-alipay/-/uni-mp-alipay-3.0.0-4030620241128001.tgz#c0be0650f7340acb3bd83680ea03cfa9ff58004a" - integrity sha512-D48x7NOwv6HhTHTnJ09BXA/kMflA+QrB2PTVDL8DhW5BUPsB8njRPwh3IHD1BBMKCmKKunEzCp5JLSq+7ZBJ7g== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vite" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vue" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/compiler-core" "3.4.21" - "@vue/shared" "3.4.21" - -"@dcloudio/uni-mp-baidu@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-mp-baidu/-/uni-mp-baidu-3.0.0-4030620241128001.tgz#75f22c7384b22d4e785e8e1af333124d316d8454" - integrity sha512-drjDb8AztZJFVmS+0e9g5a3XfwC0a4kjWk3usPMtOYf9DitwRR4p0vmCLv7MfBP//BzqXWrpYY/RaJVJ8A+H5Q== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-compiler" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vite" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vue" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-weixin" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/compiler-core" "3.4.21" - "@vue/shared" "3.4.21" - jimp "^0.10.1" - licia "^1.29.0" - qrcode-reader "^1.0.4" - qrcode-terminal "^0.12.0" - ws "^8.4.2" - -"@dcloudio/uni-mp-compiler@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-mp-compiler/-/uni-mp-compiler-3.0.0-4030620241128001.tgz#a3497b578a91ebb8c587fce36d97cb8b3ae869d8" - integrity sha512-3ZkA/GAlvI/cTPm0zrhf3AHmROA3FXxb1XExdBX6LXY2XIY2psXm5ZFl1N9P3qPI6kEIPqu1H6Od51xfu8PxIg== - dependencies: - "@babel/generator" "^7.20.5" - "@babel/parser" "^7.23.9" - "@babel/types" "^7.20.7" - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/compiler-core" "3.4.21" - "@vue/compiler-dom" "3.4.21" - "@vue/shared" "3.4.21" - estree-walker "^2.0.2" - -"@dcloudio/uni-mp-jd@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-mp-jd/-/uni-mp-jd-3.0.0-4030620241128001.tgz#9f36ce4c6536b7ae07b7ed45547631e558abeb0e" - integrity sha512-CDGj5kaU3ubjEqHjMLgMS7vjRXbQa8Kj49s48ODfxqY3gLQH2seMQ4SDw/b82I4UsYmMIAugfawTKBG3LY/DeA== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-compiler" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vite" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vue" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/shared" "3.4.21" - -"@dcloudio/uni-mp-kuaishou@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-mp-kuaishou/-/uni-mp-kuaishou-3.0.0-4030620241128001.tgz#85fb99ee343b8ea7ab8637b5f7da7584ac983bcf" - integrity sha512-vLJCV3R7sFZj8r4u70Lj5tGzzi7qbJXarrKYkR/xV4/oFQLy9ls5qlXHwj29S0N3qnazqhNMCKg+Ee8/jkatpg== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-compiler" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vite" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vue" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-weixin" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/compiler-core" "3.4.21" - "@vue/shared" "3.4.21" - -"@dcloudio/uni-mp-lark@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-mp-lark/-/uni-mp-lark-3.0.0-4030620241128001.tgz#1ef32e76452a927b8c2d53b334d199252b8ed069" - integrity sha512-7xgnRZwsJKwVxyPQlwtnOYW4pZTDq9AFI2dbxWtVLR6PrGO/HnsxbDp8+dkLwL0OxM9LtnvP/uA57uPgTQmm7g== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-compiler" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-toutiao" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vite" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vue" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/compiler-core" "3.4.21" - "@vue/shared" "3.4.21" - -"@dcloudio/uni-mp-qq@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-mp-qq/-/uni-mp-qq-3.0.0-4030620241128001.tgz#01d502e8078048ca0a42fef2f26881169cfa01e4" - integrity sha512-3ow3Dtrne/k04GvSDGKjfbVcI6EQGEui6ag9//6StalJfCD5kXco5MjAl4EYhVTyKLSCsrsvWNdmUAfDdzWREw== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vite" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vue" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/shared" "3.4.21" - fs-extra "^10.0.0" - -"@dcloudio/uni-mp-toutiao@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-mp-toutiao/-/uni-mp-toutiao-3.0.0-4030620241128001.tgz#99c995663ef34711ae615b4c8733d219702df19c" - integrity sha512-rZVrPIYFiQGfFgm5+1v3SlHUcl7pwfTl2UIEj+Fy98v6kYXoE1yb2AIC9R5t/35QLMXi9yGr7Lg36lp8OoW35w== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-compiler" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vite" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vue" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/compiler-core" "3.4.21" - "@vue/shared" "3.4.21" - -"@dcloudio/uni-mp-vite@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-mp-vite/-/uni-mp-vite-3.0.0-4030620241128001.tgz#a9ba59a96e2fe0021aa4ab00716ac20862488bab" - integrity sha512-j0J9PIIE02sNJKhmErNHdB6VjCD/YipeP4qgLACymPnUzD3yZK8x7m4qufLyDPifuUXgvuNvVMhzAz/38RtJXA== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-i18n" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-compiler" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vue" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/compiler-dom" "3.4.21" - "@vue/compiler-sfc" "3.4.21" - "@vue/shared" "3.4.21" - debug "^4.3.3" - -"@dcloudio/uni-mp-vue@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-mp-vue/-/uni-mp-vue-3.0.0-4030620241128001.tgz#4aef0a746507fa947e3df8678be03b91dfc304d0" - integrity sha512-el5ZV62PK4KMhn3kyoAZWsFsDdHVXdTHVtTw++gzzG5PPIdCYgPtGGNZoJO0ZgPWfgtWw9MCoYRqdjFWSOmgBg== - dependencies: - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/shared" "3.4.21" - -"@dcloudio/uni-mp-weixin@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-mp-weixin/-/uni-mp-weixin-3.0.0-4030620241128001.tgz#6a4f187723d70b51c78677ca662f78b32a1dff8c" - integrity sha512-G3aw7dZUxpO3AvAX8gHbT9fq1LMn++GpE3rHRlXhrE9F+C9eVrRtwqt9EdVszZvJJu8X9aSK9kvaLFFgdSUGiw== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vite" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vue" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/shared" "3.4.21" - jimp "^0.10.1" - licia "^1.29.0" - qrcode-reader "^1.0.4" - qrcode-terminal "^0.12.0" - ws "^8.4.2" - -"@dcloudio/uni-mp-xhs@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-mp-xhs/-/uni-mp-xhs-3.0.0-4030620241128001.tgz#12e5eb30b61ede5a74463b3f4e4db409fd5243e3" - integrity sha512-lD7XL0FZZxPBmFDOiia/oEa2VTA0m2RqBq1WtnSwSeA0C81LFqutpObaA8+XBrIYVqeXs+9golW0Y1a8/FYAMA== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-compiler" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vite" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vue" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/shared" "3.4.21" - -"@dcloudio/uni-nvue-styler@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-nvue-styler/-/uni-nvue-styler-3.0.0-4030620241128001.tgz#399c133d1a8ac4e0eb74789bf377457a3c3ff7da" - integrity sha512-SNSc5Pw3ekSI0SJ4K9bnbo3KCU3bKsqchLzeeMXe/4WbAs0NkTwoNf6UdzajMo15hsBDu2lJEIU9TsS0GcgZ5A== - dependencies: - parse-css-font "^4.0.0" - postcss "^8.4.35" - -"@dcloudio/uni-push@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-push/-/uni-push-3.0.0-4030620241128001.tgz#4c5578ca82deaa94e1b16870ef13c53a1b948367" - integrity sha512-zp5P9KY/pXV7mqFC1lsfqwt0sqT4cRKfS7vgyWb4CRiz4dwxhgFkQwIVyCNhpb1idzyEeK++HWf7dPDO/qU+8A== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - -"@dcloudio/uni-quickapp-webview@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-quickapp-webview/-/uni-quickapp-webview-3.0.0-4030620241128001.tgz#721e087f9194a9be8a0bd40218194b72686fa410" - integrity sha512-scgFTl3PEzDQ6pIu2OZ2GlD9lD+fkfw5f9G57qEqFAH/YXYdXQz9JMD8dSa14e99Mk5FHu22sBW+n01jlJZ3lw== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vite" "3.0.0-4030620241128001" - "@dcloudio/uni-mp-vue" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@vue/shared" "3.4.21" - -"@dcloudio/uni-shared@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-shared/-/uni-shared-3.0.0-4030620241128001.tgz#c8bfe8e335386c5db6359d1713dc1873b8dcd8a9" - integrity sha512-GrfljYl+hEfRaZZNlAzT35NVK6P4MBg9xMN+bNT2ALLwCt6pL/9tJZLask302sOSjOgjhAzaN9qNdVKCDo0H0A== - dependencies: - "@vue/shared" "3.4.21" - -"@dcloudio/uni-stacktracey@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-stacktracey/-/uni-stacktracey-3.0.0-4030620241128001.tgz#586b7228066ea343a180bb9e5d0ef53f5a2a1924" - integrity sha512-LJiiKBYYtHME4m0nAPM4VswPXxUopkx3XXkeHBQzEvNGGZZzxrDPpwZavpsifbJml5a47KOO9PsmoBiZymIxqQ== - -"@dcloudio/uni-stat@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/uni-stat/-/uni-stat-3.0.0-4030620241128001.tgz#9fad000eefece910bb9e9eb23f4bca336389ab90" - integrity sha512-0WCvT+FIKxy1MNryK5nhKH1sBZchu5KTWv/nVZo+NmTwsvcdUf4rWei3DYq6Qo0ehBasVeW8nIIYoAwB7pDQsw== - dependencies: - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - debug "^4.3.3" - -"@dcloudio/uni-ui@^1.5.11": - version "1.5.11" - resolved "https://registry.npmmirror.com/@dcloudio/uni-ui/-/uni-ui-1.5.11.tgz#ac4d0022e487a39f8aba68af8adf5ac437a49106" - integrity sha512-DBtk046ofmeFd82zRI7d89SoEwrAxYzUN3WVPm1DIBkpLPG5F5QDNkHMnZGu2wNrMEmGBjBpUh3vqEY1L3jaMw== - -"@dcloudio/vite-plugin-uni@3.0.0-4030620241128001": - version "3.0.0-4030620241128001" - resolved "https://registry.npmmirror.com/@dcloudio/vite-plugin-uni/-/vite-plugin-uni-3.0.0-4030620241128001.tgz#a8b9ab53d5e6f5cd2e31ac54564dec1393a2635b" - integrity sha512-sXIuBQz/j/aUDc+uSJuTozUj8W6Wy6dtC1S7oS95yLqacNOrzAhITfNWpmY51Zff7NXIt4bp+V++awDo0wnLsg== - dependencies: - "@babel/core" "^7.23.3" - "@babel/plugin-syntax-import-meta" "^7.10.4" - "@babel/plugin-transform-typescript" "^7.23.3" - "@dcloudio/uni-cli-shared" "3.0.0-4030620241128001" - "@dcloudio/uni-shared" "3.0.0-4030620241128001" - "@rollup/pluginutils" "^5.0.5" - "@vitejs/plugin-legacy" "5.3.2" - "@vitejs/plugin-vue" "5.1.0" - "@vitejs/plugin-vue-jsx" "3.1.0" - "@vue/compiler-core" "3.4.21" - "@vue/compiler-dom" "3.4.21" - "@vue/compiler-sfc" "3.4.21" - "@vue/shared" "3.4.21" - cac "6.7.9" - debug "^4.3.3" - estree-walker "^2.0.2" - express "^4.17.1" - fast-glob "^3.2.11" - fs-extra "^10.0.0" - hash-sum "^2.0.0" - jsonc-parser "^3.2.0" - magic-string "^0.30.7" - picocolors "^1.0.0" - terser "^5.4.0" - unplugin-auto-import "^0.18.2" - -"@esbuild/aix-ppc64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" - integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== - -"@esbuild/android-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" - integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== - -"@esbuild/android-arm@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" - integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== - -"@esbuild/android-x64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" - integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== - -"@esbuild/darwin-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" - integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== - -"@esbuild/darwin-x64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" - integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== - -"@esbuild/freebsd-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" - integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== - -"@esbuild/freebsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" - integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== - -"@esbuild/linux-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" - integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== - -"@esbuild/linux-arm@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" - integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== - -"@esbuild/linux-ia32@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" - integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== - -"@esbuild/linux-loong64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" - integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== - -"@esbuild/linux-mips64el@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" - integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== - -"@esbuild/linux-ppc64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" - integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== - -"@esbuild/linux-riscv64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" - integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== - -"@esbuild/linux-s390x@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" - integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== - -"@esbuild/linux-x64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" - integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== - -"@esbuild/netbsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" - integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== - -"@esbuild/openbsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" - integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== - -"@esbuild/sunos-x64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" - integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== - -"@esbuild/win32-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" - integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== - -"@esbuild/win32-ia32@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" - integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== - -"@esbuild/win32-x64@0.20.2": - version "0.20.2" - resolved "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" - integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== - -"@iconify/types@^2.0.0": - version "2.0.0" - resolved "https://registry.npmmirror.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" - integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== - -"@iconify/utils@^3.0.2": - version "3.0.2" - resolved "https://registry.npmmirror.com/@iconify/utils/-/utils-3.0.2.tgz#9599607f20690cd3e7a5d2d459af0eb81a89dc2b" - integrity sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ== - dependencies: - "@antfu/install-pkg" "^1.1.0" - "@antfu/utils" "^9.2.0" - "@iconify/types" "^2.0.0" - debug "^4.4.1" - globals "^15.15.0" - kolorist "^1.8.0" - local-pkg "^1.1.1" - mlly "^1.7.4" - -"@intlify/core-base@9.1.9": - version "9.1.9" - resolved "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.1.9.tgz#e4e8c951010728e4af3a0d13d74cf3f9e7add7f6" - integrity sha512-x5T0p/Ja0S8hs5xs+ImKyYckVkL4CzcEXykVYYV6rcbXxJTe2o58IquSqX9bdncVKbRZP7GlBU1EcRaQEEJ+vw== - dependencies: - "@intlify/devtools-if" "9.1.9" - "@intlify/message-compiler" "9.1.9" - "@intlify/message-resolver" "9.1.9" - "@intlify/runtime" "9.1.9" - "@intlify/shared" "9.1.9" - "@intlify/vue-devtools" "9.1.9" - -"@intlify/core-base@9.14.5": - version "9.14.5" - resolved "https://registry.npmmirror.com/@intlify/core-base/-/core-base-9.14.5.tgz#cfed631e98b34f4f6fe1312e6c02dd8ace180197" - integrity sha512-5ah5FqZG4pOoHjkvs8mjtv+gPKYU0zCISaYNjBNNqYiaITxW8ZtVih3GS/oTOqN8d9/mDLyrjD46GBApNxmlsA== - dependencies: - "@intlify/message-compiler" "9.14.5" - "@intlify/shared" "9.14.5" - -"@intlify/devtools-if@9.1.9": - version "9.1.9" - resolved "https://registry.npmmirror.com/@intlify/devtools-if/-/devtools-if-9.1.9.tgz#a30e1dd1256ff2c5c98d8d75d075384fba898e5d" - integrity sha512-oKSMKjttG3Ut/1UGEZjSdghuP3fwA15zpDPcjkf/1FjlOIm6uIBGMNS5jXzsZy593u+P/YcnrZD6cD3IVFz9vQ== - dependencies: - "@intlify/shared" "9.1.9" - -"@intlify/message-compiler@9.1.9": - version "9.1.9" - resolved "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.1.9.tgz#1193cbd224a71c2fb981455b8534a3c766d2948d" - integrity sha512-6YgCMF46Xd0IH2hMRLCssZI3gFG4aywidoWQ3QP4RGYQXQYYfFC54DxhSgfIPpVoPLQ+4AD29eoYmhiHZ+qLFQ== - dependencies: - "@intlify/message-resolver" "9.1.9" - "@intlify/shared" "9.1.9" - source-map "0.6.1" - -"@intlify/message-compiler@9.14.5": - version "9.14.5" - resolved "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-9.14.5.tgz#03b0a358c93cb2eed95936531c8a5871fd3841b0" - integrity sha512-IHzgEu61/YIpQV5Pc3aRWScDcnFKWvQA9kigcINcCBXN8mbW+vk9SK+lDxA6STzKQsVJxUPg9ACC52pKKo3SVQ== - dependencies: - "@intlify/shared" "9.14.5" - source-map-js "^1.0.2" - -"@intlify/message-resolver@9.1.9": - version "9.1.9" - resolved "https://registry.npmmirror.com/@intlify/message-resolver/-/message-resolver-9.1.9.tgz#3155ccd2f5e6d0dc16cad8b7f1d8e97fcda05bfc" - integrity sha512-Lx/DBpigeK0sz2BBbzv5mu9/dAlt98HxwbG7xLawC3O2xMF9MNWU5FtOziwYG6TDIjNq0O/3ZbOJAxwITIWXEA== - -"@intlify/runtime@9.1.9": - version "9.1.9" - resolved "https://registry.npmmirror.com/@intlify/runtime/-/runtime-9.1.9.tgz#2c12ce29518a075629efed0a8ed293ee740cb285" - integrity sha512-XgPw8+UlHCiie3fI41HPVa/VDJb3/aSH7bLhY1hJvlvNV713PFtb4p4Jo+rlE0gAoMsMCGcsiT982fImolSltg== - dependencies: - "@intlify/message-compiler" "9.1.9" - "@intlify/message-resolver" "9.1.9" - "@intlify/shared" "9.1.9" - -"@intlify/shared@9.1.9": - version "9.1.9" - resolved "https://registry.npmmirror.com/@intlify/shared/-/shared-9.1.9.tgz#0baaf96128b85560666bec784ffb01f6623cc17a" - integrity sha512-xKGM1d0EAxdDFCWedcYXOm6V5Pfw/TMudd6/qCdEb4tv0hk9EKeg7lwQF1azE0dP2phvx0yXxrt7UQK+IZjNdw== - -"@intlify/shared@9.14.5": - version "9.14.5" - resolved "https://registry.npmmirror.com/@intlify/shared/-/shared-9.14.5.tgz#2e42193b8356db20ee28c15d1ee6c8f0fda6c0b9" - integrity sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ== - -"@intlify/vue-devtools@9.1.9": - version "9.1.9" - resolved "https://registry.npmmirror.com/@intlify/vue-devtools/-/vue-devtools-9.1.9.tgz#2be8f4dbe7f7ed4115676eb32348141d411e426b" - integrity sha512-YPehH9uL4vZcGXky4Ev5qQIITnHKIvsD2GKGXgqf+05osMUI6WSEQHaN9USRa318Rs8RyyPCiDfmA0hRu3k7og== - dependencies: - "@intlify/message-resolver" "9.1.9" - "@intlify/runtime" "9.1.9" - "@intlify/shared" "9.1.9" - -"@jimp/bmp@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/bmp/-/bmp-0.10.3.tgz#79a23678e8389865c62e77b0dccc3e069dfc27f0" - integrity sha512-keMOc5woiDmONXsB/6aXLR4Z5Q+v8lFq3EY2rcj2FmstbDMhRuGbmcBxlEgOqfRjwvtf/wOtJ3Of37oAWtVfLg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - bmp-js "^0.1.0" - core-js "^3.4.1" - -"@jimp/core@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/core/-/core-0.10.3.tgz#4095f3bef43837c85d8f8373b912bc431cfe6d1f" - integrity sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - any-base "^1.1.0" - buffer "^5.2.0" - core-js "^3.4.1" - exif-parser "^0.1.12" - file-type "^9.0.0" - load-bmfont "^1.3.1" - mkdirp "^0.5.1" - phin "^2.9.1" - pixelmatch "^4.0.2" - tinycolor2 "^1.4.1" - -"@jimp/custom@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/custom/-/custom-0.10.3.tgz#eb6201b2e8fdd83afc3d8b514538e5faa1d30980" - integrity sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/core" "^0.10.3" - core-js "^3.4.1" - -"@jimp/gif@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/gif/-/gif-0.10.3.tgz#7661280fd2b9cb70175b20e80f4e2b3e3ecf614e" - integrity sha512-vjlRodSfz1CrUvvrnUuD/DsLK1GHB/yDZXHthVdZu23zYJIW7/WrIiD1IgQ5wOMV7NocfrvPn2iqUfBP81/WWA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - omggif "^1.0.9" - -"@jimp/jpeg@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/jpeg/-/jpeg-0.10.3.tgz#56f66874f204826291747ae12ff9eb337ab5cb8d" - integrity sha512-AAANwgUZOt6f6P7LZxY9lyJ9xclqutYJlsxt3JbriXUGJgrrFAIkcKcqv1nObgmQASSAQKYaMV9KdHjMlWFKlQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - jpeg-js "^0.3.4" - -"@jimp/plugin-blit@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-blit/-/plugin-blit-0.10.3.tgz#095bafbb2d82c300159334a49a094f0b7d362ae6" - integrity sha512-5zlKlCfx4JWw9qUVC7GI4DzXyxDWyFvgZLaoGFoT00mlXlN75SarlDwc9iZ/2e2kp4bJWxz3cGgG4G/WXrbg3Q== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-blur@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-blur/-/plugin-blur-0.10.3.tgz#1bb91f730fda02b3c99d913e0191111327654766" - integrity sha512-cTOK3rjh1Yjh23jSfA6EHCHjsPJDEGLC8K2y9gM7dnTUK1y9NNmkFS23uHpyjgsWFIoH9oRh2SpEs3INjCpZhQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-circle@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-circle/-/plugin-circle-0.10.3.tgz#c5a6ec275cf1e86b1356824637910a299c9fd662" - integrity sha512-51GAPIVelqAcfuUpaM5JWJ0iWl4vEjNXB7p4P7SX5udugK5bxXUjO6KA2qgWmdpHuCKtoNgkzWU9fNSuYp7tCA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-color@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-color/-/plugin-color-0.10.3.tgz#810c0f7cb4ceb21da1aecfbdb6ae09f00c1c0bfa" - integrity sha512-RgeHUElmlTH7vpI4WyQrz6u59spiKfVQbsG/XUzfWGamFSixa24ZDwX/yV/Ts+eNaz7pZeIuv533qmKPvw2ujg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - tinycolor2 "^1.4.1" - -"@jimp/plugin-contain@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-contain/-/plugin-contain-0.10.3.tgz#cf62126a60260359061be456b2193818c5eb1df5" - integrity sha512-bYJKW9dqzcB0Ihc6u7jSyKa3juStzbLs2LFr6fu8TzA2WkMS/R8h+ddkiO36+F9ILTWHP0CIA3HFe5OdOGcigw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-cover@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-cover/-/plugin-cover-0.10.3.tgz#7cdf56ce878c24adc35c583735015118c6de38b4" - integrity sha512-pOxu0cM0BRPzdV468n4dMocJXoMbTnARDY/EpC3ZW15SpMuc/dr1KhWQHgoQX5kVW1Wt8zgqREAJJCQ5KuPKDA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-crop@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-crop/-/plugin-crop-0.10.3.tgz#03785181f62ddae9558ae73206f8d6217d7fa703" - integrity sha512-nB7HgOjjl9PgdHr076xZ3Sr6qHYzeBYBs9qvs3tfEEUeYMNnvzgCCGtUl6eMakazZFCMk3mhKmcB9zQuHFOvkg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-displace@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-displace/-/plugin-displace-0.10.3.tgz#cb5b225e6cf3cf44062b08cd2cf2115b3150d8c3" - integrity sha512-8t3fVKCH5IVqI4lewe4lFFjpxxr69SQCz5/tlpDLQZsrNScNJivHdQ09zljTrVTCSgeCqQJIKgH2Q7Sk/pAZ0w== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-dither@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-dither/-/plugin-dither-0.10.3.tgz#c5c1cbbf157a771ba72b947dd9921a7bff3cf41a" - integrity sha512-JCX/oNSnEg1kGQ8ffZ66bEgQOLCY3Rn+lrd6v1jjLy/mn9YVZTMsxLtGCXpiCDC2wG/KTmi4862ysmP9do9dAQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-fisheye@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-fisheye/-/plugin-fisheye-0.10.3.tgz#dee46d704df5c681556dc9ea9e87e8c77ac4fdda" - integrity sha512-RRZb1wqe+xdocGcFtj2xHU7sF7xmEZmIa6BmrfSchjyA2b32TGPWKnP3qyj7p6LWEsXn+19hRYbjfyzyebPElQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-flip@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-flip/-/plugin-flip-0.10.3.tgz#12f894f85b283ad4f43b492e0755f8ec9459bc60" - integrity sha512-0epbi8XEzp0wmSjoW9IB0iMu0yNF17aZOxLdURCN3Zr+8nWPs5VNIMqSVa1Y62GSyiMDpVpKF/ITiXre+EqrPg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-gaussian@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-gaussian/-/plugin-gaussian-0.10.3.tgz#279222fc5d3aec24fab6162df2a1190309c71874" - integrity sha512-25eHlFbHUDnMMGpgRBBeQ2AMI4wsqCg46sue0KklI+c2BaZ+dGXmJA5uT8RTOrt64/K9Wz5E+2n7eBnny4dfpQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-invert@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-invert/-/plugin-invert-0.10.3.tgz#6b7beacbe507fa03eec87b1d6343feba80e342eb" - integrity sha512-effYSApWY/FbtlzqsKXlTLkgloKUiHBKjkQnqh5RL4oQxh/33j6aX+HFdDyQKtsXb8CMd4xd7wyiD2YYabTa0g== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-mask@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-mask/-/plugin-mask-0.10.3.tgz#72d994c3bb56c050a4edd6515f74b5b6d92dee69" - integrity sha512-twrg8q8TIhM9Z6Jcu9/5f+OCAPaECb0eKrrbbIajJqJ3bCUlj5zbfgIhiQIzjPJ6KjpnFPSqHQfHkU1Vvk/nVw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-normalize@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-normalize/-/plugin-normalize-0.10.3.tgz#f3cbb8a0fcc8e696619d5d46403b0620ee5240d6" - integrity sha512-xkb5eZI/mMlbwKkDN79+1/t/+DBo8bBXZUMsT4gkFgMRKNRZ6NQPxlv1d3QpRzlocsl6UMxrHnhgnXdLAcgrXw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-print@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-print/-/plugin-print-0.10.3.tgz#565d57a3a87dd59b4ede9cba7a6e34f8d01ed1b1" - integrity sha512-wjRiI6yjXsAgMe6kVjizP+RgleUCLkH256dskjoNvJzmzbEfO7xQw9g6M02VET+emnbY0CO83IkrGm2q43VRyg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - load-bmfont "^1.4.0" - -"@jimp/plugin-resize@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-resize/-/plugin-resize-0.10.3.tgz#616fab55a1996a12e9583e7c1fb76815388fc14b" - integrity sha512-rf8YmEB1d7Sg+g4LpqF0Mp+dfXfb6JFJkwlAIWPUOR7lGsPWALavEwTW91c0etEdnp0+JB9AFpy6zqq7Lwkq6w== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-rotate@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-rotate/-/plugin-rotate-0.10.3.tgz#cfcbdad664e13c84ce9b008ddbc157e03d7baa31" - integrity sha512-YXLlRjm18fkW9MOHUaVAxWjvgZM851ofOipytz5FyKp4KZWDLk+dZK1JNmVmK7MyVmAzZ5jsgSLhIgj+GgN0Eg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-scale@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-scale/-/plugin-scale-0.10.3.tgz#b593081ff35b0e9e11d5e0a3188c590eaa838434" - integrity sha512-5DXD7x7WVcX1gUgnlFXQa8F+Q3ThRYwJm+aesgrYvDOY+xzRoRSdQvhmdd4JEEue3lyX44DvBSgCIHPtGcEPaw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-shadow@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-shadow/-/plugin-shadow-0.10.3.tgz#a9d54c8081a55152e5cc830cf5c898ab882b519a" - integrity sha512-/nkFXpt2zVcdP4ETdkAUL0fSzyrC5ZFxdcphbYBodqD7fXNqChS/Un1eD4xCXWEpW8cnG9dixZgQgStjywH0Mg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugin-threshold@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugin-threshold/-/plugin-threshold-0.10.3.tgz#8dd289c81de4bfbdb496f9c24496f9ee3b751ab5" - integrity sha512-Dzh0Yq2wXP2SOnxcbbiyA4LJ2luwrdf1MghNIt9H+NX7B+IWw/N8qA2GuSm9n4BPGSLluuhdAWJqHcTiREriVA== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - -"@jimp/plugins@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/plugins/-/plugins-0.10.3.tgz#e15d7ba3f9e2a6b479efad5c344c8b61e01b7cb2" - integrity sha512-jTT3/7hOScf0EIKiAXmxwayHhryhc1wWuIe3FrchjDjr9wgIGNN2a7XwCgPl3fML17DXK1x8EzDneCdh261bkw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/plugin-blit" "^0.10.3" - "@jimp/plugin-blur" "^0.10.3" - "@jimp/plugin-circle" "^0.10.3" - "@jimp/plugin-color" "^0.10.3" - "@jimp/plugin-contain" "^0.10.3" - "@jimp/plugin-cover" "^0.10.3" - "@jimp/plugin-crop" "^0.10.3" - "@jimp/plugin-displace" "^0.10.3" - "@jimp/plugin-dither" "^0.10.3" - "@jimp/plugin-fisheye" "^0.10.3" - "@jimp/plugin-flip" "^0.10.3" - "@jimp/plugin-gaussian" "^0.10.3" - "@jimp/plugin-invert" "^0.10.3" - "@jimp/plugin-mask" "^0.10.3" - "@jimp/plugin-normalize" "^0.10.3" - "@jimp/plugin-print" "^0.10.3" - "@jimp/plugin-resize" "^0.10.3" - "@jimp/plugin-rotate" "^0.10.3" - "@jimp/plugin-scale" "^0.10.3" - "@jimp/plugin-shadow" "^0.10.3" - "@jimp/plugin-threshold" "^0.10.3" - core-js "^3.4.1" - timm "^1.6.1" - -"@jimp/png@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/png/-/png-0.10.3.tgz#5282cad239d02743137d88239e4cb1804ed877dd" - integrity sha512-YKqk/dkl+nGZxSYIDQrqhmaP8tC3IK8H7dFPnnzFVvbhDnyYunqBZZO3SaZUKTichClRw8k/CjBhbc+hifSGWg== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/utils" "^0.10.3" - core-js "^3.4.1" - pngjs "^3.3.3" - -"@jimp/tiff@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/tiff/-/tiff-0.10.3.tgz#6d143bbc42b40c9f618686a596311b35f7ff8502" - integrity sha512-7EsJzZ5Y/EtinkBGuwX3Bi4S+zgbKouxjt9c82VJTRJOQgLWsE/RHqcyRCOQBhHAZ9QexYmDz34medfLKdoX0g== - dependencies: - "@babel/runtime" "^7.7.2" - core-js "^3.4.1" - utif "^2.0.1" - -"@jimp/types@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/types/-/types-0.10.3.tgz#9122e0a3c70129c7f26c05bbeae5030ed3a6fd5d" - integrity sha512-XGmBakiHZqseSWr/puGN+CHzx0IKBSpsKlmEmsNV96HKDiP6eu8NSnwdGCEq2mmIHe0JNcg1hqg59hpwtQ7Tiw== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/bmp" "^0.10.3" - "@jimp/gif" "^0.10.3" - "@jimp/jpeg" "^0.10.3" - "@jimp/png" "^0.10.3" - "@jimp/tiff" "^0.10.3" - core-js "^3.4.1" - timm "^1.6.1" - -"@jimp/utils@^0.10.3": - version "0.10.3" - resolved "https://registry.npmmirror.com/@jimp/utils/-/utils-0.10.3.tgz#69209dd6c2d6fd956a0beb67a47c26cb6f52f3fe" - integrity sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w== - dependencies: - "@babel/runtime" "^7.7.2" - core-js "^3.4.1" - regenerator-runtime "^0.13.3" - -"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.3", "@jridgewell/gen-mapping@^0.3.5": - version "0.3.13" - resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" - integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/remapping@^2.3.5": - version "2.3.5" - resolved "https://registry.npmmirror.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" - integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.2" - resolved "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" - integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - -"@jridgewell/source-map@^0.3.3": - version "0.3.11" - resolved "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.11.tgz#b21835cbd36db656b857c2ad02ebd413cc13a9ba" - integrity sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - -"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": - version "1.5.5" - resolved "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@jridgewell/trace-mapping@^0.3.19", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": - version "0.3.31" - resolved "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" - integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@meoc/utils@^0.2.10", "@meoc/utils@^0.2.8": - version "0.2.10" - resolved "https://registry.npmmirror.com/@meoc/utils/-/utils-0.2.10.tgz#2613d2b946ca4d7840b3ccfb5db8e39536cd0cba" - integrity sha512-LN/CQDOVmmN/kq31630r+dFYZSPezmhbRq0Ib0RbKv+qpSpaOasXwAcwO/rkpPkhuoty5kfpHmTdjrEUU8bJYQ== - dependencies: - dayjs "^1.11.13" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@polka/url@^1.0.0-next.24": - version "1.0.0-next.29" - resolved "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.29.tgz#5a40109a1ab5f84d6fd8fc928b19f367cbe7e7b1" - integrity sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww== - -"@quansync/fs@^0.1.5": - version "0.1.5" - resolved "https://registry.npmmirror.com/@quansync/fs/-/fs-0.1.5.tgz#8d89bc7add93f9b77e053ff8293d5ca82199fb1f" - integrity sha512-lNS9hL2aS2NZgNW7BBj+6EBl4rOf8l+tQ0eRY6JWCI8jI2kc53gSoqbjojU0OnAWhzoXiOjFyGsHcDGePB3lhA== - dependencies: - quansync "^0.2.11" - -"@rollup/pluginutils@^5.0.5", "@rollup/pluginutils@^5.1.0", "@rollup/pluginutils@^5.1.3", "@rollup/pluginutils@^5.1.4": - version "5.3.0" - resolved "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.3.0.tgz#57ba1b0cbda8e7a3c597a4853c807b156e21a7b4" - integrity sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^2.0.2" - picomatch "^4.0.2" - -"@rollup/rollup-android-arm-eabi@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.2.tgz#7131f3d364805067fd5596302aad9ebef1434b32" - integrity sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA== - -"@rollup/rollup-android-arm64@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.2.tgz#7ede14d7fcf7c57821a2731c04b29ccc03145d82" - integrity sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g== - -"@rollup/rollup-darwin-arm64@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.2.tgz#d59bf9ed582b38838e86a17f91720c17db6575b9" - integrity sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ== - -"@rollup/rollup-darwin-x64@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.2.tgz#a76278d9b9da9f84ea7909a14d93b915d5bbe01e" - integrity sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw== - -"@rollup/rollup-freebsd-arm64@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.2.tgz#1a94821a1f565b9eaa74187632d482e4c59a1707" - integrity sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA== - -"@rollup/rollup-freebsd-x64@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.2.tgz#aad2274680106b2b6549b1e35e5d3a7a9f1f16af" - integrity sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA== - -"@rollup/rollup-linux-arm-gnueabihf@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.2.tgz#100fe4306399ffeec47318a3c9b8c0e5e8b07ddb" - integrity sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg== - -"@rollup/rollup-linux-arm-musleabihf@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.2.tgz#b84634952604b950e18fa11fddebde898c5928d8" - integrity sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q== - -"@rollup/rollup-linux-arm64-gnu@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.2.tgz#dad6f2fb41c2485f29a98e40e9bd78253255dbf3" - integrity sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA== - -"@rollup/rollup-linux-arm64-musl@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.2.tgz#0f3f77c8ce9fbf982f8a8378b70a73dc6704a706" - integrity sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ== - -"@rollup/rollup-linux-loong64-gnu@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.2.tgz#870bb94e9dad28bb3124ba49bd733deaa6aa2635" - integrity sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ== - -"@rollup/rollup-linux-ppc64-gnu@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.2.tgz#188427d11abefc6c9926e3870b3e032170f5577c" - integrity sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g== - -"@rollup/rollup-linux-riscv64-gnu@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.2.tgz#9dec6eadbbb5abd3b76fe624dc4f006913ff4a7f" - integrity sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA== - -"@rollup/rollup-linux-riscv64-musl@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.2.tgz#b26ba1c80b6f104dc5bd83ed83181fc0411a0c38" - integrity sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ== - -"@rollup/rollup-linux-s390x-gnu@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.2.tgz#dc83647189b68ad8d56a956a6fcaa4ee9c728190" - integrity sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w== - -"@rollup/rollup-linux-x64-gnu@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.2.tgz#42c3b8c94e9de37bd103cb2e26fb715118ef6459" - integrity sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw== - -"@rollup/rollup-linux-x64-musl@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.2.tgz#d0e216ee1ea16bfafe35681b899b6a05258988e5" - integrity sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA== - -"@rollup/rollup-openharmony-arm64@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.2.tgz#3acd0157cb8976f659442bfd8a99aca46f8a2931" - integrity sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A== - -"@rollup/rollup-win32-arm64-msvc@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.2.tgz#3eb9e7d4d0e1d2e0850c4ee9aa2d0ddf89a8effa" - integrity sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA== - -"@rollup/rollup-win32-ia32-msvc@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.2.tgz#d69280bc6680fe19e0956e965811946d542f6365" - integrity sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg== - -"@rollup/rollup-win32-x64-gnu@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.2.tgz#d182ce91e342bad9cbb8b284cf33ac542b126ead" - integrity sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw== - -"@rollup/rollup-win32-x64-msvc@4.53.2": - version "4.53.2" - resolved "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.2.tgz#d9ab606437fd072b2cb7df7e54bcdc7f1ccbe8b4" - integrity sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA== - -"@types/estree@1.0.8", "@types/estree@^1.0.0": - version "1.0.8" - resolved "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== - -"@types/node@^24.9.1": - version "24.10.1" - resolved "https://registry.npmmirror.com/@types/node/-/node-24.10.1.tgz#91e92182c93db8bd6224fca031e2370cef9a8f01" - integrity sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ== - dependencies: - undici-types "~7.16.0" - -"@types/parse-json@^4.0.0": - version "4.0.2" - resolved "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" - integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== - -"@uni-helper/uni-app-types@1.0.0-alpha.6": - version "1.0.0-alpha.6" - resolved "https://registry.npmmirror.com/@uni-helper/uni-app-types/-/uni-app-types-1.0.0-alpha.6.tgz#08fc7ae163a29c1b6c026fe08d3a7898b0c58c13" - integrity sha512-t9AKDYBmDaz4IW0fgtBt25ubEzf7kyUeMlHaBaG5nyNGd6pVuDpYkABhsnNPDiZcaHAoN6SbX1SQQx5axDOWbA== - -"@uni-helper/uni-ui-types@1.0.0-alpha.6": - version "1.0.0-alpha.6" - resolved "https://registry.npmmirror.com/@uni-helper/uni-ui-types/-/uni-ui-types-1.0.0-alpha.6.tgz#b85f9367370e52b0d3e3862cb225e3a94d4a0e5b" - integrity sha512-2KuAup2M7rPVzpLaXhhnxCD/Cs5VQYiqzC9XNI/VZuA88+ApPmHzkwyS0THSHnz1VbDIGX/Ju69nj+mApfYKDw== - dependencies: - "@uni-helper/uni-app-types" "1.0.0-alpha.6" - -"@unocss/astro@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/astro/-/astro-66.5.6.tgz#43ae1995820726b64d2adaa83a4d3509c14527a8" - integrity sha512-dGnHJ9SrhzJOBwytyzexSfkor7QuUfy9NZiiYDA+bBBynJrp2HaswLviggOAgVG/c5CY1YOO5baemjB1+MTfww== - dependencies: - "@unocss/core" "66.5.6" - "@unocss/reset" "66.5.6" - "@unocss/vite" "66.5.6" - -"@unocss/cli@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/cli/-/cli-66.5.6.tgz#ae378bf6841c31cf8add1ef0d0d44258647e144d" - integrity sha512-camF3/hvVhwJ8Gfe454L5CP5//6foCtYIuOBkh1kE6Zyy5Oplc+zeuiRH1JeMP87vYfdi1XfUGuKiCtYFI8mWw== - dependencies: - "@jridgewell/remapping" "^2.3.5" - "@unocss/config" "66.5.6" - "@unocss/core" "66.5.6" - "@unocss/preset-uno" "66.5.6" - cac "^6.7.14" - chokidar "^3.6.0" - colorette "^2.0.20" - consola "^3.4.2" - magic-string "^0.30.21" - pathe "^2.0.3" - perfect-debounce "^1.0.0" - tinyglobby "^0.2.15" - unplugin-utils "^0.3.1" - -"@unocss/config@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/config/-/config-66.5.6.tgz#1b64513c44512e63d47b556ffa5596c2444cb3c2" - integrity sha512-awJSz9i1W6KpviNT+0l+xqHouW9naWg/ksiu/Dkko1QHo8a3RCJwZ/W6MBBOjQqbFNPPcD7f+6ffTMm+jXHsaw== - dependencies: - "@unocss/core" "66.5.6" - unconfig "^7.4.1" - -"@unocss/core@66.5.6", "@unocss/core@^66.1.3", "@unocss/core@^66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/core/-/core-66.5.6.tgz#dd5a2d87c0cc917ad15aba282a733693d67738aa" - integrity sha512-9hmpPXLi41YFTPexi7cT57PRWCgwtGLa1QHlPvRgx2kqjYicy7zEDylIY2ObwQien75VCDOcGpmQ/5XdZ473Rg== - -"@unocss/extractor-arbitrary-variants@66.5.6", "@unocss/extractor-arbitrary-variants@^66.1.3": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/extractor-arbitrary-variants/-/extractor-arbitrary-variants-66.5.6.tgz#23b1949a8a40ebcd588fe1007950004ad4fe2692" - integrity sha512-QAzpkX5UPjTeRbA7eed+mVPGNkwnMrIgfmlV9l8GVXHJCEnroRkzDVOPv1G9bKw1T82+NjBeZT9VnbZOmpLXQA== - dependencies: - "@unocss/core" "66.5.6" - -"@unocss/inspector@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/inspector/-/inspector-66.5.6.tgz#ab0eddc2b0c16e982c2bb973ddb87a41dd0cf1a2" - integrity sha512-9N2TunEhxHCcy4KPck/hUoctYeWCgLxHamTDn1eRCk3WavIS7l3v5wIcWUcMVXjXOJ0U2Y+w6jp/wQhA4kln/Q== - dependencies: - "@unocss/core" "66.5.6" - "@unocss/rule-utils" "66.5.6" - colorette "^2.0.20" - gzip-size "^6.0.0" - sirv "^3.0.2" - vue-flow-layout "^0.2.0" - -"@unocss/postcss@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/postcss/-/postcss-66.5.6.tgz#e96f35be1359609b920bd478f5ca617214265ac7" - integrity sha512-l+k0qYbkmag6v2g3DQ0lSiJV5UmQcQA9b0Fd/0+P9Vtqwi0o7x1Fx4lNdRZMYMZCW3o4mTTGxew/tr3xnig1GA== - dependencies: - "@unocss/config" "66.5.6" - "@unocss/core" "66.5.6" - "@unocss/rule-utils" "66.5.6" - css-tree "^3.1.0" - postcss "^8.5.6" - tinyglobby "^0.2.15" - -"@unocss/preset-attributify@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/preset-attributify/-/preset-attributify-66.5.6.tgz#c11b2b329463b32047d3d427e988d2229e84abb8" - integrity sha512-2eNBHrt6rTKnYu7RqYVYnsN5EynALUsSEFXz1kwn2UhyliN+OY26PYNk3P0GQETq7ZaVaffqAruYnUhVRGreag== - dependencies: - "@unocss/core" "66.5.6" - -"@unocss/preset-icons@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/preset-icons/-/preset-icons-66.5.6.tgz#481df5816b3096fd6f934f204f99af807c7c8652" - integrity sha512-VP9n/KPWfIUFlr3xrx+1NFZJEy+VlqWCi+h6EciLCjNh2oCP1hznh8M6dqirsK5WVaZSau2VsK5Ci4Uf08mGWw== - dependencies: - "@iconify/utils" "^3.0.2" - "@unocss/core" "66.5.6" - ofetch "^1.5.1" - -"@unocss/preset-mini@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/preset-mini/-/preset-mini-66.5.6.tgz#c2ca50107f729b0407e372000849e6b71008bd6d" - integrity sha512-HNCqsGlaKl572eu+lfVpLjid7aRIasxCm8qry8Dr1gGjG2XMx9uf+N3KRFsqlW5RU4WGtfvFaqmT+/KDIM7g0w== - dependencies: - "@unocss/core" "66.5.6" - "@unocss/extractor-arbitrary-variants" "66.5.6" - "@unocss/rule-utils" "66.5.6" - -"@unocss/preset-tagify@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/preset-tagify/-/preset-tagify-66.5.6.tgz#344e77584681e188eb9a23438ad58ccaaf05f679" - integrity sha512-zUJlt7xE7eJ9BV4lAECAeGuOJz6l3J5x0ZGWXyJ5vne2YNww4XU6seLtKhK/8viiZQa/D4c7zaHXJH4R8ov+LQ== - dependencies: - "@unocss/core" "66.5.6" - -"@unocss/preset-typography@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/preset-typography/-/preset-typography-66.5.6.tgz#4bb5f81ff335867599145cc5c87c52634a188e21" - integrity sha512-kZBw8REe4WM1HJQYNXdMJbbN+e1FGHLpzqFfvb3SW3e6WVmlQKsaokfv6UnnMjeIvRuFOGXmXmRNUUJckFgMDQ== - dependencies: - "@unocss/core" "66.5.6" - "@unocss/rule-utils" "66.5.6" - -"@unocss/preset-uno@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/preset-uno/-/preset-uno-66.5.6.tgz#f42e7575d53652501ea430f9cd8eb0c391ca94db" - integrity sha512-OhGTsVmTxpSc00xGAP1qE7FqT24xtfiIGvPg+zJ/vF9YZFzxdMisMLpn2db5N/RYnXZJI9tFHdI1ICgo4ccBaA== - dependencies: - "@unocss/core" "66.5.6" - "@unocss/preset-wind3" "66.5.6" - -"@unocss/preset-web-fonts@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/preset-web-fonts/-/preset-web-fonts-66.5.6.tgz#1a03b3d8f1c4162fc49367135ad5a136e19a1b05" - integrity sha512-d4T9rXkh013GhbgEO+Cwdn8Y7hJ7LiMet1jjx7igwPwAqB8MV4Z/iDvsNnDhwMR6b41VrOshxUqTEo0CcERq2A== - dependencies: - "@unocss/core" "66.5.6" - ofetch "^1.5.1" - -"@unocss/preset-wind3@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/preset-wind3/-/preset-wind3-66.5.6.tgz#3e95d555dc24bbe595877684abfc775cea4adabe" - integrity sha512-KmZUNDo7BwF6kQyjp3m6255edMbU9tsWShwxqj/ZTRGSYXe2Ewce5d7YKSFlJOrDNnsPkwFCIGgxawlAw//vLw== - dependencies: - "@unocss/core" "66.5.6" - "@unocss/preset-mini" "66.5.6" - "@unocss/rule-utils" "66.5.6" - -"@unocss/preset-wind4@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/preset-wind4/-/preset-wind4-66.5.6.tgz#075a0593fba094e1983ff8738e0b14672712309c" - integrity sha512-pzdtjqoJR6C+DCI/N1fPJ00jI5SfGTF2+ONF7OZM8KrH0SOg7OxcMrtHz4hWlVn88hZBpKrVrhLe3tT4ZLKcWg== - dependencies: - "@unocss/core" "66.5.6" - "@unocss/extractor-arbitrary-variants" "66.5.6" - "@unocss/rule-utils" "66.5.6" - -"@unocss/preset-wind@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/preset-wind/-/preset-wind-66.5.6.tgz#8fdce29e246aae3acf0e75ae894754dc6a7b1f37" - integrity sha512-N5A4aCgR9zDpGqVO7Gppk5anJiFtI9HvcrBV2ofHXlDSGUxzeDvE2ykTtNypFvc1dTMlI8XxHUZQ0hfu5Xc4BA== - dependencies: - "@unocss/core" "66.5.6" - "@unocss/preset-wind3" "66.5.6" - -"@unocss/reset@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/reset/-/reset-66.5.6.tgz#ff58a3886004ebb5a374e30b3ec083da666249f1" - integrity sha512-FX9X20vk6zTMATINxB1P8ZE3pr5Aa2sk7vfyBb/g1WWQ/D0FBnwvejMf5wjZqwVm5LEMbYP31whrbwfFFlzSCA== - -"@unocss/rule-utils@66.5.6", "@unocss/rule-utils@^66.1.3": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/rule-utils/-/rule-utils-66.5.6.tgz#dd4cff4225255da3634e3090059d644bc6bc2d8d" - integrity sha512-HzFlKDIaX/yPnNx7rn24Yi23RkVqwGiE1n9qVNJnEUZTE9IHx32P7eLfIUKOLU58tcMVslsLZDnt/DpJCs6RCw== - dependencies: - "@unocss/core" "^66.5.6" - magic-string "^0.30.21" - -"@unocss/transformer-attributify-jsx@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-66.5.6.tgz#9675b25feefd6508d0fde562dccde8227a9523ec" - integrity sha512-dmqpfHNhCWjaoHEqpVtf92Kq4untC05rvhD2x4ZQDOQHCrr5vXe9I6HT0mqh32UOY6ddFFCv6qfAHp5kEXpLYA== - dependencies: - "@babel/parser" "7.27.7" - "@babel/traverse" "7.27.7" - "@unocss/core" "66.5.6" - -"@unocss/transformer-compile-class@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/transformer-compile-class/-/transformer-compile-class-66.5.6.tgz#b09baa9372d9e6f7bb8e540aba68cc3378d0f42b" - integrity sha512-sjBqtO4e+R86ZQrVg8aN5+qyC4eFgLVpxcAOB/Ntt+BMbvxKit9HrmnQpRsgnV0mOhyrsC9JA7SZtXOpxCmPPQ== - dependencies: - "@unocss/core" "66.5.6" - -"@unocss/transformer-directives@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/transformer-directives/-/transformer-directives-66.5.6.tgz#ea1330df53ea09ea459a3b2799c30d205a49642c" - integrity sha512-40noDuOeZrtNVXe8mj74AfsBzOmN7nntnF/Yu1NzUobsuxFYg5QDN4/MtOs1sACh5jwBK9qIQ7m6qdCkmzIMeA== - dependencies: - "@unocss/core" "66.5.6" - "@unocss/rule-utils" "66.5.6" - css-tree "^3.1.0" - -"@unocss/transformer-variant-group@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/transformer-variant-group/-/transformer-variant-group-66.5.6.tgz#49afe429e8abe38d122d1456ac28559e0c3ac74e" - integrity sha512-wgwODgbcIQ2YmM/kHgU3VrCCPk/dv0iFA4TT37t/ot0YB4p5OsAJuKeAH8Rzsgrqn93GS/MAHz/RtRSrLh0YJg== - dependencies: - "@unocss/core" "66.5.6" - -"@unocss/vite@66.5.6": - version "66.5.6" - resolved "https://registry.npmmirror.com/@unocss/vite/-/vite-66.5.6.tgz#445b2d25f23d738a3fa6c128673087d99a8981a4" - integrity sha512-iJMkaP5xwKxsQIuT6Niqhfd1THD55rDnIa5XKBepiDhk+plm2GgxBfXx1NGVGZa4zs90Rjgp+V8U5eG7rNO/tw== - dependencies: - "@jridgewell/remapping" "^2.3.5" - "@unocss/config" "66.5.6" - "@unocss/core" "66.5.6" - "@unocss/inspector" "66.5.6" - chokidar "^3.6.0" - magic-string "^0.30.21" - pathe "^2.0.3" - tinyglobby "^0.2.15" - unplugin-utils "^0.3.1" - -"@vant/area-data@^2.1.0": - version "2.1.0" - resolved "https://registry.npmmirror.com/@vant/area-data/-/area-data-2.1.0.tgz#77dc6b3ddde18dc25ee8bfd9431b2c67f37233cd" - integrity sha512-wx9PrUX7wSUJiFcz8UrcvZfTjV6sTc+7SHcbjGQQzEcv5y+EwOo5uV4ZKdfrR5Hzcw4MA08LQdvXPSEb4nWbug== - -"@vitejs/plugin-legacy@5.3.2": - version "5.3.2" - resolved "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-5.3.2.tgz#f890db6014898c36af85b8ad52c680ef026b8aa8" - integrity sha512-8moCOrIMaZ/Rjln0Q6GsH6s8fAt1JOI3k8nmfX4tXUxE5KAExVctSyOBk+A25GClsdSWqIk2yaUthH3KJ2X4tg== - dependencies: - "@babel/core" "^7.23.9" - "@babel/preset-env" "^7.23.9" - browserslist "^4.23.0" - browserslist-to-esbuild "^2.1.1" - core-js "^3.36.0" - magic-string "^0.30.7" - regenerator-runtime "^0.14.1" - systemjs "^6.14.3" - -"@vitejs/plugin-vue-jsx@3.1.0": - version "3.1.0" - resolved "https://registry.npmmirror.com/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz#9953fd9456539e1f0f253bf0fcd1289e66c67cd1" - integrity sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA== - dependencies: - "@babel/core" "^7.23.3" - "@babel/plugin-transform-typescript" "^7.23.3" - "@vue/babel-plugin-jsx" "^1.1.5" - -"@vitejs/plugin-vue@5.1.0": - version "5.1.0" - resolved "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.1.0.tgz#d29f2aad9127c73b578e7a463e76249e89256e0b" - integrity sha512-QMRxARyrdiwi1mj3AW4fLByoHTavreXq0itdEW696EihXglf1MB3D4C2gBvE0jMPH29ZjC3iK8aIaUMLf4EOGA== - -"@volar/language-core@1.11.1", "@volar/language-core@~1.11.1": - version "1.11.1" - resolved "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.11.1.tgz#ecdf12ea8dc35fb8549e517991abcbf449a5ad4f" - integrity sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw== - dependencies: - "@volar/source-map" "1.11.1" - -"@volar/source-map@1.11.1", "@volar/source-map@~1.11.1": - version "1.11.1" - resolved "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.11.1.tgz#535b0328d9e2b7a91dff846cab4058e191f4452f" - integrity sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg== - dependencies: - muggle-string "^0.3.1" - -"@volar/typescript@~1.11.1": - version "1.11.1" - resolved "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.11.1.tgz#ba86c6f326d88e249c7f5cfe4b765be3946fd627" - integrity sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ== - dependencies: - "@volar/language-core" "1.11.1" - path-browserify "^1.0.1" - -"@vue/babel-helper-vue-transform-on@1.5.0": - version "1.5.0" - resolved "https://registry.npmmirror.com/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.5.0.tgz#b7e99d37eeb144d7b9757d7a1f40cd977fde748a" - integrity sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA== - -"@vue/babel-plugin-jsx@^1.1.5": - version "1.5.0" - resolved "https://registry.npmmirror.com/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.5.0.tgz#1b988b497cb1f79725da94463e75cebe60b72e70" - integrity sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw== - dependencies: - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/plugin-syntax-jsx" "^7.27.1" - "@babel/template" "^7.27.2" - "@babel/traverse" "^7.28.0" - "@babel/types" "^7.28.2" - "@vue/babel-helper-vue-transform-on" "1.5.0" - "@vue/babel-plugin-resolve-type" "1.5.0" - "@vue/shared" "^3.5.18" - -"@vue/babel-plugin-resolve-type@1.5.0": - version "1.5.0" - resolved "https://registry.npmmirror.com/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.5.0.tgz#6881d7b1478e9fc0ea4bb08aaad1f4d206655568" - integrity sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/helper-module-imports" "^7.27.1" - "@babel/helper-plugin-utils" "^7.27.1" - "@babel/parser" "^7.28.0" - "@vue/compiler-sfc" "^3.5.18" - -"@vue/compiler-core@3.4.21": - version "3.4.21" - resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.4.21.tgz#868b7085378fc24e58c9aed14c8d62110a62be1a" - integrity sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og== - dependencies: - "@babel/parser" "^7.23.9" - "@vue/shared" "3.4.21" - entities "^4.5.0" - estree-walker "^2.0.2" - source-map-js "^1.0.2" - -"@vue/compiler-core@3.5.24": - version "3.5.24" - resolved "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.24.tgz#1853f4b7d7090033cd9041aab6e7e8017d66c39c" - integrity sha512-eDl5H57AOpNakGNAkFDH+y7kTqrQpJkZFXhWZQGyx/5Wh7B1uQYvcWkvZi11BDhscPgj8N7XV3oRwiPnx1Vrig== - dependencies: - "@babel/parser" "^7.28.5" - "@vue/shared" "3.5.24" - entities "^4.5.0" - estree-walker "^2.0.2" - source-map-js "^1.2.1" - -"@vue/compiler-dom@3.4.21": - version "3.4.21" - resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.4.21.tgz#0077c355e2008207283a5a87d510330d22546803" - integrity sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA== - dependencies: - "@vue/compiler-core" "3.4.21" - "@vue/shared" "3.4.21" - -"@vue/compiler-dom@3.5.24", "@vue/compiler-dom@^3.3.0": - version "3.5.24" - resolved "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.24.tgz#b02e98749c377d6d2ba30dc2e94ce0f5b0af060c" - integrity sha512-1QHGAvs53gXkWdd3ZMGYuvQFXHW4ksKWPG8HP8/2BscrbZ0brw183q2oNWjMrSWImYLHxHrx1ItBQr50I/q2zw== - dependencies: - "@vue/compiler-core" "3.5.24" - "@vue/shared" "3.5.24" - -"@vue/compiler-sfc@3.4.21": - version "3.4.21" - resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.4.21.tgz#4af920dc31ab99e1ff5d152b5fe0ad12181145b2" - integrity sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ== - dependencies: - "@babel/parser" "^7.23.9" - "@vue/compiler-core" "3.4.21" - "@vue/compiler-dom" "3.4.21" - "@vue/compiler-ssr" "3.4.21" - "@vue/shared" "3.4.21" - estree-walker "^2.0.2" - magic-string "^0.30.7" - postcss "^8.4.35" - source-map-js "^1.0.2" - -"@vue/compiler-sfc@3.5.24", "@vue/compiler-sfc@^3.5.18": - version "3.5.24" - resolved "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.24.tgz#7cc3329b672b7b75d04a71eabe81bc84209dfa9f" - integrity sha512-8EG5YPRgmTB+YxYBM3VXy8zHD9SWHUJLIGPhDovo3Z8VOgvP+O7UP5vl0J4BBPWYD9vxtBabzW1EuEZ+Cqs14g== - dependencies: - "@babel/parser" "^7.28.5" - "@vue/compiler-core" "3.5.24" - "@vue/compiler-dom" "3.5.24" - "@vue/compiler-ssr" "3.5.24" - "@vue/shared" "3.5.24" - estree-walker "^2.0.2" - magic-string "^0.30.21" - postcss "^8.5.6" - source-map-js "^1.2.1" - -"@vue/compiler-ssr@3.4.21": - version "3.4.21" - resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.4.21.tgz#b84ae64fb9c265df21fc67f7624587673d324fef" - integrity sha512-M5+9nI2lPpAsgXOGQobnIueVqc9sisBFexh5yMIMRAPYLa7+5wEJs8iqOZc1WAa9WQbx9GR2twgznU8LTIiZ4Q== - dependencies: - "@vue/compiler-dom" "3.4.21" - "@vue/shared" "3.4.21" - -"@vue/compiler-ssr@3.5.24": - version "3.5.24" - resolved "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.24.tgz#3891f2479928751353b946e491e048f33d0249a8" - integrity sha512-trOvMWNBMQ/odMRHW7Ae1CdfYx+7MuiQu62Jtu36gMLXcaoqKvAyh+P73sYG9ll+6jLB6QPovqoKGGZROzkFFg== - dependencies: - "@vue/compiler-dom" "3.5.24" - "@vue/shared" "3.5.24" - -"@vue/consolidate@^1.0.0": - version "1.0.0" - resolved "https://registry.npmmirror.com/@vue/consolidate/-/consolidate-1.0.0.tgz#5324d5bf09cf1dcf702e9bf1f8d3739385eef724" - integrity sha512-oTyUE+QHIzLw2PpV14GD/c7EohDyP64xCniWTcqcEmTd699eFqTIwOmtDYjcO1j3QgdXoJEoWv1/cCdLrRoOfg== - -"@vue/devtools-api@^6.5.0", "@vue/devtools-api@^6.6.3", "@vue/devtools-api@^6.6.4": - version "6.6.4" - resolved "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz#cbe97fe0162b365edc1dba80e173f90492535343" - integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== - -"@vue/language-core@1.8.27": - version "1.8.27" - resolved "https://registry.npmmirror.com/@vue/language-core/-/language-core-1.8.27.tgz#2ca6892cb524e024a44e554e4c55d7a23e72263f" - integrity sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA== - dependencies: - "@volar/language-core" "~1.11.1" - "@volar/source-map" "~1.11.1" - "@vue/compiler-dom" "^3.3.0" - "@vue/shared" "^3.3.0" - computeds "^0.0.1" - minimatch "^9.0.3" - muggle-string "^0.3.1" - path-browserify "^1.0.1" - vue-template-compiler "^2.7.14" - -"@vue/reactivity@3.5.24": - version "3.5.24" - resolved "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.24.tgz#d2de10045f3ec05108787b6c90701b3f3bc401f8" - integrity sha512-BM8kBhtlkkbnyl4q+HiF5R5BL0ycDPfihowulm02q3WYp2vxgPcJuZO866qa/0u3idbMntKEtVNuAUp5bw4teg== - dependencies: - "@vue/shared" "3.5.24" - -"@vue/runtime-core@3.5.24", "@vue/runtime-core@^3.4.21": - version "3.5.24" - resolved "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.24.tgz#902ff6f6372a14b190aeb501a57467759bc58241" - integrity sha512-RYP/byyKDgNIqfX/gNb2PB55dJmM97jc9wyF3jK7QUInYKypK2exmZMNwnjueWwGceEkP6NChd3D2ZVEp9undQ== - dependencies: - "@vue/reactivity" "3.5.24" - "@vue/shared" "3.5.24" - -"@vue/runtime-dom@3.5.24": - version "3.5.24" - resolved "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.24.tgz#b27414fd0be2c9b58c701a67ba4db96b78819e9b" - integrity sha512-Z8ANhr/i0XIluonHVjbUkjvn+CyrxbXRIxR7wn7+X7xlcb7dJsfITZbkVOeJZdP8VZwfrWRsWdShH6pngMxRjw== - dependencies: - "@vue/reactivity" "3.5.24" - "@vue/runtime-core" "3.5.24" - "@vue/shared" "3.5.24" - csstype "^3.1.3" - -"@vue/server-renderer@3.4.21": - version "3.4.21" - resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.4.21.tgz#150751579d26661ee3ed26a28604667fa4222a97" - integrity sha512-aV1gXyKSN6Rz+6kZ6kr5+Ll14YzmIbeuWe7ryJl5muJ4uwSwY/aStXTixx76TwkZFJLm1aAlA/HSWEJ4EyiMkg== - dependencies: - "@vue/compiler-ssr" "3.4.21" - "@vue/shared" "3.4.21" - -"@vue/server-renderer@3.5.24": - version "3.5.24" - resolved "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.24.tgz#efc5f8dc2776b91f04bf3249be95afe6e83a02a8" - integrity sha512-Yh2j2Y4G/0/4z/xJ1Bad4mxaAk++C2v4kaa8oSYTMJBJ00/ndPuxCnWeot0/7/qafQFLh5pr6xeV6SdMcE/G1w== - dependencies: - "@vue/compiler-ssr" "3.5.24" - "@vue/shared" "3.5.24" - -"@vue/shared@3.4.21": - version "3.4.21" - resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.4.21.tgz#de526a9059d0a599f0b429af7037cd0c3ed7d5a1" - integrity sha512-PuJe7vDIi6VYSinuEbUIQgMIRZGgM8e4R+G+/dQTk0X1NEdvgvvgv7m+rfmDH1gZzyA1OjjoWskvHlfRNfQf3g== - -"@vue/shared@3.5.24", "@vue/shared@^3.3.0", "@vue/shared@^3.5.18": - version "3.5.24" - resolved "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.24.tgz#45ea9e6e037e53cfb8141ffa6bcad75b8be11e9c" - integrity sha512-9cwHL2EsJBdi8NY22pngYYWzkTDhld6fAD6jlaeloNGciNSJL6bLpbxVgXl96X00Jtc6YWQv96YA/0sxex/k1A== - -"@vue/tsconfig@^0.1.3": - version "0.1.3" - resolved "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.1.3.tgz#4a61dbd29783d01ddab504276dcf0c2b6988654f" - integrity sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg== - -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn@^8.11.3, acorn@^8.14.0, acorn@^8.14.1, acorn@^8.15.0: - version "8.15.0" - resolved "https://registry.npmmirror.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" - integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - -address@^1.1.2: - version "1.2.2" - resolved "https://registry.npmmirror.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" - integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== - -adm-zip@^0.5.12: - version "0.5.16" - resolved "https://registry.npmmirror.com/adm-zip/-/adm-zip-0.5.16.tgz#0b5e4c779f07dedea5805cdccb1147071d94a909" - integrity sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ== - -anchorme@^2.1.2: - version "2.1.2" - resolved "https://registry.npmmirror.com/anchorme/-/anchorme-2.1.2.tgz#4abc7e128a8a42d0036a61ebb9b18bbc032fa52a" - integrity sha512-2iPY3kxDDZvtRzauqKDb4v7a5sTF4GZ+esQTY8nGYvmhAtGTeFPMn4cRnvyWS1qmtPTP0Mv8hyLOp9l3ZzWMKg== - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -any-base@^1.1.0: - version "1.1.0" - resolved "https://registry.npmmirror.com/any-base/-/any-base-1.1.0.tgz#ae101a62bc08a597b4c9ab5b7089d456630549fe" - integrity sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== - -anymatch@~3.1.2: - version "3.1.3" - resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -autoprefixer@^10.4.19: - version "10.4.22" - resolved "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.22.tgz#90b27ab55ec0cf0684210d1f056f7d65dac55f16" - integrity sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg== - dependencies: - browserslist "^4.27.0" - caniuse-lite "^1.0.30001754" - fraction.js "^5.3.4" - normalize-range "^0.1.2" - picocolors "^1.1.1" - postcss-value-parser "^4.2.0" - -babel-plugin-macros@^2.6.1: - version "2.8.0" - resolved "https://registry.npmmirror.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" - integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== - dependencies: - "@babel/runtime" "^7.7.2" - cosmiconfig "^6.0.0" - resolve "^1.12.0" - -babel-plugin-polyfill-corejs2@^0.4.14: - version "0.4.14" - resolved "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz#8101b82b769c568835611542488d463395c2ef8f" - integrity sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg== - dependencies: - "@babel/compat-data" "^7.27.7" - "@babel/helper-define-polyfill-provider" "^0.6.5" - semver "^6.3.1" - -babel-plugin-polyfill-corejs3@^0.13.0: - version "0.13.0" - resolved "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz#bb7f6aeef7addff17f7602a08a6d19a128c30164" - integrity sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.5" - core-js-compat "^3.43.0" - -babel-plugin-polyfill-regenerator@^0.6.5: - version "0.6.5" - resolved "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz#32752e38ab6f6767b92650347bf26a31b16ae8c5" - integrity sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.6.5" - -babel-plugin-preval@^4.0.0: - version "4.0.0" - resolved "https://registry.npmmirror.com/babel-plugin-preval/-/babel-plugin-preval-4.0.0.tgz#edb8501167985752aafcc31086791e1314052e9d" - integrity sha512-fZI/4cYneinlj2k/FsXw0/lTWSC5KKoepUueS1g25Gb5vx3GrRyaVwxWCshYqx11GEU4mZnbbFhee8vpquFS2w== - dependencies: - "@babel/runtime" "^7.7.2" - babel-plugin-macros "^2.6.1" - require-from-string "^2.0.2" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-arraybuffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc" - integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base64url@^3.0.1: - version "3.0.1" - resolved "https://registry.npmmirror.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" - integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== - -baseline-browser-mapping@^2.8.25: - version "2.8.29" - resolved "https://registry.npmmirror.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.29.tgz#d8800b71399c783cb1bf2068c2bcc3b6cfd7892c" - integrity sha512-sXdt2elaVnhpDNRDz+1BDx1JQoJRuNk7oVlAlbGiFkLikHCAQiccexF/9e91zVi6RCgqspl04aP+6Cnl9zRLrA== - -binary-extensions@^2.0.0: - version "2.3.0" - resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" - integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - -bmp-js@^0.1.0: - version "0.1.0" - resolved "https://registry.npmmirror.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" - integrity sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw== - -body-parser@1.20.3: - version "1.20.3" - resolved "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" - integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.13.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - -brace-expansion@^2.0.1: - version "2.0.2" - resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" - integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.3, braces@~3.0.2: - version "3.0.3" - resolved "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" - integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - dependencies: - fill-range "^7.1.1" - -browserslist-to-esbuild@^2.1.1: - version "2.1.1" - resolved "https://registry.npmmirror.com/browserslist-to-esbuild/-/browserslist-to-esbuild-2.1.1.tgz#50dc4c55a6889ba22c7b1bd820032f81b822faf0" - integrity sha512-KN+mty6C3e9AN8Z5dI1xeN15ExcRNeISoC3g7V0Kax/MMF9MSoYA2G7lkTTcVUFntiEjkpI0HNgqJC1NjdyNUw== - dependencies: - meow "^13.0.0" - -browserslist@^4.23.0, browserslist@^4.24.0, browserslist@^4.27.0, browserslist@^4.28.0: - version "4.28.0" - resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.28.0.tgz#9cefece0a386a17a3cd3d22ebf67b9deca1b5929" - integrity sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ== - dependencies: - baseline-browser-mapping "^2.8.25" - caniuse-lite "^1.0.30001754" - electron-to-chromium "^1.5.249" - node-releases "^2.0.27" - update-browserslist-db "^1.1.4" - -buffer-equal@0.0.1: - version "0.0.1" - resolved "https://registry.npmmirror.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" - integrity sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer@^5.2.0: - version "5.7.1" - resolved "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cac@6.7.9: - version "6.7.9" - resolved "https://registry.npmmirror.com/cac/-/cac-6.7.9.tgz#70a2013067ce97c34b4acf18293cfcdbbef556dd" - integrity sha512-XN5qEpfNQCJ8jRaZgitSkkukjMRCGio+X3Ks5KUbGGlPbV+pSem1l9VuzooCBXOiMFshUZgyYqg6rgN8rjkb/w== - -cac@^6.7.14: - version "6.7.14" - resolved "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" - integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== - -call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: - version "1.0.2" - resolved "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" - integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - -call-bound@^1.0.2: - version "1.0.4" - resolved "https://registry.npmmirror.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" - integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== - dependencies: - call-bind-apply-helpers "^1.0.2" - get-intrinsic "^1.3.0" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -caniuse-lite@^1.0.30001754: - version "1.0.30001755" - resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001755.tgz#c01cfb1c30f5acf1229391666ec03492f4c332ff" - integrity sha512-44V+Jm6ctPj7R52Na4TLi3Zri4dWUljJd+RDm+j8LtNCc/ihLCT+X1TzoOAkRETEWqjuLnh9581Tl80FvK7jVA== - -centra@^2.7.0: - version "2.7.0" - resolved "https://registry.npmmirror.com/centra/-/centra-2.7.0.tgz#4c8312a58436e8a718302011561db7e6a2b0ec18" - integrity sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg== - dependencies: - follow-redirects "^1.15.6" - -chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -"chokidar@>=3.0.0 <4.0.0", chokidar@^3.5.3, chokidar@^3.6.0: - version "3.6.0" - resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" - integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -colorette@^2.0.20: - version "2.0.20" - resolved "https://registry.npmmirror.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" - integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - -commander@^2.20.0: - version "2.20.3" - resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@~1.1.1: - version "1.1.1" - resolved "https://registry.npmmirror.com/commander/-/commander-1.1.1.tgz#50d1651868ae60eccff0a2d9f34595376bc6b041" - integrity sha512-71Rod2AhcH3JhkBikVpNd0pA+fWsmAaVoti6OR38T76chA7vE3pSerS0Jor4wDw+tOueD2zLVvFOw5H0Rcj7rA== - dependencies: - keypress "0.1.x" - -compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.npmmirror.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== - -computeds@^0.0.1: - version "0.0.1" - resolved "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz#215b08a4ba3e08a11ff6eee5d6d8d7166a97ce2e" - integrity sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q== - -confbox@^0.1.8: - version "0.1.8" - resolved "https://registry.npmmirror.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" - integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== - -confbox@^0.2.2: - version "0.2.2" - resolved "https://registry.npmmirror.com/confbox/-/confbox-0.2.2.tgz#8652f53961c74d9e081784beed78555974a9c110" - integrity sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ== - -consola@^3.4.2: - version "3.4.2" - resolved "https://registry.npmmirror.com/consola/-/consola-3.4.2.tgz#5af110145397bb67afdab77013fdc34cae590ea7" - integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4, content-type@~1.0.5: - version "1.0.5" - resolved "https://registry.npmmirror.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" - integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.7.1: - version "0.7.1" - resolved "https://registry.npmmirror.com/cookie/-/cookie-0.7.1.tgz#2f73c42142d5d5cf71310a74fc4ae61670e5dbc9" - integrity sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w== - -copy-text-to-clipboard@^3.0.1: - version "3.2.2" - resolved "https://registry.npmmirror.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz#99bc79db3f2d355ec33a08d573aff6804491ddb9" - integrity sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A== - -core-js-compat@^3.43.0: - version "3.47.0" - resolved "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.47.0.tgz#698224bbdbb6f2e3f39decdda4147b161e3772a3" - integrity sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ== - dependencies: - browserslist "^4.28.0" - -core-js@^3.11.0, core-js@^3.36.0, core-js@^3.4.1: - version "3.47.0" - resolved "https://registry.npmmirror.com/core-js/-/core-js-3.47.0.tgz#436ef07650e191afeb84c24481b298bd60eb4a17" - integrity sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg== - -cosmiconfig@^6.0.0: - version "6.0.0" - resolved "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== - dependencies: - "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" - parse-json "^5.0.0" - path-type "^4.0.0" - yaml "^1.7.2" - -cross-env@^7.0.3: - version "7.0.3" - resolved "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" - integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== - dependencies: - cross-spawn "^7.0.1" - -cross-spawn@^7.0.1, cross-spawn@^7.0.3: - version "7.0.6" - resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-font-size-keywords@^1.0.0: - version "1.0.0" - resolved "https://registry.npmmirror.com/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz#854875ace9aca6a8d2ee0d345a44aae9bb6db6cb" - integrity sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q== - -css-font-stretch-keywords@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz#50cee9b9ba031fb5c952d4723139f1e107b54b10" - integrity sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg== - -css-font-style-keywords@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz#5c3532813f63b4a1de954d13cea86ab4333409e4" - integrity sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg== - -css-font-weight-keywords@^1.0.0: - version "1.0.0" - resolved "https://registry.npmmirror.com/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz#9bc04671ac85bc724b574ef5d3ac96b0d604fd97" - integrity sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA== - -css-list-helpers@^2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/css-list-helpers/-/css-list-helpers-2.0.0.tgz#7cb3d6f9ec9e5087ae49d834cead282806e8818f" - integrity sha512-9Bj8tZ0jWbAM3u/U6m/boAzAwLPwtjzFvwivr2piSvyVa3K3rChJzQy4RIHkNkKiZCHrEMWDJWtTR8UyVhdDnQ== - -css-system-font-keywords@^1.0.0: - version "1.0.0" - resolved "https://registry.npmmirror.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz#85c6f086aba4eb32c571a3086affc434b84823ed" - integrity sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA== - -css-tree@^3.1.0: - version "3.1.0" - resolved "https://registry.npmmirror.com/css-tree/-/css-tree-3.1.0.tgz#7aabc035f4e66b5c86f54570d55e05b1346eb0fd" - integrity sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w== - dependencies: - mdn-data "2.12.2" - source-map-js "^1.0.1" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -csstype@^3.1.3: - version "3.2.3" - resolved "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" - integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== - -dayjs@^1.11.13, dayjs@^1.11.7: - version "1.11.19" - resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.19.tgz#15dc98e854bb43917f12021806af897c58ae2938" - integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw== - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^4.1.0, debug@^4.3.1, debug@^4.3.3, debug@^4.4.1: - version "4.4.3" - resolved "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -default-gateway@^6.0.3: - version "6.0.3" - resolved "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71" - integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg== - dependencies: - execa "^5.0.0" - -defu@^6.1.4: - version "6.1.4" - resolved "https://registry.npmmirror.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479" - integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -destr@^2.0.5: - version "2.0.5" - resolved "https://registry.npmmirror.com/destr/-/destr-2.0.5.tgz#7d112ff1b925fb8d2079fac5bdb4a90973b51fdb" - integrity sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -dom-walk@^0.1.0: - version "0.1.2" - resolved "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" - integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== - -dunder-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" - integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== - dependencies: - call-bind-apply-helpers "^1.0.1" - es-errors "^1.3.0" - gopd "^1.2.0" - -duplexer@^0.1.2: - version "0.1.2" - resolved "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -electron-to-chromium@^1.5.249: - version "1.5.255" - resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.255.tgz#fe9294ce172241eb50733bc00f2bd00d9c1e4ec7" - integrity sha512-Z9oIp4HrFF/cZkDPMpz2XSuVpc1THDpT4dlmATFlJUIBVCy9Vap5/rIXsASP1CscBacBqhabwh8vLctqBwEerQ== - -emojilib@^3.0.6: - version "3.0.12" - resolved "https://registry.npmmirror.com/emojilib/-/emojilib-3.0.12.tgz#ecea3d317dcc1e68113b2f93910c96440e1fef7f" - integrity sha512-b52zmWqBwv9juk6lKaTdYxRQSnpsnT58Sj/x6fE8fZWcsNd43gAPXUbtjLKJvVlPS9FFNCN6nB9Vh1xipnCzXw== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -encodeurl@~2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" - integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== - -entities@^4.5.0: - version "4.5.0" - resolved "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - -error-ex@^1.3.1: - version "1.3.4" - resolved "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414" - integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== - dependencies: - is-arrayish "^0.2.1" - -es-define-property@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" - integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-module-lexer@^1.2.1: - version "1.7.0" - resolved "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a" - integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== - -es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.1" - resolved "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" - integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== - dependencies: - es-errors "^1.3.0" - -esbuild@^0.20.1: - version "0.20.2" - resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" - integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== - optionalDependencies: - "@esbuild/aix-ppc64" "0.20.2" - "@esbuild/android-arm" "0.20.2" - "@esbuild/android-arm64" "0.20.2" - "@esbuild/android-x64" "0.20.2" - "@esbuild/darwin-arm64" "0.20.2" - "@esbuild/darwin-x64" "0.20.2" - "@esbuild/freebsd-arm64" "0.20.2" - "@esbuild/freebsd-x64" "0.20.2" - "@esbuild/linux-arm" "0.20.2" - "@esbuild/linux-arm64" "0.20.2" - "@esbuild/linux-ia32" "0.20.2" - "@esbuild/linux-loong64" "0.20.2" - "@esbuild/linux-mips64el" "0.20.2" - "@esbuild/linux-ppc64" "0.20.2" - "@esbuild/linux-riscv64" "0.20.2" - "@esbuild/linux-s390x" "0.20.2" - "@esbuild/linux-x64" "0.20.2" - "@esbuild/netbsd-x64" "0.20.2" - "@esbuild/openbsd-x64" "0.20.2" - "@esbuild/sunos-x64" "0.20.2" - "@esbuild/win32-arm64" "0.20.2" - "@esbuild/win32-ia32" "0.20.2" - "@esbuild/win32-x64" "0.20.2" - -escalade@^3.2.0: - version "3.2.0" - resolved "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" - integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^5.0.0: - version "5.0.0" - resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" - integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - -estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -estree-walker@^3.0.3: - version "3.0.3" - resolved "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" - integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== - dependencies: - "@types/estree" "^1.0.0" - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -events@^3.3.0: - version "3.3.0" - resolved "https://registry.npmmirror.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" - integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exif-parser@^0.1.12: - version "0.1.12" - resolved "https://registry.npmmirror.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922" - integrity sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw== - -express@^4.17.1: - version "4.21.2" - resolved "https://registry.npmmirror.com/express/-/express-4.21.2.tgz#cf250e48362174ead6cea4a566abef0162c1ec32" - integrity sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.3" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.7.1" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~2.0.0" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.3.1" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.3" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.12" - proxy-addr "~2.0.7" - qs "6.13.0" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.19.0" - serve-static "1.16.2" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -exsolve@^1.0.7: - version "1.0.8" - resolved "https://registry.npmmirror.com/exsolve/-/exsolve-1.0.8.tgz#7f5e34da61cd1116deda5136e62292c096f50613" - integrity sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA== - -fast-glob@^3.2.11, fast-glob@^3.3.2, fast-glob@^3.3.3: - version "3.3.3" - resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" - integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.8" - -fastq@^1.6.0: - version "1.19.1" - resolved "https://registry.npmmirror.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" - integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== - dependencies: - reusify "^1.0.4" - -fdir@^6.5.0: - version "6.5.0" - resolved "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" - integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== - -file-type@^9.0.0: - version "9.0.0" - resolved "https://registry.npmmirror.com/file-type/-/file-type-9.0.0.tgz#a68d5ad07f486414dfb2c8866f73161946714a18" - integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== - -fill-range@^7.1.1: - version "7.1.1" - resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" - integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.3.1: - version "1.3.1" - resolved "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019" - integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ== - dependencies: - debug "2.6.9" - encodeurl "~2.0.0" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -follow-redirects@^1.15.6: - version "1.15.11" - resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" - integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fraction.js@^5.3.4: - version "5.3.4" - resolved "https://registry.npmmirror.com/fraction.js/-/fraction.js-5.3.4.tgz#8c0fcc6a9908262df4ed197427bdeef563e0699a" - integrity sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-extra@^10.0.0: - version "10.1.0" - resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^8.0.1: - version "8.1.0" - resolved "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -generic-names@^4.0.0: - version "4.0.0" - resolved "https://registry.npmmirror.com/generic-names/-/generic-names-4.0.0.tgz#0bd8a2fd23fe8ea16cbd0a279acd69c06933d9a3" - integrity sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A== - dependencies: - loader-utils "^3.2.0" - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-intrinsic@^1.2.5, get-intrinsic@^1.3.0: - version "1.3.0" - resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" - integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== - dependencies: - call-bind-apply-helpers "^1.0.2" - es-define-property "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.1.1" - function-bind "^1.1.2" - get-proto "^1.0.1" - gopd "^1.2.0" - has-symbols "^1.1.0" - hasown "^2.0.2" - math-intrinsics "^1.1.0" - -get-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" - integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== - dependencies: - dunder-proto "^1.0.1" - es-object-atoms "^1.0.0" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -global@~4.4.0: - version "4.4.0" - resolved "https://registry.npmmirror.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" - integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== - dependencies: - min-document "^2.19.0" - process "^0.11.10" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^15.15.0: - version "15.15.0" - resolved "https://registry.npmmirror.com/globals/-/globals-15.15.0.tgz#7c4761299d41c32b075715a4ce1ede7897ff72a8" - integrity sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg== - -gopd@^1.2.0: - version "1.2.0" - resolved "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" - integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== - -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.11" - resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -gzip-size@^6.0.0: - version "6.0.0" - resolved "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" - integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== - dependencies: - duplexer "^0.1.2" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" - integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== - -hash-sum@^2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" - integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== - -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.npmmirror.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.npmmirror.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== - -icss-utils@^5.0.0: - version "5.1.0" - resolved "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" - integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -immutable@^4.0.0: - version "4.3.7" - resolved "https://registry.npmmirror.com/immutable/-/immutable-4.3.7.tgz#c70145fc90d89fb02021e65c84eb0226e4e5a381" - integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw== - -import-fresh@^3.1.0: - version "3.3.1" - resolved "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" - integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -inherits@2.0.4: - version "2.0.4" - resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -invert-kv@^3.0.0: - version "3.0.1" - resolved "https://registry.npmmirror.com/invert-kv/-/invert-kv-3.0.1.tgz#a93c7a3d4386a1dc8325b97da9bb1620c0282523" - integrity sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-core-module@^2.16.1: - version "2.16.1" - resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" - integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== - dependencies: - hasown "^2.0.2" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-function@^1.0.1: - version "1.0.2" - resolved "https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" - integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -isbinaryfile@^5.0.2: - version "5.0.7" - resolved "https://registry.npmmirror.com/isbinaryfile/-/isbinaryfile-5.0.7.tgz#19a73f2281b7368dca9d3b3ac8a0434074670979" - integrity sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -jimp@^0.10.1: - version "0.10.3" - resolved "https://registry.npmmirror.com/jimp/-/jimp-0.10.3.tgz#285027b49eee3418259a8e1e9a20dd078cf8b7b1" - integrity sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ== - dependencies: - "@babel/runtime" "^7.7.2" - "@jimp/custom" "^0.10.3" - "@jimp/plugins" "^0.10.3" - "@jimp/types" "^0.10.3" - core-js "^3.4.1" - regenerator-runtime "^0.13.3" - -jiti@^2.6.1: - version "2.6.1" - resolved "https://registry.npmmirror.com/jiti/-/jiti-2.6.1.tgz#178ef2fc9a1a594248c20627cd820187a4d78d92" - integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== - -jpeg-js@^0.3.4: - version "0.3.7" - resolved "https://registry.npmmirror.com/jpeg-js/-/jpeg-js-0.3.7.tgz#471a89d06011640592d314158608690172b1028d" - integrity sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-tokens@^9.0.1: - version "9.0.1" - resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.1.tgz#2ec43964658435296f6761b34e10671c2d9527f4" - integrity sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== - -jsesc@^3.0.2, jsesc@~3.1.0: - version "3.1.0" - resolved "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" - integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json5@^2.2.3: - version "2.2.3" - resolved "https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -jsonc-parser@^3.2.0: - version "3.3.1" - resolved "https://registry.npmmirror.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4" - integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^5.0.0: - version "5.0.0" - resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-5.0.0.tgz#e6b718f73da420d612823996fdf14a03f6ff6922" - integrity sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w== - dependencies: - universalify "^0.1.2" - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.2.0" - resolved "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" - integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -keypress@0.1.x: - version "0.1.0" - resolved "https://registry.npmmirror.com/keypress/-/keypress-0.1.0.tgz#4a3188d4291b66b4f65edb99f806aa9ae293592a" - integrity sha512-x0yf9PL/nx9Nw9oLL8ZVErFAk85/lslwEP7Vz7s5SI1ODXZIgit3C5qyWjw4DxOuO/3Hb4866SQh28a1V1d+WA== - -kolorist@^1.8.0: - version "1.8.0" - resolved "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" - integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== - -lcid@^3.0.0: - version "3.1.1" - resolved "https://registry.npmmirror.com/lcid/-/lcid-3.1.1.tgz#9030ec479a058fc36b5e8243ebaac8b6ac582fd0" - integrity sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg== - dependencies: - invert-kv "^3.0.0" - -licia@^1.29.0: - version "1.48.0" - resolved "https://registry.npmmirror.com/licia/-/licia-1.48.0.tgz#b1fa885f0700bff55c8ee0ee3052ad7ce2280607" - integrity sha512-bBWiT5CSdEtwuAHiYTJ74yItCjIFdHi4xiFk6BRDfKa+sdCpkUHp69YKb5udNOJlHDzFjNjcMgNZ/+wQIHrB8A== - -lilconfig@^2.0.5: - version "2.1.0" - resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -lines-and-columns@^2.0.4: - version "2.0.4" - resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" - integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== - -load-bmfont@^1.3.1, load-bmfont@^1.4.0: - version "1.4.2" - resolved "https://registry.npmmirror.com/load-bmfont/-/load-bmfont-1.4.2.tgz#e0f4516064fa5be8439f9c3696c01423a64e8717" - integrity sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog== - dependencies: - buffer-equal "0.0.1" - mime "^1.3.4" - parse-bmfont-ascii "^1.0.3" - parse-bmfont-binary "^1.0.5" - parse-bmfont-xml "^1.1.4" - phin "^3.7.1" - xhr "^2.0.1" - xtend "^4.0.0" - -loader-utils@^3.2.0: - version "3.3.1" - resolved "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.3.1.tgz#735b9a19fd63648ca7adbd31c2327dfe281304e5" - integrity sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg== - -local-pkg@^0.5.1: - version "0.5.1" - resolved "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.1.tgz#69658638d2a95287534d4c2fff757980100dbb6d" - integrity sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ== - dependencies: - mlly "^1.7.3" - pkg-types "^1.2.1" - -local-pkg@^1.0.0, local-pkg@^1.1.1: - version "1.1.2" - resolved "https://registry.npmmirror.com/local-pkg/-/local-pkg-1.1.2.tgz#c03d208787126445303f8161619dc701afa4abb5" - integrity sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A== - dependencies: - mlly "^1.7.4" - pkg-types "^2.3.0" - quansync "^0.2.11" - -localstorage-polyfill@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/localstorage-polyfill/-/localstorage-polyfill-1.0.1.tgz#4b3083d4bc51d23b4158537e66816137413fd31a" - integrity sha512-m4iHVZxFH5734oQcPKU08025gIz2+4bjWR9lulP8ZYxEJR0BpA0w32oJmkzh8y3UI9ci7xCBehQDc3oA1X+VHw== - -lodash-es@^4.17.21: - version "4.17.21" - resolved "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" - integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" - integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash@^4.17.21: - version "4.17.21" - resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -long@^5.2.0: - version "5.3.2" - resolved "https://registry.npmmirror.com/long/-/long-5.3.2.tgz#1d84463095999262d7d7b7f8bfd4a8cc55167f83" - integrity sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -luch-request@^3.0.8: - version "3.1.1" - resolved "https://registry.npmmirror.com/luch-request/-/luch-request-3.1.1.tgz#a62b0aab54c5acd9da5b5fd0564ed2cdb8af9c2f" - integrity sha512-p7+mlcEtgRcd0OfXC4XZbyiwSr1XgCeqNT7LlVUjnk7InYl/8d5Rk7BUqAYNA2WRafI1wRIUQWRWZRpeUwWR0w== - dependencies: - "@dcloudio/types" "^2.0.16" - -magic-string@^0.30.14, magic-string@^0.30.17, magic-string@^0.30.21, magic-string@^0.30.7: - version "0.30.21" - resolved "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" - integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.5" - -math-intrinsics@^1.1.0: - version "1.1.0" - resolved "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" - integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== - -mdn-data@2.12.2: - version "2.12.2" - resolved "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.12.2.tgz#9ae6c41a9e65adf61318b32bff7b64fbfb13f8cf" - integrity sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA== - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -meow@^13.0.0: - version "13.2.0" - resolved "https://registry.npmmirror.com/meow/-/meow-13.2.0.tgz#6b7d63f913f984063b3cc261b6e8800c4cd3474f" - integrity sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA== - -merge-descriptors@1.0.3: - version "1.0.3" - resolved "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5" - integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -merge@^2.1.1: - version "2.1.1" - resolved "https://registry.npmmirror.com/merge/-/merge-2.1.1.tgz#59ef4bf7e0b3e879186436e8481c06a6c162ca98" - integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.8: - version "4.0.8" - resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" - integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - dependencies: - braces "^3.0.3" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0, mime@^1.3.4: - version "1.6.0" - resolved "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^3.0.0: - version "3.0.0" - resolved "https://registry.npmmirror.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" - integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -min-document@^2.19.0: - version "2.19.2" - resolved "https://registry.npmmirror.com/min-document/-/min-document-2.19.2.tgz#f95db44639eaae3ac8ea85ae6809ae85ff7e3b81" - integrity sha512-8S5I8db/uZN8r9HSLFVWPdJCvYOejMcEC82VIzNUc6Zkklf/d1gg2psfE79/vyhWOj4+J8MtwmoOz3TmvaGu5A== - dependencies: - dom-walk "^0.1.0" - -minimatch@^9.0.3, minimatch@^9.0.5: - version "9.0.5" - resolved "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" - integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mitt@^3.0.1: - version "3.0.1" - resolved "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" - integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== - -mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mlly@^1.7.3, mlly@^1.7.4: - version "1.8.0" - resolved "https://registry.npmmirror.com/mlly/-/mlly-1.8.0.tgz#e074612b938af8eba1eaf43299cbc89cb72d824e" - integrity sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g== - dependencies: - acorn "^8.15.0" - pathe "^2.0.3" - pkg-types "^1.3.1" - ufo "^1.6.1" - -module-alias@^2.2.2: - version "2.2.3" - resolved "https://registry.npmmirror.com/module-alias/-/module-alias-2.2.3.tgz#ec2e85c68973bda6ab71ce7c93b763ec96053221" - integrity sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q== - -mrmime@^2.0.0: - version "2.0.1" - resolved "https://registry.npmmirror.com/mrmime/-/mrmime-2.0.1.tgz#bc3e87f7987853a54c9850eeb1f1078cd44adddc" - integrity sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.3, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -muggle-string@^0.3.1: - version "0.3.1" - resolved "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.3.1.tgz#e524312eb1728c63dd0b2ac49e3282e6ed85963a" - integrity sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== - -mutation-observer@^1.0.3: - version "1.0.3" - resolved "https://registry.npmmirror.com/mutation-observer/-/mutation-observer-1.0.3.tgz#42e9222b101bca82e5ba9d5a7acf4a14c0f263d0" - integrity sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA== - -nanoid@^3.3.11: - version "3.3.11" - resolved "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -node-fetch-native@^1.6.7: - version "1.6.7" - resolved "https://registry.npmmirror.com/node-fetch-native/-/node-fetch-native-1.6.7.tgz#9d09ca63066cc48423211ed4caf5d70075d76a71" - integrity sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q== - -node-releases@^2.0.27: - version "2.0.27" - resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" - integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -object-inspect@^1.13.3: - version "1.13.4" - resolved "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" - integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== - -ofetch@^1.5.1: - version "1.5.1" - resolved "https://registry.npmmirror.com/ofetch/-/ofetch-1.5.1.tgz#5c43cc56e03398b273014957060344254505c5c7" - integrity sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA== - dependencies: - destr "^2.0.5" - node-fetch-native "^1.6.7" - ufo "^1.6.1" - -omggif@^1.0.9: - version "1.0.10" - resolved "https://registry.npmmirror.com/omggif/-/omggif-1.0.10.tgz#ddaaf90d4a42f532e9e7cb3a95ecdd47f17c7b19" - integrity sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -os-locale-s-fix@^1.0.8-fix-1: - version "1.0.8-fix-1" - resolved "https://registry.npmmirror.com/os-locale-s-fix/-/os-locale-s-fix-1.0.8-fix-1.tgz#7db4f9fc7cea29e9266900ea0bc72aaff13ff14a" - integrity sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w== - dependencies: - lcid "^3.0.0" - -package-manager-detector@^1.3.0: - version "1.5.0" - resolved "https://registry.npmmirror.com/package-manager-detector/-/package-manager-detector-1.5.0.tgz#8dcf7b78554047ddf5da453e6ba07ebc915c507e" - integrity sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw== - -pako@^1.0.5: - version "1.0.11" - resolved "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-bmfont-ascii@^1.0.3: - version "1.0.6" - resolved "https://registry.npmmirror.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285" - integrity sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA== - -parse-bmfont-binary@^1.0.5: - version "1.0.6" - resolved "https://registry.npmmirror.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006" - integrity sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA== - -parse-bmfont-xml@^1.1.4: - version "1.1.6" - resolved "https://registry.npmmirror.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.6.tgz#016b655da7aebe6da38c906aca16bf0415773767" - integrity sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA== - dependencies: - xml-parse-from-string "^1.0.0" - xml2js "^0.5.0" - -parse-css-font@^4.0.0: - version "4.0.0" - resolved "https://registry.npmmirror.com/parse-css-font/-/parse-css-font-4.0.0.tgz#17f62c0d45195b9708d430d1e4d6f54b7e2753ed" - integrity sha512-lnY7dTUfjRXsSo5G5C639L8RaBBaVSgL+5hacIFKsNHzeCJQ5SFSZv1DZmc7+wZv/22PFGOq2YbaEHLdaCS/mQ== - dependencies: - css-font-size-keywords "^1.0.0" - css-font-stretch-keywords "^1.0.1" - css-font-style-keywords "^1.0.1" - css-font-weight-keywords "^1.0.0" - css-list-helpers "^2.0.0" - css-system-font-keywords "^1.0.0" - unquote "^1.1.1" - -parse-headers@^2.0.0: - version "2.0.6" - resolved "https://registry.npmmirror.com/parse-headers/-/parse-headers-2.0.6.tgz#7940f0abe5fe65df2dd25d4ce8800cb35b49d01c" - integrity sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A== - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.12: - version "0.1.12" - resolved "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.12.tgz#d5e1a12e478a976d432ef3c58d534b9923164bb7" - integrity sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pathe@^2.0.1, pathe@^2.0.3: - version "2.0.3" - resolved "https://registry.npmmirror.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" - integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== - -perfect-debounce@^1.0.0: - version "1.0.0" - resolved "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" - integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== - -phin@^2.9.1: - version "2.9.3" - resolved "https://registry.npmmirror.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c" - integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== - -phin@^3.7.1: - version "3.7.1" - resolved "https://registry.npmmirror.com/phin/-/phin-3.7.1.tgz#bf841da75ee91286691b10e41522a662aa628fd6" - integrity sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ== - dependencies: - centra "^2.7.0" - -picocolors@^1.0.0, picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -picomatch@^4.0.2, picomatch@^4.0.3: - version "4.0.3" - resolved "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" - integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== - -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.npmmirror.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pinia-plugin-persist-uni@^1.2.0: - version "1.3.1" - resolved "https://registry.npmmirror.com/pinia-plugin-persist-uni/-/pinia-plugin-persist-uni-1.3.1.tgz#2b0451572a1b74234f32afbbcdf31bb7dd955734" - integrity sha512-E7HEj6Hy3ZZKXCDG7yKWQ7Dg99Ibtei2qssY6w8wlqVBl3X54xSydiju8kO7IYPHw8heYAPjPBAF8TGCTdvRGQ== - dependencies: - vue-demi "^0.12.1" - -pinia@^2.0.33: - version "2.3.1" - resolved "https://registry.npmmirror.com/pinia/-/pinia-2.3.1.tgz#54c476675b72f5abcfafa24a7582531ea8c23d94" - integrity sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug== - dependencies: - "@vue/devtools-api" "^6.6.3" - vue-demi "^0.14.10" - -pinyin@^4.0.0-alpha.0: - version "4.0.0" - resolved "https://registry.npmmirror.com/pinyin/-/pinyin-4.0.0.tgz#9c15fd9d45c08b6813221fc602f77759429bfa4f" - integrity sha512-vHpV5K+vpp6XUUpZNGRDuHoN+1xcmieM3EWlH4QjSX2kkpG/gVOwpqwV9EOJ9x9c9UERFKeLml5XVSukE/PLgQ== - dependencies: - commander "~1.1.1" - -pixelmatch@^4.0.2: - version "4.0.2" - resolved "https://registry.npmmirror.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" - integrity sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA== - dependencies: - pngjs "^3.0.0" - -pkg-types@^1.2.1, pkg-types@^1.3.0, pkg-types@^1.3.1: - version "1.3.1" - resolved "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.3.1.tgz#bd7cc70881192777eef5326c19deb46e890917df" - integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== - dependencies: - confbox "^0.1.8" - mlly "^1.7.4" - pathe "^2.0.1" - -pkg-types@^2.3.0: - version "2.3.0" - resolved "https://registry.npmmirror.com/pkg-types/-/pkg-types-2.3.0.tgz#037f2c19bd5402966ff6810e32706558cb5b5726" - integrity sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig== - dependencies: - confbox "^0.2.2" - exsolve "^1.0.7" - pathe "^2.0.3" - -pngjs@^3.0.0, pngjs@^3.3.3: - version "3.4.0" - resolved "https://registry.npmmirror.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== - -postcss-import@^14.0.2: - version "14.1.0" - resolved "https://registry.npmmirror.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0" - integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-load-config@^3.1.1: - version "3.1.4" - resolved "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" - integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== - dependencies: - lilconfig "^2.0.5" - yaml "^1.10.2" - -postcss-modules-extract-imports@^3.0.0: - version "3.1.0" - resolved "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" - integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== - -postcss-modules-local-by-default@^4.0.0: - version "4.2.0" - resolved "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz#d150f43837831dae25e4085596e84f6f5d6ec368" - integrity sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw== - dependencies: - icss-utils "^5.0.0" - postcss-selector-parser "^7.0.0" - postcss-value-parser "^4.1.0" - -postcss-modules-scope@^3.0.0: - version "3.2.1" - resolved "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz#1bbccddcb398f1d7a511e0a2d1d047718af4078c" - integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== - dependencies: - postcss-selector-parser "^7.0.0" - -postcss-modules-values@^4.0.0: - version "4.0.0" - resolved "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" - integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== - dependencies: - icss-utils "^5.0.0" - -postcss-modules@^4.3.0: - version "4.3.1" - resolved "https://registry.npmmirror.com/postcss-modules/-/postcss-modules-4.3.1.tgz#517c06c09eab07d133ae0effca2c510abba18048" - integrity sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q== - dependencies: - generic-names "^4.0.0" - icss-replace-symbols "^1.1.0" - lodash.camelcase "^4.3.0" - postcss-modules-extract-imports "^3.0.0" - postcss-modules-local-by-default "^4.0.0" - postcss-modules-scope "^3.0.0" - postcss-modules-values "^4.0.0" - string-hash "^1.1.1" - -postcss-selector-parser@^6.0.6: - version "6.1.2" - resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" - integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-selector-parser@^7.0.0: - version "7.1.0" - resolved "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz#4d6af97eba65d73bc4d84bcb343e865d7dd16262" - integrity sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@^8.4.35, postcss@^8.4.38, postcss@^8.5.6: - version "8.5.6" - resolved "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" - integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== - dependencies: - nanoid "^3.3.11" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -prettier@^2.8.7: - version "2.8.8" - resolved "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -preval.macro@^4.0.0: - version "4.0.0" - resolved "https://registry.npmmirror.com/preval.macro/-/preval.macro-4.0.0.tgz#24218fa36f68bf8a01a8c65c45d19a3ccad6496c" - integrity sha512-sJJnE71X+MPr64CVD2AurmUj4JEDqbudYbStav3L9Xjcqm4AR0ymMm6sugw1mUmfI/7gw4JWA4JXo/k6w34crw== - dependencies: - babel-plugin-preval "^4.0.0" - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.npmmirror.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -qrcode-reader@^1.0.4: - version "1.0.4" - resolved "https://registry.npmmirror.com/qrcode-reader/-/qrcode-reader-1.0.4.tgz#95d9bb9e8130800361a96cb5a43124ad1d9e06b8" - integrity sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ== - -qrcode-terminal@^0.12.0: - version "0.12.0" - resolved "https://registry.npmmirror.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" - integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== - -qs@6.13.0: - version "6.13.0" - resolved "https://registry.npmmirror.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" - integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== - dependencies: - side-channel "^1.0.6" - -quansync@^0.2.11: - version "0.2.11" - resolved "https://registry.npmmirror.com/quansync/-/quansync-0.2.11.tgz#f9c3adda2e1272e4f8cf3f1457b04cbdb4ee692a" - integrity sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.2: - version "2.5.2" - resolved "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" - integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.npmmirror.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== - dependencies: - pify "^2.3.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -regenerate-unicode-properties@^10.2.2: - version "10.2.2" - resolved "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" - integrity sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.3: - version "0.13.11" - resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" - integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== - -regenerator-runtime@^0.14.1: - version "0.14.1" - resolved "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - -regexpu-core@^6.3.1: - version "6.4.0" - resolved "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-6.4.0.tgz#3580ce0c4faedef599eccb146612436b62a176e5" - integrity sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.2.2" - regjsgen "^0.8.0" - regjsparser "^0.13.0" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.2.1" - -regjsgen@^0.8.0: - version "0.8.0" - resolved "https://registry.npmmirror.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" - integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== - -regjsparser@^0.13.0: - version "0.13.0" - resolved "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.13.0.tgz#01f8351335cf7898d43686bc74d2dd71c847ecc0" - integrity sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q== - dependencies: - jsesc "~3.1.0" - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -resize-image@^0.1.0: - version "0.1.0" - resolved "https://registry.npmmirror.com/resize-image/-/resize-image-0.1.0.tgz#033d5f499cb7095def7827d48b8046f7e1c5776c" - integrity sha512-78cWCEX/IupMCwKi5Gg5gxjOZKoN6UXinL2eVOB4xzyG2QNjq64z6pJBnyBKg5/BsjEosLz1co5e3DHr99TgFg== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@^1.1.7, resolve@^1.12.0, resolve@^1.22.1, resolve@^1.22.10: - version "1.22.11" - resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" - integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== - dependencies: - is-core-module "^2.16.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.1.0" - resolved "https://registry.npmmirror.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" - integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== - -rollup@^4.13.0: - version "4.53.2" - resolved "https://registry.npmmirror.com/rollup/-/rollup-4.53.2.tgz#98e73ee51e119cb9d88b07d026c959522416420a" - integrity sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g== - dependencies: - "@types/estree" "1.0.8" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.53.2" - "@rollup/rollup-android-arm64" "4.53.2" - "@rollup/rollup-darwin-arm64" "4.53.2" - "@rollup/rollup-darwin-x64" "4.53.2" - "@rollup/rollup-freebsd-arm64" "4.53.2" - "@rollup/rollup-freebsd-x64" "4.53.2" - "@rollup/rollup-linux-arm-gnueabihf" "4.53.2" - "@rollup/rollup-linux-arm-musleabihf" "4.53.2" - "@rollup/rollup-linux-arm64-gnu" "4.53.2" - "@rollup/rollup-linux-arm64-musl" "4.53.2" - "@rollup/rollup-linux-loong64-gnu" "4.53.2" - "@rollup/rollup-linux-ppc64-gnu" "4.53.2" - "@rollup/rollup-linux-riscv64-gnu" "4.53.2" - "@rollup/rollup-linux-riscv64-musl" "4.53.2" - "@rollup/rollup-linux-s390x-gnu" "4.53.2" - "@rollup/rollup-linux-x64-gnu" "4.53.2" - "@rollup/rollup-linux-x64-musl" "4.53.2" - "@rollup/rollup-openharmony-arm64" "4.53.2" - "@rollup/rollup-win32-arm64-msvc" "4.53.2" - "@rollup/rollup-win32-ia32-msvc" "4.53.2" - "@rollup/rollup-win32-x64-gnu" "4.53.2" - "@rollup/rollup-win32-x64-msvc" "4.53.2" - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -safe-area-insets@^1.4.1: - version "1.4.1" - resolved "https://registry.npmmirror.com/safe-area-insets/-/safe-area-insets-1.4.1.tgz#89309e01a516dcd7d2fe012a9c4115182957bd8b" - integrity sha512-r/nRWTjFGhhm3w1Z6Kd/jY11srN+lHt2mNl1E/emQGW8ic7n3Avu4noibklfSM+Y34peNphHD/BSZecav0sXYQ== - -safe-buffer@5.2.1: - version "5.2.1" - resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sass@1.78.0: - version "1.78.0" - resolved "https://registry.npmmirror.com/sass/-/sass-1.78.0.tgz#cef369b2f9dc21ea1d2cf22c979f52365da60841" - integrity sha512-AaIqGSrjo5lA2Yg7RvFZrlXDBCp3nV4XP73GrLGvdRWWwk+8H3l0SDvq/5bA4eF+0RFPLuWUk3E+P1U/YqnpsQ== - dependencies: - chokidar ">=3.0.0 <4.0.0" - immutable "^4.0.0" - source-map-js ">=0.6.2 <2.0.0" - -sax@>=0.6.0: - version "1.4.3" - resolved "https://registry.npmmirror.com/sax/-/sax-1.4.3.tgz#fcebae3b756cdc8428321805f4b70f16ec0ab5db" - integrity sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ== - -scule@^1.3.0: - version "1.3.0" - resolved "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz#6efbd22fd0bb801bdcc585c89266a7d2daa8fbd3" - integrity sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== - -segmentit@^2.0.3: - version "2.0.3" - resolved "https://registry.npmmirror.com/segmentit/-/segmentit-2.0.3.tgz#799897667acbc518b27811acdb2a341a79c7973f" - integrity sha512-7mn2XL3OdTUQ+AhHz7SbgyxLTaQRzTWQNVwiK+UlTO8aePGbSwvKUzTwE4238+OUY9MoR6ksAg35zl8sfTunQQ== - dependencies: - preval.macro "^4.0.0" - -semver@^6.3.1: - version "6.3.1" - resolved "https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.5.4: - version "7.7.3" - resolved "https://registry.npmmirror.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" - integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== - -send@0.19.0: - version "0.19.0" - resolved "https://registry.npmmirror.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8" - integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -serve-static@1.16.2: - version "1.16.2" - resolved "https://registry.npmmirror.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296" - integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw== - dependencies: - encodeurl "~2.0.0" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.19.0" - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel-list@^1.0.0: - version "1.0.0" - resolved "https://registry.npmmirror.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" - integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== - dependencies: - es-errors "^1.3.0" - object-inspect "^1.13.3" - -side-channel-map@^1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" - integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - get-intrinsic "^1.2.5" - object-inspect "^1.13.3" - -side-channel-weakmap@^1.0.2: - version "1.0.2" - resolved "https://registry.npmmirror.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" - integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - get-intrinsic "^1.2.5" - object-inspect "^1.13.3" - side-channel-map "^1.0.1" - -side-channel@^1.0.6: - version "1.1.0" - resolved "https://registry.npmmirror.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" - integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== - dependencies: - es-errors "^1.3.0" - object-inspect "^1.13.3" - side-channel-list "^1.0.0" - side-channel-map "^1.0.1" - side-channel-weakmap "^1.0.2" - -signal-exit@^3.0.3: - version "3.0.7" - resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -sirv@^3.0.2: - version "3.0.2" - resolved "https://registry.npmmirror.com/sirv/-/sirv-3.0.2.tgz#f775fccf10e22a40832684848d636346f41cd970" - integrity sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g== - dependencies: - "@polka/url" "^1.0.0-next.24" - mrmime "^2.0.0" - totalist "^3.0.0" - -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2, source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -source-map-support@~0.5.20: - version "0.5.21" - resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@0.6.1, source-map@^0.6.0: - version "0.6.1" - resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -string-hash@^1.1.1: - version "1.1.3" - resolved "https://registry.npmmirror.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" - integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-literal@^2.1.1: - version "2.1.1" - resolved "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.1.tgz#26906e65f606d49f748454a08084e94190c2e5ad" - integrity sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q== - dependencies: - js-tokens "^9.0.1" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -systemjs@^6.14.3: - version "6.15.1" - resolved "https://registry.npmmirror.com/systemjs/-/systemjs-6.15.1.tgz#74175b6810e27a79e1177d21db5f0e3057118cea" - integrity sha512-Nk8c4lXvMB98MtbmjX7JwJRgJOL8fluecYCfCeYBznwmpOs8Bf15hLM6z4z71EDAhQVrQrI+wt1aLWSXZq+hXA== - -tapable@^2.2.0: - version "2.3.0" - resolved "https://registry.npmmirror.com/tapable/-/tapable-2.3.0.tgz#7e3ea6d5ca31ba8e078b560f0d83ce9a14aa8be6" - integrity sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== - -terser@^5.4.0: - version "5.44.1" - resolved "https://registry.npmmirror.com/terser/-/terser-5.44.1.tgz#e391e92175c299b8c284ad6ded609e37303b0a9c" - integrity sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw== - dependencies: - "@jridgewell/source-map" "^0.3.3" - acorn "^8.15.0" - commander "^2.20.0" - source-map-support "~0.5.20" - -timm@^1.6.1: - version "1.7.1" - resolved "https://registry.npmmirror.com/timm/-/timm-1.7.1.tgz#96bab60c7d45b5a10a8a4d0f0117c6b7e5aff76f" - integrity sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw== - -tinycolor2@^1.4.1: - version "1.6.0" - resolved "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e" - integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw== - -tinyexec@^1.0.1: - version "1.0.2" - resolved "https://registry.npmmirror.com/tinyexec/-/tinyexec-1.0.2.tgz#bdd2737fe2ba40bd6f918ae26642f264b99ca251" - integrity sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg== - -tinyglobby@^0.2.15: - version "0.2.15" - resolved "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2" - integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== - dependencies: - fdir "^6.5.0" - picomatch "^4.0.3" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -totalist@^3.0.0: - version "3.0.1" - resolved "https://registry.npmmirror.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" - integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== - -twemoji-parser@14.0.0: - version "14.0.0" - resolved "https://registry.npmmirror.com/twemoji-parser/-/twemoji-parser-14.0.0.tgz#13dabcb6d3a261d9efbf58a1666b182033bf2b62" - integrity sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA== - -twemoji@14.0.2, twemoji@^14.0.2: - version "14.0.2" - resolved "https://registry.npmmirror.com/twemoji/-/twemoji-14.0.2.tgz#c53adb01dab22bf4870f648ca8cc347ce99ee37e" - integrity sha512-BzOoXIe1QVdmsUmZ54xbEH+8AgtOKUiG53zO5vVP2iUu6h5u9lN15NcuS6te4OY96qx0H7JK9vjjl9WQbkTRuA== - dependencies: - fs-extra "^8.0.1" - jsonfile "^5.0.0" - twemoji-parser "14.0.0" - universalify "^0.1.2" - -type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typescript@^4.9.4: - version "4.9.5" - resolved "https://registry.npmmirror.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -ufo@^1.6.1: - version "1.6.1" - resolved "https://registry.npmmirror.com/ufo/-/ufo-1.6.1.tgz#ac2db1d54614d1b22c1d603e3aef44a85d8f146b" - integrity sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA== - -unconfig-core@7.4.1: - version "7.4.1" - resolved "https://registry.npmmirror.com/unconfig-core/-/unconfig-core-7.4.1.tgz#57cbea6ea1b066f83450d794373544b178cfe8fd" - integrity sha512-Bp/bPZjV2Vl/fofoA2OYLSnw1Z0MOhCX7zHnVCYrazpfZvseBbGhwcNQMxsg185Mqh7VZQqK3C8hFG/Dyng+yA== - dependencies: - "@quansync/fs" "^0.1.5" - quansync "^0.2.11" - -unconfig@^7.4.1: - version "7.4.1" - resolved "https://registry.npmmirror.com/unconfig/-/unconfig-7.4.1.tgz#7e42c5e9cdfef90bad84d80cb498bbefef10cfdc" - integrity sha512-uyQ7LElcGizrOGZyIq9KU+xkuEjcRf9IpmDTkCSYv5mEeZzrXSj6rb51C0L+WTedsmAoVxW9WKrLWhSwebIM9Q== - dependencies: - "@quansync/fs" "^0.1.5" - defu "^6.1.4" - jiti "^2.6.1" - quansync "^0.2.11" - unconfig-core "7.4.1" - -undici-types@~7.16.0: - version "7.16.0" - resolved "https://registry.npmmirror.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" - integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.1" - resolved "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" - integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.2.1: - version "2.2.1" - resolved "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa" - integrity sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.2.0" - resolved "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz#301d4f8a43d2b75c97adfad87c9dd5350c9475d1" - integrity sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ== - -unimport@^3.11.1, unimport@^3.13.4: - version "3.14.6" - resolved "https://registry.npmmirror.com/unimport/-/unimport-3.14.6.tgz#f01170aa2fb94c4f97b22c0ac2822ef7e8e0726d" - integrity sha512-CYvbDaTT04Rh8bmD8jz3WPmHYZRG/NnvYVzwD6V1YAlvvKROlAeNDUBhkBGzNav2RKaeuXvlWYaa1V4Lfi/O0g== - dependencies: - "@rollup/pluginutils" "^5.1.4" - acorn "^8.14.0" - escape-string-regexp "^5.0.0" - estree-walker "^3.0.3" - fast-glob "^3.3.3" - local-pkg "^1.0.0" - magic-string "^0.30.17" - mlly "^1.7.4" - pathe "^2.0.1" - picomatch "^4.0.2" - pkg-types "^1.3.0" - scule "^1.3.0" - strip-literal "^2.1.1" - unplugin "^1.16.1" - -universal-emoji-parser@1.0.125: - version "1.0.125" - resolved "https://registry.npmmirror.com/universal-emoji-parser/-/universal-emoji-parser-1.0.125.tgz#53a7bb746617eb92abf874c78ad559c8cebbd913" - integrity sha512-3hHLn7zDQnE6/I5Qz6fVWjOart+ztYJkFuyBmJhv+roAXuJ2I4Iotfh6Aw3q5credzAyMPLn7KykOMgCX5AE4A== - dependencies: - twemoji "14.0.2" - -universalify@^0.1.0, universalify@^0.1.2: - version "0.1.2" - resolved "https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.1" - resolved "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" - integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== - -unocss-preset-weapp@^66.0.2: - version "66.0.2" - resolved "https://registry.npmmirror.com/unocss-preset-weapp/-/unocss-preset-weapp-66.0.2.tgz#4932bb980fe917c92d67cf6279cbaa72af8624dd" - integrity sha512-K6H6we8WlTO1Lf1rLLeyPOKyqEWkO/r9z8/z1CTEnHgeZMYMvIE7lQa7GFyDQ/qYzU/By8OtJ5TcIRqp/2SbIw== - dependencies: - "@rollup/pluginutils" "^5.1.4" - "@unocss/core" "^66.1.3" - "@unocss/extractor-arbitrary-variants" "^66.1.3" - "@unocss/rule-utils" "^66.1.3" - unplugin-attributify-to-class "^0.2.5" - unplugin-transform-class "^0.6.0" - -unocss@^66.5.6: - version "66.5.6" - resolved "https://registry.npmmirror.com/unocss/-/unocss-66.5.6.tgz#cffd35783ff796bbd4c2c1b5036d3fb9324e4ed9" - integrity sha512-8ix8Cl09LNd1QdC2b22FJ5WbyBaNZ2Q0oJ3yhjj2AEe75A8pMBpb8Khd01b4coRillEzuBNBIP+fIpeot0/8EQ== - dependencies: - "@unocss/astro" "66.5.6" - "@unocss/cli" "66.5.6" - "@unocss/core" "66.5.6" - "@unocss/postcss" "66.5.6" - "@unocss/preset-attributify" "66.5.6" - "@unocss/preset-icons" "66.5.6" - "@unocss/preset-mini" "66.5.6" - "@unocss/preset-tagify" "66.5.6" - "@unocss/preset-typography" "66.5.6" - "@unocss/preset-uno" "66.5.6" - "@unocss/preset-web-fonts" "66.5.6" - "@unocss/preset-wind" "66.5.6" - "@unocss/preset-wind3" "66.5.6" - "@unocss/preset-wind4" "66.5.6" - "@unocss/transformer-attributify-jsx" "66.5.6" - "@unocss/transformer-compile-class" "66.5.6" - "@unocss/transformer-directives" "66.5.6" - "@unocss/transformer-variant-group" "66.5.6" - "@unocss/vite" "66.5.6" - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -unplugin-attributify-to-class@^0.2.5: - version "0.2.5" - resolved "https://registry.npmmirror.com/unplugin-attributify-to-class/-/unplugin-attributify-to-class-0.2.5.tgz#efd588f5c609d40f5be73d6cb58a6ad8b07d35e0" - integrity sha512-0lTUi01mI19PmTTX4420QO6gJFic1wK4LqNnHeBNDrthQEKI0xw/lYg0bGnWYgPmyqXz88hAdLG+ibaypibXqg== - dependencies: - "@rollup/pluginutils" "^5.0.5" - unplugin "^1.5.0" - unplugin-transform-class "^0.5.1" - -unplugin-auto-import@^0.18.2: - version "0.18.6" - resolved "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.18.6.tgz#6848bef1742bc457f42cf67a13e824f69debc889" - integrity sha512-LMFzX5DtkTj/3wZuyG5bgKBoJ7WSgzqSGJ8ppDRdlvPh45mx6t6w3OcbExQi53n3xF5MYkNGPNR/HYOL95KL2A== - dependencies: - "@antfu/utils" "^0.7.10" - "@rollup/pluginutils" "^5.1.3" - fast-glob "^3.3.2" - local-pkg "^0.5.1" - magic-string "^0.30.14" - minimatch "^9.0.5" - unimport "^3.13.4" - unplugin "^1.16.0" - -unplugin-transform-class@^0.5.1: - version "0.5.3" - resolved "https://registry.npmmirror.com/unplugin-transform-class/-/unplugin-transform-class-0.5.3.tgz#90eae5510a6b3564affcae676cef491452541951" - integrity sha512-4xBvfoeBDqlqi9aD0Hv3TTs8JpRs2h9l8LBMXIRXFNTf8biRk6hAQir+zEM/GpBKoMzvt7JqqbMIYzMazQZysQ== - dependencies: - "@meoc/utils" "^0.2.8" - "@rollup/pluginutils" "^5.1.0" - unplugin "1.7.1" - -unplugin-transform-class@^0.6.0: - version "0.6.0" - resolved "https://registry.npmmirror.com/unplugin-transform-class/-/unplugin-transform-class-0.6.0.tgz#b6fb971a5b92d6d9e83ca31b0fdf2dafb9910493" - integrity sha512-6aYNOH6hEVbi38mc7yDQD7kEDESuLJ3FfB9/rB2vHZobK4ajDS6Jkh5EktJF4Ubkz/hQizpjZ4+XS1aMOM82yg== - dependencies: - "@meoc/utils" "^0.2.10" - "@rollup/pluginutils" "^5.1.4" - unplugin "2.3.2" - -unplugin-utils@^0.3.1: - version "0.3.1" - resolved "https://registry.npmmirror.com/unplugin-utils/-/unplugin-utils-0.3.1.tgz#ef2873670a6a2a21bd2c9d31307257cc863a709c" - integrity sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog== - dependencies: - pathe "^2.0.3" - picomatch "^4.0.3" - -unplugin@1.7.1: - version "1.7.1" - resolved "https://registry.npmmirror.com/unplugin/-/unplugin-1.7.1.tgz#009571e3128640f4e327f33680d2db27afaf1e11" - integrity sha512-JqzORDAPxxs8ErLV4x+LL7bk5pk3YlcWqpSNsIkAZj972KzFZLClc/ekppahKkOczGkwIG6ElFgdOgOlK4tXZw== - dependencies: - acorn "^8.11.3" - chokidar "^3.5.3" - webpack-sources "^3.2.3" - webpack-virtual-modules "^0.6.1" - -unplugin@2.3.2: - version "2.3.2" - resolved "https://registry.npmmirror.com/unplugin/-/unplugin-2.3.2.tgz#36c93a1662b70c97a2e2fc45c0e78fa09f7a4984" - integrity sha512-3n7YA46rROb3zSj8fFxtxC/PqoyvYQ0llwz9wtUPUutr9ig09C8gGo5CWCwHrUzlqC1LLR43kxp5vEIyH1ac1w== - dependencies: - acorn "^8.14.1" - picomatch "^4.0.2" - webpack-virtual-modules "^0.6.2" - -unplugin@^1.16.0, unplugin@^1.16.1, unplugin@^1.5.0: - version "1.16.1" - resolved "https://registry.npmmirror.com/unplugin/-/unplugin-1.16.1.tgz#a844d2e3c3b14a4ac2945c42be80409321b61199" - integrity sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w== - dependencies: - acorn "^8.14.0" - webpack-virtual-modules "^0.6.2" - -unquote@^1.1.1: - version "1.1.1" - resolved "https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg== - -update-browserslist-db@^1.1.4: - version "1.1.4" - resolved "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz#7802aa2ae91477f255b86e0e46dbc787a206ad4a" - integrity sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.1" - -utif@^2.0.1: - version "2.0.1" - resolved "https://registry.npmmirror.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759" - integrity sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== - dependencies: - pako "^1.0.5" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== - -vconsole@^3.15.0: - version "3.15.1" - resolved "https://registry.npmmirror.com/vconsole/-/vconsole-3.15.1.tgz#569a8ab15f353259527bbcf004f02946b4482cff" - integrity sha512-KH8XLdrq9T5YHJO/ixrjivHfmF2PC2CdVoK6RWZB4yftMykYIaXY1mxZYAic70vADM54kpMQF+dYmvl5NRNy1g== - dependencies: - "@babel/runtime" "^7.17.2" - copy-text-to-clipboard "^3.0.1" - core-js "^3.11.0" - mutation-observer "^1.0.3" - -vite-plugin-compression@^0.5.1: - version "0.5.1" - resolved "https://registry.npmmirror.com/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz#a75b0d8f48357ebb377b65016da9f20885ef39b6" - integrity sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg== - dependencies: - chalk "^4.1.2" - debug "^4.3.3" - fs-extra "^10.0.0" - -vite@5.2.8: - version "5.2.8" - resolved "https://registry.npmmirror.com/vite/-/vite-5.2.8.tgz#a99e09939f1a502992381395ce93efa40a2844aa" - integrity sha512-OyZR+c1CE8yeHw5V5t59aXsUPPVTHMDjEZz8MgguLL/Q7NblxhZUlTu9xSPqlsUO/y+X7dlU05jdhvyycD55DA== - dependencies: - esbuild "^0.20.1" - postcss "^8.4.38" - rollup "^4.13.0" - optionalDependencies: - fsevents "~2.3.3" - -vue-demi@^0.12.1: - version "0.12.5" - resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.5.tgz#8eeed566a7d86eb090209a11723f887d28aeb2d1" - integrity sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q== - -vue-demi@^0.14.10: - version "0.14.10" - resolved "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" - integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== - -vue-flow-layout@^0.2.0: - version "0.2.0" - resolved "https://registry.npmmirror.com/vue-flow-layout/-/vue-flow-layout-0.2.0.tgz#3ea4e388a213f23d4653b45255b75b760701cd23" - integrity sha512-zKgsWWkXq0xrus7H4Mc+uFs1ESrmdTXlO0YNbR6wMdPaFvosL3fMB8N7uTV308UhGy9UvTrGhIY7mVz9eN+L0Q== - -vue-i18n@^9.1.9: - version "9.14.5" - resolved "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-9.14.5.tgz#72fbf4384b83a1c59ec9e01ff5d30224bd9150cf" - integrity sha512-0jQ9Em3ymWngyiIkj0+c/k7WgaPO+TNzjKSNq9BvBQaKJECqn9cd9fL4tkDhB5G1QBskGl9YxxbDAhgbFtpe2g== - dependencies: - "@intlify/core-base" "9.14.5" - "@intlify/shared" "9.14.5" - "@vue/devtools-api" "^6.5.0" - -vue-router@^4.3.0: - version "4.6.3" - resolved "https://registry.npmmirror.com/vue-router/-/vue-router-4.6.3.tgz#52a40a231b910806438a8203c065a411fd3f1faa" - integrity sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg== - dependencies: - "@vue/devtools-api" "^6.6.4" - -vue-template-compiler@^2.7.14: - version "2.7.16" - resolved "https://registry.npmmirror.com/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz#c81b2d47753264c77ac03b9966a46637482bb03b" - integrity sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ== - dependencies: - de-indent "^1.0.2" - he "^1.2.0" - -vue-tsc@^1.0.24: - version "1.8.27" - resolved "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.8.27.tgz#feb2bb1eef9be28017bb9e95e2bbd1ebdd48481c" - integrity sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg== - dependencies: - "@volar/typescript" "~1.11.1" - "@vue/language-core" "1.8.27" - semver "^7.5.4" - -vue@^3.4.21: - version "3.5.24" - resolved "https://registry.npmmirror.com/vue/-/vue-3.5.24.tgz#1b93af349faa064f46e70ac5b0caaa3d0952bbf3" - integrity sha512-uTHDOpVQTMjcGgrqFPSb8iO2m1DUvo+WbGqoXQz8Y1CeBYQ0FXf2z1gLRaBtHjlRz7zZUBHxjVB5VTLzYkvftg== - dependencies: - "@vue/compiler-dom" "3.5.24" - "@vue/compiler-sfc" "3.5.24" - "@vue/runtime-dom" "3.5.24" - "@vue/server-renderer" "3.5.24" - "@vue/shared" "3.5.24" - -webpack-sources@^3.2.3: - version "3.3.3" - resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.3.3.tgz#d4bf7f9909675d7a070ff14d0ef2a4f3c982c723" - integrity sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg== - -webpack-virtual-modules@^0.6.1, webpack-virtual-modules@^0.6.2: - version "0.6.2" - resolved "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz#057faa9065c8acf48f24cb57ac0e77739ab9a7e8" - integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== - -weixin-js-sdk@^1.6.0: - version "1.6.5" - resolved "https://registry.npmmirror.com/weixin-js-sdk/-/weixin-js-sdk-1.6.5.tgz#01fe5220b91dbfe089fc0730d061be0e68271e6a" - integrity sha512-Gph1WAWB2YN/lMOFB/ymb+hbU/wYazzJgu6PMMktCy9cSCeW5wA6Zwt0dpahJbJ+RJEwtTv2x9iIu0U4enuVSQ== - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -ws@^8.4.2: - version "8.18.3" - resolved "https://registry.npmmirror.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" - integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== - -xhr@^2.0.1: - version "2.6.0" - resolved "https://registry.npmmirror.com/xhr/-/xhr-2.6.0.tgz#b69d4395e792b4173d6b7df077f0fc5e4e2b249d" - integrity sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== - dependencies: - global "~4.4.0" - is-function "^1.0.1" - parse-headers "^2.0.0" - xtend "^4.0.0" - -xml-parse-from-string@^1.0.0: - version "1.0.1" - resolved "https://registry.npmmirror.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" - integrity sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g== - -xml2js@^0.5.0: - version "0.5.0" - resolved "https://registry.npmmirror.com/xml2js/-/xml2js-0.5.0.tgz#d9440631fbb2ed800203fad106f2724f62c493b7" - integrity sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.npmmirror.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - -xmlhttprequest@^1.8.0: - version "1.8.0" - resolved "https://registry.npmmirror.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" - integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== - -xregexp@3.1.0: - version "3.1.0" - resolved "https://registry.npmmirror.com/xregexp/-/xregexp-3.1.0.tgz#14d8461e0bdd38224bfee5039a0898fc42fcd336" - integrity sha512-4Y1x6DyB8xRoxosooa6PlGWqmmSKatbzhrftZ7Purmm4B8R4qIEJG1A2hZsdz5DhmIqS0msC0I7KEq93GphEVg== - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yaml@^1.10.2, yaml@^1.7.2: - version "1.10.2" - resolved "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==