@hysc/meeting 10.5.5 → 10.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/index.d.mts +2 -1
  2. package/dist/index.d.ts +2 -1
  3. package/dist/index.js +2 -2
  4. package/dist/index.mjs +2 -2
  5. package/package.json +1 -1
  6. package/umd/index.js +25 -0
  7. package/umd/src/BMChat/BMChatVM.d.ts +28 -0
  8. package/umd/src/BMChat/BMMessageInfo.d.ts +32 -0
  9. package/umd/src/BMRoom/BMLiveVM.d.ts +36 -0
  10. package/umd/src/BMRoom/BMRoom.d.ts +740 -0
  11. package/umd/src/BMRoom/BMRoomInfo.d.ts +222 -0
  12. package/umd/src/BMRoom/BMRoomVM.d.ts +329 -0
  13. package/umd/src/BMRoom/RoomEvent.d.ts +1 -0
  14. package/umd/src/BMStream/BMSpeaker.d.ts +26 -0
  15. package/umd/src/BMStream/BMStreamModel.d.ts +311 -0
  16. package/umd/src/BMStream/BMStreamModelVM.d.ts +281 -0
  17. package/umd/src/BMStream/getHTMLMediaStreamOptions.d.ts +35 -0
  18. package/umd/src/BMStream/sortStream.d.ts +30 -0
  19. package/umd/src/BMUser/BMUser.d.ts +173 -0
  20. package/umd/src/BMUser/BMUserVM.d.ts +188 -0
  21. package/umd/src/SingletonQueue/SingletonQueue.d.ts +16 -0
  22. package/umd/src/audioPlay/AudioPlay.d.ts +31 -0
  23. package/umd/src/bjy-common/function/debounce.d.ts +9 -0
  24. package/umd/src/bjy-common/function/execute.d.ts +9 -0
  25. package/umd/src/bjy-common/function/getErrorMessage.d.ts +1 -0
  26. package/umd/src/bjy-common/function/isDef.d.ts +1 -0
  27. package/umd/src/bjy-common/function/isNative.d.ts +1 -0
  28. package/umd/src/bjy-common/function/isUndef.d.ts +1 -0
  29. package/umd/src/bjy-common/function/nextTick.d.ts +2 -0
  30. package/umd/src/bjy-common/function/throttling.d.ts +9 -0
  31. package/umd/src/bjy-common/function/toNumber.d.ts +1 -0
  32. package/umd/src/bjy-common/function/toString.d.ts +1 -0
  33. package/umd/src/bjy-common/type/api.d.ts +66 -0
  34. package/umd/src/bjy-common/type/options.d.ts +7 -0
  35. package/umd/src/bjy-common/type/type.d.ts +90 -0
  36. package/umd/src/bjy-common/util/CustomEvent.d.ts +30 -0
  37. package/umd/src/bjy-common/util/Emitter.d.ts +57 -0
  38. package/umd/src/bjy-common/util/NextTask.d.ts +28 -0
  39. package/umd/src/bjy-common/util/Sleep.d.ts +14 -0
  40. package/umd/src/bjy-common/util/Timer.d.ts +13 -0
  41. package/umd/src/bjy-common/util/array.d.ts +96 -0
  42. package/umd/src/bjy-common/util/browser.d.ts +6 -0
  43. package/umd/src/bjy-common/util/constant.d.ts +50 -0
  44. package/umd/src/bjy-common/util/holder.d.ts +6 -0
  45. package/umd/src/bjy-common/util/is.d.ts +49 -0
  46. package/umd/src/bjy-common/util/keypath.d.ts +41 -0
  47. package/umd/src/bjy-common/util/logger.d.ts +42 -0
  48. package/umd/src/bjy-common/util/network.d.ts +4 -0
  49. package/umd/src/bjy-common/util/object.d.ts +83 -0
  50. package/umd/src/bjy-common/util/os.d.ts +14 -0
  51. package/umd/src/bjy-common/util/string.d.ts +102 -0
  52. package/umd/src/constants.d.ts +130 -0
  53. package/umd/src/error/RTCError.d.ts +20 -0
  54. package/umd/src/error/errorMap.d.ts +70 -0
  55. package/umd/src/error/errorType.d.ts +96 -0
  56. package/umd/src/handleEvent/attachEvents.d.ts +47 -0
  57. package/umd/src/handleEvent/brtcNetEvent.d.ts +9 -0
  58. package/umd/src/handleEvent/customMessageEvent.d.ts +2 -0
  59. package/umd/src/handleEvent/handleParticipantEvent.d.ts +24 -0
  60. package/umd/src/handleEvent/handleRoomEvent.d.ts +20 -0
  61. package/umd/src/handleEvent/messageEvent.d.ts +5 -0
  62. package/umd/src/handleEvent/pullUser.d.ts +7 -0
  63. package/umd/src/handleEvent/roomErrEvent.d.ts +9 -0
  64. package/umd/src/handleEvent/streamEvent.d.ts +22 -0
  65. package/umd/src/index.d.ts +13 -0
  66. package/umd/src/logger/logger.d.ts +86 -0
  67. package/umd/src/type/customStats.d.ts +129 -0
  68. package/umd/src/type/index.d.ts +9 -0
  69. package/umd/src/type/stream.d.ts +12 -0
  70. package/umd/src/type/user.d.ts +9 -0
  71. package/umd/src/util/PackLoss.d.ts +7 -0
  72. package/umd/src/util/Pqueue.d.ts +62 -0
  73. package/umd/src/util/Privileges.d.ts +20 -0
  74. package/umd/src/util/ReportCollector.d.ts +22 -0
  75. package/umd/src/util/Stutter.d.ts +19 -0
  76. package/umd/src/util/Thread.d.ts +12 -0
  77. package/umd/src/util/base64.d.ts +4 -0
  78. package/umd/src/util/benchmark.d.ts +1 -0
  79. package/umd/src/util/checkPermissions.d.ts +1 -0
  80. package/umd/src/util/checkSystemRequirements.d.ts +1 -0
  81. package/umd/src/util/constant.d.ts +67 -0
  82. package/umd/src/util/devices.d.ts +2 -0
  83. package/umd/src/util/emitter.d.ts +45 -0
  84. package/umd/src/util/formatUserId.d.ts +2 -0
  85. package/umd/src/util/is.d.ts +70 -0
  86. package/umd/src/util/peerToPeerProbe.d.ts +9 -0
  87. package/umd/src/util/request.d.ts +45 -0
  88. package/umd/src/util/roomUtils.d.ts +9 -0
  89. package/umd/src/util/sortUtils.d.ts +10 -0
  90. package/umd/src/util/util.d.ts +81 -0
@@ -0,0 +1,173 @@
1
+ import BMStreamModel from '../BMStream/BMStreamModel';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { BCUser } from "@hysc/core";
4
+ import BMRoom from '../BMRoom/BMRoom';
5
+ export declare type Operation = 'none' | 'getMaster' | 'getManager' | 'removeMaster' | 'getGuest' | 'removeGuest' | 'removeManager' | 'changeNickName' | 'speakerEnable' | 'changeShare' | 'updateUser' | 'raiseHandsVideo' | 'raiseHandsAudio' | 'audienceEnableSpeaking' | 'inBackground' | 'raiseHand' | 'isCalling';
6
+ interface IUserActionWatcher {
7
+ operation: Operation;
8
+ user: BMUser;
9
+ }
10
+ interface UserInfo {
11
+ avatar: string;
12
+ jointime: number;
13
+ nickname: string;
14
+ pos: string;
15
+ userId: string;
16
+ status?: {
17
+ audioRaiseHands: boolean;
18
+ videoRaiseHands: boolean;
19
+ };
20
+ }
21
+ export interface RaiseHandInfo {
22
+ status: 'raiseHandsAudio' | 'raiseHandsVideo' | 'raiseHand';
23
+ user: BMUser;
24
+ }
25
+ export default class BMUser {
26
+ /**
27
+ * 用户id
28
+ */
29
+ userId: string;
30
+ /**
31
+ * 用户信息
32
+ */
33
+ userInfo: UserInfo;
34
+ customInfo?: any;
35
+ nickName: string;
36
+ isMaster: boolean;
37
+ isManager: boolean;
38
+ mirror: boolean;
39
+ isLocal: boolean;
40
+ isToupingma: boolean;
41
+ /**是否有多路流 */
42
+ hasMultiple: boolean;
43
+ /**这个人是不是这个房间的创建者 */
44
+ isCreate: boolean;
45
+ /** 当前人是否在屏幕共享 */
46
+ hasShare: boolean;
47
+ /** 观众时是否允许发言 */
48
+ audienceEnableSpeaking: boolean;
49
+ /** 头像 */
50
+ avatar: string;
51
+ private streamModels;
52
+ permission: any;
53
+ /**
54
+ * 监听器, 监听返回对象属性
55
+ * @property {string} operation
56
+ * 'getManager':获得管理员权限/成为联席主持人
57
+ * 'getMaster':成为主持人
58
+ * 'removeManager':取消管理员权限/取消联席主持人
59
+ * 'removeMaster':取消主持人
60
+ * 'changeNickName':改变昵称
61
+ * 'speakerEnable':扬声器开关状态改变
62
+ * 'changeShare': 是否在屏幕共享
63
+ * 'raiseHandsVideo': 是否视频举手
64
+ * 'raiseHandsAudio': 是否音频举手
65
+ * 'raiseHand':单纯的举手
66
+ * @property {BMUser} user
67
+ */
68
+ watcher: BehaviorSubject<IUserActionWatcher>;
69
+ /**
70
+ * 排序
71
+ */
72
+ sortNum: number;
73
+ /**
74
+ * 举手相关
75
+ */
76
+ raiseVideoHands: boolean;
77
+ raiseAudioHands: boolean;
78
+ raiseHand: boolean;
79
+ /**
80
+ * 观众
81
+ */
82
+ isAudience: boolean;
83
+ /**
84
+ * 普通参会者
85
+ */
86
+ isCommonUser: boolean;
87
+ /**
88
+ * 如果改用户是移动端, 该值用于判断这个用户是否在后台
89
+ */
90
+ inBackground: boolean;
91
+ /**
92
+ * 是否正在通话中
93
+ */
94
+ isCalling: boolean;
95
+ raiseHandTime: number;
96
+ signals: any[];
97
+ /**
98
+ * 是不是web端入会
99
+ */
100
+ get isWeb(): boolean;
101
+ /**
102
+ * 是不是电话入会
103
+ */
104
+ get isMobile(): boolean;
105
+ constructor(user: any, isLocal?: boolean);
106
+ setup(userId: string, userinfo: UserInfo, nickname: string, customInfo?: any): void;
107
+ getMainStreamModel(): BMStreamModel | undefined;
108
+ get nickname(): string;
109
+ getShareStreamModel(): BMStreamModel | undefined;
110
+ /**
111
+ * 获取用户麦克风开启状态
112
+ */
113
+ get audioEnable(): boolean;
114
+ get isMixer(): boolean;
115
+ /**
116
+ * 获取用户视频开启状态
117
+ */
118
+ get videoEnable(): boolean;
119
+ get isSharing(): boolean;
120
+ /**
121
+ * 是否是信号源
122
+ */
123
+ get isSignal(): boolean;
124
+ /**
125
+ * 检测当前用户是否有主持人权限
126
+ */
127
+ checkLocalHasMaster(): boolean;
128
+ /**
129
+ * 给用户添加流
130
+ * @param streamId
131
+ * @param stream 流
132
+ */
133
+ addStream(streamId: string, stream: BMStreamModel): void;
134
+ /**
135
+ * 删除流
136
+ * @param streamId
137
+ */
138
+ removeStream(streamId: string): void;
139
+ /**
140
+ * 获取用户id
141
+ */
142
+ getID(): string;
143
+ /**
144
+ * 获取用户昵称
145
+ */
146
+ getNickName(): string;
147
+ /**
148
+ * 获取用户信息
149
+ */
150
+ getUserInfo(): UserInfo;
151
+ /**
152
+ * 获取用户流信息
153
+ */
154
+ getStreams(): Map<string, BMStreamModel>;
155
+ /**
156
+ * updateUserInfo更新用户信息(除了isMaster,isMaster是通过change-master事件改变的)
157
+ * @param bcUser
158
+ * @param participant
159
+ * @param bmRoom
160
+ * @returns
161
+ */
162
+ updateUserInfo(bcUser: BCUser, participant: any, bmRoom: BMRoom): void;
163
+ /** 是否有管理权限, 是主持人或联席主持人之一 */
164
+ hasManager(): boolean;
165
+ /** 获取用户后面的身份标识 */
166
+ getNicknameSuffix(): string;
167
+ /**
168
+ * 更新当前用户的排序
169
+ */
170
+ updateSortNum(force?: boolean, shouldDelay?: boolean): void;
171
+ setSortNum(sortNum: number, force: boolean, shouldDelay: boolean): void;
172
+ }
173
+ export {};
@@ -0,0 +1,188 @@
1
+ import BCClient from '@hysc/core';
2
+ import BMUser from "./BMUser";
3
+ import { BCUser } from "@hysc/core";
4
+ import BMRoom from "../BMRoom/BMRoom";
5
+ import { BehaviorSubject } from "rxjs";
6
+ import { UpdateMasterType } from '../type';
7
+ import { UserSortType } from "../util/emitter";
8
+ /**
9
+ * 往业务端返回的时候,需要把这些用户过滤掉
10
+ */
11
+ export declare const ignoreUserId: string[];
12
+ export interface ChangeIsGuest {
13
+ user: BMUser;
14
+ preIsGuest: boolean;
15
+ isGuest: boolean;
16
+ }
17
+ /**
18
+ * bloud 一页用户拉取数量
19
+ */
20
+ export declare const BLOUD_PAGE_SIZE = 500;
21
+ /**
22
+ * 嘉宾及以上身份用户
23
+ */
24
+ export declare const PERMISSION_NOT_COMMON = "RWPSAVMO,RWPSAVM,RWPSAV,RWPSA";
25
+ export default class BMUserVM {
26
+ /** 嘉宾及以上列表 */
27
+ userList: Map<string, BMUser>;
28
+ /** 观众列表 */
29
+ audiencesList: Map<string, BMUser>;
30
+ signalList: Map<string, BMUser>;
31
+ /** 大房间,普通参会者列表 */
32
+ commonUserList: Map<string, BMUser>;
33
+ boomCore: BCClient;
34
+ room: BMRoom;
35
+ /** 嘉宾及以上列表 */
36
+ userListWatcher: BehaviorSubject<BMUser[]>;
37
+ /** 观众列表 */
38
+ audiencesListWatcher: BehaviorSubject<BMUser[]>;
39
+ /** 大房间,普通参会者列表 */
40
+ commonUserListWatcher: BehaviorSubject<BMUser[]>;
41
+ /** 信号源列表 */
42
+ signalListWatcher: BehaviorSubject<BMUser[]>;
43
+ masterUserWatcher: BehaviorSubject<BMUser | null>;
44
+ getForceUserWatcher: BehaviorSubject<boolean>;
45
+ localUser: BMUser;
46
+ commTimer: number;
47
+ constructor(boomCore: BCClient, localUser: BMUser, room: BMRoom);
48
+ handleUserRoleChange(info: ChangeIsGuest): Promise<void>;
49
+ /**
50
+ * 添加用户, 并返回已添加的用户对象
51
+ * @param bcUser bcUser对象
52
+ */
53
+ addUser(bcUser: BCUser): BMUser;
54
+ /**
55
+ * 移除用户
56
+ * @param userId 用户id
57
+ */
58
+ removeUser(userId: string): boolean;
59
+ /**
60
+ * 获取用户视频开启状态
61
+ * @param userId 用户id
62
+ */
63
+ videoEnable(userId: string): boolean;
64
+ /**
65
+ * 获取用户音频开启状态
66
+ * @param userId
67
+ */
68
+ audioEnable(userId: string): boolean;
69
+ /**
70
+ * 检测用户是不是主持人
71
+ * @param {string} userId 用户id
72
+ */
73
+ checkIsMaster(userId: any): boolean;
74
+ /**
75
+ * 检测当前用户是否有主持人权限
76
+ */
77
+ checkLocalHasMaster(): boolean;
78
+ /**
79
+ * 检测目标用户是否有主持人权限
80
+ */
81
+ checkUserHasMaster(userId: string): boolean;
82
+ /**
83
+ * 根据用户id获取user对象
84
+ * @param {string} userId
85
+ */
86
+ getUser(userId: string): BMUser | undefined;
87
+ getAllUsers(pageIndex: number, allUsers: Map<string, BCUser>, permission?: string, useNew?: boolean): Promise<void>;
88
+ /**
89
+ * 刚加入房间时初始化人数
90
+ */
91
+ initUserList(usersInRoom: Map<string, BCUser>): Promise<void>;
92
+ addBcUsersMap(users: Map<string, BCUser>, forceGetStream?: boolean, updateSort?: boolean): void;
93
+ addBCUser: (bcUser: BCUser, forceGetStream?: boolean, updateSort?: boolean) => BMUser | undefined;
94
+ /**
95
+ * 改变userList中的主持人,返回改变后的主持人用户对象,该方法只在change-master中调用, 不对外暴露
96
+ * @param userId
97
+ * @param oldMasterId
98
+ * @param isKeep
99
+ */
100
+ updateMaster(userId: string, oldMasterId: string, isKeep: boolean): UpdateMasterType;
101
+ /**
102
+ * 联席主持人设置嘉宾的操作
103
+ * @param userId
104
+ */
105
+ managerChangeToGuest(userId: string): BMUser | undefined;
106
+ /**
107
+ * 改变联席主持人,返回设置为联席主持人的bmuser对象
108
+ * @param userId
109
+ * @param status true:设置成联席主持人 false:取消联席主持人身份
110
+ * @param hasS
111
+ * @returns
112
+ */
113
+ updateManager(userId: string, status: boolean, hasS?: boolean): BMUser;
114
+ /**
115
+ * 获取我自己
116
+ */
117
+ getLocalUser(): BMUser;
118
+ updateUser(bmUser: BMUser, bcUser: BCUser): void;
119
+ updateLocalUserPermission(permission: string): void;
120
+ /**
121
+ * bcUser变成BMUser
122
+ * @param bcUser
123
+ * @returns
124
+ */
125
+ toBMUser(bcUser: BCUser): BMUser;
126
+ private sortUsers;
127
+ private sortAudiences;
128
+ private sortCommonUsers;
129
+ private sortSignalUsers;
130
+ private static filterUsers;
131
+ /**
132
+ * 排序变化之后的处理逻辑
133
+ */
134
+ updateAllSort: () => void;
135
+ updateSortByType: (userType: UserSortType) => void;
136
+ updateUserSort: any;
137
+ updateCommonUserSort: any;
138
+ updateDelayCommonUserSort: any;
139
+ updateAudienceUserSort: any;
140
+ updateSignalUserSort: () => void;
141
+ /**
142
+ * 初始化所有的用户
143
+ */
144
+ initUsers(): Promise<void>;
145
+ /**
146
+ * 把bloud用户转化为当前的BMUser 和创建对应的BMStreamModel
147
+ * @param page
148
+ * @param permission
149
+ * @param useNew 是否使用getUsersList
150
+ */
151
+ transBloudUsers: (page: number, permission?: string, useNew?: boolean, failedNum?: number) => Promise<void>;
152
+ /**
153
+ * 本地嘉宾用户降级为普通参会者之后要取消拉流
154
+ */
155
+ handleUnSubCommonUser(): void;
156
+ handleCommonUserChange(): void;
157
+ getUsers(page: number, pageSize: number, permission?: string, mode?: 'map' | 'array'): Promise<{
158
+ userList: Map<string, BMUser>;
159
+ total: number;
160
+ } | {
161
+ userList: BMUser[];
162
+ total: number;
163
+ }>;
164
+ getUsersList(page: number, pageSize: number, permission?: string, waitRoom?: boolean): Promise<{
165
+ userList: BMUser[];
166
+ total: number;
167
+ pageIndex: number;
168
+ }>;
169
+ getTotalUserNumber(): Promise<number>;
170
+ clearUsers(): void;
171
+ /**
172
+ * 参会者列表搜索(嘉宾及以上才能搜索)
173
+ * @param searchTxt 搜索文本
174
+ * @param pageSize 一页几个
175
+ * @param waitRoom 是否是等候室用户
176
+ */
177
+ searchUsers(searchTxt: string, pageSize: number): Promise<{
178
+ userList: BMUser[];
179
+ commonUserList: BMUser[];
180
+ audienceList: BMUser[];
181
+ }>;
182
+ /**
183
+ * 查找等候室用户
184
+ * @param searchTxt
185
+ * @param pageSize
186
+ */
187
+ searchWaitRoomUsers(searchTxt: string, pageSize: number): Promise<BMUser[]>;
188
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @name: SingletonQueue
3
+ * @author: yangliye
4
+ * @date: 2023-05-18 09:47
5
+ * @description:SingletonQueue
6
+ * @update: 2023-05-18 09:47
7
+ */
8
+ import BMRoom, { PullItem } from "../BMRoom/BMRoom";
9
+ export default class SingletonQueue {
10
+ room: BMRoom;
11
+ pullMap: Map<string, PullItem>;
12
+ constructor(room: BMRoom);
13
+ addUser(pullInfo: PullItem): void;
14
+ removeUser(pullInfo: PullItem): void;
15
+ restart(): void;
16
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @name: AudioPlay.ts
3
+ * @author: yangliye
4
+ * @date: 2023-06-08 16:35
5
+ * @description:AudioPlay.ts
6
+ * @update: 2023-06-08 16:35
7
+ */
8
+ import { SingleRemoteStream, SingleStream } from "../type";
9
+ import { AudioPlayer } from '@hysc/core';
10
+ import BMRoom from "../BMRoom/BMRoom";
11
+ import { Subject } from "rxjs";
12
+ export default class AudioPlay {
13
+ playMap: WeakSet<SingleStream>;
14
+ playerMap: Map<string, AudioPlayer>;
15
+ container: HTMLDivElement | undefined;
16
+ muted: boolean;
17
+ room: BMRoom;
18
+ playStateChangeWatcher: Subject<AudioPlayer>;
19
+ deviceId?: string;
20
+ constructor(containerId: string, room: BMRoom);
21
+ addStream(stream: SingleRemoteStream, force?: boolean): void;
22
+ removeStream(stream: SingleStream): void;
23
+ removeStreamByUid(uid: string): void;
24
+ play(stream: SingleRemoteStream): Promise<void>;
25
+ mute(mute: boolean): void;
26
+ setVolume(streamId: string, volume: number): void;
27
+ setDevice(deviceId: string, force?: boolean): Promise<void>;
28
+ addPlayerEvent(player: AudioPlayer): void;
29
+ clear(): void;
30
+ destroy(): void;
31
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 节流调用
3
+ *
4
+ * @param fn 需要节制调用的函数
5
+ * @param delay 调用的时间间隔,单位毫秒
6
+ * @param immediate 是否立即触发
7
+ * @return 节流函数
8
+ */
9
+ export default function (fn: Function, delay: number, immediate?: boolean): () => void;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 任性地执行一个函数,不管它有没有、是不是
3
+ *
4
+ * @param fn 调用的函数
5
+ * @param context 执行函数时的 this 指向
6
+ * @param args 调用函数的参数,多参数时传入数组
7
+ * @return 调用函数的返回值
8
+ */
9
+ export default function (fn: any, context?: any, args?: any): any;
@@ -0,0 +1 @@
1
+ export default function getErrorMessage(error: any): string;
@@ -0,0 +1 @@
1
+ export default function (target: any): boolean;
@@ -0,0 +1 @@
1
+ export default function (target: any): boolean;
@@ -0,0 +1 @@
1
+ export default function (target: any): boolean;
@@ -0,0 +1,2 @@
1
+ declare let nextTick: Function;
2
+ export default nextTick;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * 节流调用
3
+ *
4
+ * @param fn 需要节制调用的函数
5
+ * @param delay 调用的时间间隔,单位毫秒
6
+ * @param immediate 是否立即触发
7
+ * @return 节流函数
8
+ */
9
+ export default function (fn: Function, delay: number, immediate?: boolean): Function;
@@ -0,0 +1 @@
1
+ export default function (target: any, defaultValue?: number): number;
@@ -0,0 +1 @@
1
+ export default function (target: any, defaultValue?: string): string;
@@ -0,0 +1,66 @@
1
+ import { Data, ValueHolder } from './type';
2
+ export interface ArrayApi {
3
+ each<T>(array: T[], callback: (item: T, index: number) => boolean | void, reversed?: boolean): void;
4
+ push<T>(array: T[], target: T | T[]): void;
5
+ unshift<T>(array: T[], target: T | T[]): void;
6
+ indexOf<T>(array: T[], target: T, strict?: boolean): number;
7
+ last<T>(array: T[]): T | void;
8
+ pop<T>(array: T[]): T | void;
9
+ remove<T>(array: T[], target: T, strict?: boolean): number;
10
+ has<T>(array: T[], target: T, strict?: boolean): boolean;
11
+ toArray<T>(array: T[] | ArrayLike<T>): T[];
12
+ toObject(array: any[], key?: string | null, value?: any): object;
13
+ join(array: string[], separator: string): string;
14
+ falsy(array: any): boolean;
15
+ }
16
+ export interface IsApi {
17
+ func(value: any): boolean;
18
+ array(value: any): boolean;
19
+ object(value: any): boolean;
20
+ string(value: any): boolean;
21
+ number(value: any): boolean;
22
+ boolean(value: any): boolean;
23
+ numeric(value: any): boolean;
24
+ }
25
+ export interface LoggerApi {
26
+ DEBUG: number;
27
+ INFO: number;
28
+ WARN: number;
29
+ ERROR: number;
30
+ FATAL: number;
31
+ debug(msg: string, tag?: string): void;
32
+ info(msg: string, tag?: string): void;
33
+ warn(msg: string, tag?: string): void;
34
+ error(msg: string, tag?: string): void;
35
+ fatal(msg: string, tag?: string): void;
36
+ }
37
+ export interface ObjectApi {
38
+ keys(object: Data): string[];
39
+ sort(object: Data, desc?: boolean): string[];
40
+ each(object: Data, callback: (value: any, key: string) => boolean | void): void;
41
+ clear(object: Data): void;
42
+ extend(original: Data, object: Data): Data;
43
+ merge(object1: Data | void, object2: Data | void): Data | void;
44
+ copy(object: any, deep?: boolean): any;
45
+ get(object: any, keypath: string): ValueHolder | undefined;
46
+ set(object: Data, keypath: string, value: any, autofill?: boolean): void;
47
+ has(object: Data, key: string | number): boolean;
48
+ falsy(object: any): boolean;
49
+ }
50
+ export interface StringApi {
51
+ camelize(str: string): string;
52
+ hyphenate(str: string): string;
53
+ capitalize(str: string): string;
54
+ trim(str: any): string;
55
+ slice(str: string, start: number, end?: number): string;
56
+ indexOf(str: string, part: string, start?: number): number;
57
+ lastIndexOf(str: string, part: string, end?: number): number;
58
+ startsWith(str: string, part: string): boolean;
59
+ endsWith(str: string, part: string): boolean;
60
+ charAt(str: string, index?: number): string;
61
+ codeAt(str: string, index?: number): number;
62
+ upper(str: string): string;
63
+ lower(str: string): string;
64
+ has(str: string, part: string): boolean;
65
+ falsy(str: any): boolean;
66
+ }
@@ -0,0 +1,7 @@
1
+ import { Task } from './type';
2
+ export interface EmitterOptions extends Task {
3
+ ns?: string;
4
+ num?: number;
5
+ max?: number;
6
+ count?: number;
7
+ }
@@ -0,0 +1,90 @@
1
+ export declare type Data = Record<string, any>;
2
+ export declare type ThisTask<This> = (this: This) => void;
3
+ export declare type ThisListener<This> = (this: This, event: CustomEventInterface, data?: Data) => false | void;
4
+ export declare type Listener = (event: CustomEventInterface, data?: Data) => false | void;
5
+ export declare type NativeListener = (event: CustomEventInterface | Event) => false | void;
6
+ export declare type ValueHolder = {
7
+ keypath?: string;
8
+ value: any;
9
+ };
10
+ export declare type Task = {
11
+ fn: Function;
12
+ ctx?: any;
13
+ };
14
+ export interface CustomEventInterface {
15
+ type: string;
16
+ phase: number;
17
+ ns?: string;
18
+ target?: any;
19
+ originalEvent?: CustomEventInterface | Event;
20
+ isPrevented?: true;
21
+ isStoped?: true;
22
+ listener?: Function;
23
+ /**
24
+ * 阻止事件的默认行为
25
+ */
26
+ preventDefault(): this;
27
+ /**
28
+ * 停止事件广播
29
+ */
30
+ stopPropagation(): this;
31
+ prevent(): this;
32
+ stop(): this;
33
+ }
34
+ export interface OS {
35
+ /**
36
+ * os 平台
37
+ */
38
+ name: string;
39
+ /**
40
+ * os 版本号
41
+ */
42
+ version: string;
43
+ /**
44
+ * 是否是 ios 系统
45
+ */
46
+ ios?: boolean;
47
+ /**
48
+ * 系统判断
49
+ */
50
+ iphone?: boolean;
51
+ ipad?: boolean;
52
+ itouch?: boolean;
53
+ android?: boolean;
54
+ wp?: boolean;
55
+ windows?: boolean;
56
+ linux?: boolean;
57
+ mac?: boolean;
58
+ }
59
+ export interface Browser {
60
+ /**
61
+ * browser 平台
62
+ */
63
+ name: string;
64
+ /**
65
+ * browser 版本号
66
+ */
67
+ version: string;
68
+ /**
69
+ * 浏览器判断
70
+ */
71
+ alipay?: boolean;
72
+ wechat?: boolean;
73
+ baiduApp?: boolean;
74
+ baidu?: boolean;
75
+ uc?: boolean;
76
+ qq?: boolean;
77
+ qqApp?: boolean;
78
+ ie?: boolean;
79
+ edge?: boolean;
80
+ chrome?: boolean;
81
+ firefox?: boolean;
82
+ opera?: boolean;
83
+ safari?: boolean;
84
+ }
85
+ export interface Network {
86
+ /**
87
+ * 网络类型
88
+ */
89
+ name: string;
90
+ }
@@ -0,0 +1,30 @@
1
+ import { CustomEventInterface } from '../type/type';
2
+ export default class CustomEvent implements CustomEventInterface {
3
+ static PHASE_CURRENT: number;
4
+ static PHASE_UPWARD: number;
5
+ static PHASE_DOWNWARD: number;
6
+ type: string;
7
+ phase: number;
8
+ ns?: string;
9
+ target?: any;
10
+ originalEvent?: CustomEventInterface | Event;
11
+ isPrevented?: true;
12
+ isStoped?: true;
13
+ listener?: Function;
14
+ /**
15
+ * 构造函数
16
+ *
17
+ * 可以传事件名称,也可以传原生事件对象
18
+ */
19
+ constructor(type: string, originalEvent?: CustomEventInterface | Event);
20
+ /**
21
+ * 阻止事件的默认行为
22
+ */
23
+ preventDefault(): this;
24
+ /**
25
+ * 停止事件广播
26
+ */
27
+ stopPropagation(): this;
28
+ prevent(): this;
29
+ stop(): this;
30
+ }