@hysc/meeting 1.6.14 → 1.6.15

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 (124) hide show
  1. package/esm/BMChat/BMChatVM.d.ts +24 -24
  2. package/esm/BMChat/BMMessageInfo.d.ts +27 -27
  3. package/esm/BMRoom/BMLiveVM.d.ts +35 -35
  4. package/esm/BMUser/BMUser.d.ts +147 -147
  5. package/esm/BMUser/BMUserVM.d.ts +137 -137
  6. package/esm/boom-meeting/src/BMChat/BMChatVM.d.ts +1 -1
  7. package/esm/boom-meeting/src/BMRoom/BMRoomInfo.d.ts +189 -0
  8. package/esm/boom-meeting/src/BMRoom/BMRoomVM.d.ts +278 -0
  9. package/esm/boom-meeting/src/BMRoom/RoomEvent.d.ts +1 -0
  10. package/esm/boom-meeting/src/BMRoom/attachEvents.d.ts +2 -4
  11. package/esm/boom-meeting/src/BMStream/BMStreamModel.d.ts +1 -1
  12. package/esm/boom-meeting/src/BMStream/BMStreamModelVM.d.ts +232 -0
  13. package/esm/boom-meeting/src/BMUser/BMUser.d.ts +1 -1
  14. package/esm/boom-meeting/src/bjy-common/function/debounce.d.ts +9 -0
  15. package/esm/boom-meeting/src/bjy-common/function/isDef.d.ts +1 -0
  16. package/esm/boom-meeting/src/bjy-common/function/isUndef.d.ts +1 -0
  17. package/esm/boom-meeting/src/bjy-common/function/throttling.d.ts +9 -0
  18. package/esm/boom-meeting/src/bjy-common/function/toNumber.d.ts +1 -0
  19. package/esm/boom-meeting/src/bjy-common/type/api.d.ts +66 -0
  20. package/esm/boom-meeting/src/bjy-common/type/options.d.ts +7 -0
  21. package/esm/boom-meeting/src/bjy-common/type/type.d.ts +90 -0
  22. package/esm/boom-meeting/src/bjy-common/util/NextTask.d.ts +28 -0
  23. package/esm/boom-meeting/src/bjy-common/util/Sleep.d.ts +14 -0
  24. package/esm/boom-meeting/src/bjy-common/util/Timer.d.ts +13 -0
  25. package/esm/boom-meeting/src/bjy-common/util/browser.d.ts +6 -0
  26. package/esm/boom-meeting/src/bjy-common/util/holder.d.ts +6 -0
  27. package/esm/boom-meeting/src/bjy-common/util/network.d.ts +4 -0
  28. package/esm/boom-meeting/src/bjy-common/util/os.d.ts +14 -0
  29. package/esm/boom-meeting/src/error/errorMap.d.ts +70 -0
  30. package/esm/boom-meeting/src/error/errorType.d.ts +96 -0
  31. package/esm/boom-meeting/src/logger/logger.d.ts +86 -0
  32. package/esm/boom-meeting/src/type/customStats.d.ts +117 -0
  33. package/esm/boom-meeting/src/type/index.d.ts +9 -0
  34. package/esm/boom-meeting/src/type/stream.d.ts +17 -0
  35. package/esm/boom-meeting/src/type/user.d.ts +9 -0
  36. package/esm/boom-meeting/src/types/customStats.d.ts +103 -0
  37. package/esm/boom-meeting/src/types/index.d.ts +9 -0
  38. package/esm/boom-meeting/src/types/stream.d.ts +17 -0
  39. package/esm/boom-meeting/src/types/user.d.ts +11 -0
  40. package/esm/boom-meeting/src/util/PackLoss.d.ts +7 -0
  41. package/esm/boom-meeting/src/util/Pqueue.d.ts +61 -0
  42. package/esm/boom-meeting/src/util/Privileges.d.ts +20 -0
  43. package/esm/boom-meeting/src/util/ReportCollector.d.ts +22 -0
  44. package/esm/boom-meeting/src/util/Stutter.d.ts +19 -0
  45. package/esm/boom-meeting/src/util/base64.d.ts +4 -0
  46. package/esm/boom-meeting/src/util/checkPermissions.d.ts +1 -0
  47. package/esm/boom-meeting/src/util/checkSystemRequirements.d.ts +1 -0
  48. package/esm/boom-meeting/src/util/constant.d.ts +67 -0
  49. package/esm/boom-meeting/src/util/devices.d.ts +2 -0
  50. package/esm/boom-meeting/src/util/formatUserId.d.ts +2 -0
  51. package/esm/boom-meeting/src/util/is.d.ts +70 -0
  52. package/esm/boom-meeting/src/util/peerToPeerProbe.d.ts +9 -0
  53. package/esm/boom-meeting/src/util/request.d.ts +45 -0
  54. package/esm/constants.d.ts +83 -83
  55. package/esm/index.js +1 -1
  56. package/esm/index.js.map +3 -3
  57. package/esm/types/customStats.d.ts +103 -0
  58. package/esm/types/index.d.ts +9 -0
  59. package/esm/types/stream.d.ts +17 -0
  60. package/esm/types/user.d.ts +11 -0
  61. package/esm/util/emitter.d.ts +18 -18
  62. package/esm/utils/ErrorTypes.d.ts +97 -0
  63. package/package.json +3 -3
  64. package/umd/BMChat/BMChatVM.d.ts +24 -0
  65. package/umd/BMChat/BMMessageInfo.d.ts +27 -0
  66. package/umd/BMRoom/BMLiveVM.d.ts +35 -0
  67. package/umd/BMStream/BMSpeaker.d.ts +44 -0
  68. package/umd/BMUser/BMUser.d.ts +147 -0
  69. package/{esm/boom-meeting/src → umd}/BMUser/BMUserVM.d.ts +0 -0
  70. package/umd/boom-meeting/src/BMChat/BMChatVM.d.ts +1 -1
  71. package/umd/boom-meeting/src/BMRoom/BMRoomInfo.d.ts +189 -0
  72. package/umd/boom-meeting/src/BMRoom/BMRoomVM.d.ts +278 -0
  73. package/umd/boom-meeting/src/BMRoom/RoomEvent.d.ts +1 -0
  74. package/umd/boom-meeting/src/BMRoom/attachEvents.d.ts +2 -4
  75. package/umd/boom-meeting/src/BMStream/BMStreamModel.d.ts +1 -1
  76. package/umd/boom-meeting/src/BMStream/BMStreamModelVM.d.ts +232 -0
  77. package/umd/boom-meeting/src/BMUser/BMUser.d.ts +1 -1
  78. package/umd/boom-meeting/src/bjy-common/function/debounce.d.ts +9 -0
  79. package/umd/boom-meeting/src/bjy-common/function/isDef.d.ts +1 -0
  80. package/umd/boom-meeting/src/bjy-common/function/isUndef.d.ts +1 -0
  81. package/umd/boom-meeting/src/bjy-common/function/throttling.d.ts +9 -0
  82. package/umd/boom-meeting/src/bjy-common/function/toNumber.d.ts +1 -0
  83. package/umd/boom-meeting/src/bjy-common/type/api.d.ts +66 -0
  84. package/umd/boom-meeting/src/bjy-common/type/options.d.ts +7 -0
  85. package/umd/boom-meeting/src/bjy-common/type/type.d.ts +90 -0
  86. package/umd/boom-meeting/src/bjy-common/util/NextTask.d.ts +28 -0
  87. package/umd/boom-meeting/src/bjy-common/util/Sleep.d.ts +14 -0
  88. package/umd/boom-meeting/src/bjy-common/util/Timer.d.ts +13 -0
  89. package/umd/boom-meeting/src/bjy-common/util/browser.d.ts +6 -0
  90. package/umd/boom-meeting/src/bjy-common/util/holder.d.ts +6 -0
  91. package/umd/boom-meeting/src/bjy-common/util/network.d.ts +4 -0
  92. package/umd/boom-meeting/src/bjy-common/util/os.d.ts +14 -0
  93. package/umd/boom-meeting/src/error/errorMap.d.ts +70 -0
  94. package/umd/boom-meeting/src/error/errorType.d.ts +96 -0
  95. package/umd/boom-meeting/src/logger/logger.d.ts +86 -0
  96. package/umd/boom-meeting/src/type/customStats.d.ts +117 -0
  97. package/umd/boom-meeting/src/type/index.d.ts +9 -0
  98. package/umd/boom-meeting/src/type/stream.d.ts +17 -0
  99. package/umd/boom-meeting/src/type/user.d.ts +9 -0
  100. package/umd/boom-meeting/src/types/customStats.d.ts +103 -0
  101. package/umd/boom-meeting/src/types/index.d.ts +9 -0
  102. package/umd/boom-meeting/src/types/stream.d.ts +17 -0
  103. package/umd/boom-meeting/src/types/user.d.ts +11 -0
  104. package/umd/boom-meeting/src/util/PackLoss.d.ts +7 -0
  105. package/umd/boom-meeting/src/util/Pqueue.d.ts +61 -0
  106. package/umd/boom-meeting/src/util/Privileges.d.ts +20 -0
  107. package/umd/boom-meeting/src/util/ReportCollector.d.ts +22 -0
  108. package/umd/boom-meeting/src/util/Stutter.d.ts +19 -0
  109. package/umd/boom-meeting/src/util/base64.d.ts +4 -0
  110. package/umd/boom-meeting/src/util/checkPermissions.d.ts +1 -0
  111. package/umd/boom-meeting/src/util/checkSystemRequirements.d.ts +1 -0
  112. package/umd/boom-meeting/src/util/constant.d.ts +67 -0
  113. package/umd/boom-meeting/src/util/devices.d.ts +2 -0
  114. package/umd/boom-meeting/src/util/formatUserId.d.ts +2 -0
  115. package/umd/boom-meeting/src/util/is.d.ts +70 -0
  116. package/umd/boom-meeting/src/util/peerToPeerProbe.d.ts +9 -0
  117. package/umd/boom-meeting/src/util/request.d.ts +45 -0
  118. package/{esm/boom-meeting/src → umd}/constants.d.ts +0 -0
  119. package/umd/index.js +1 -1
  120. package/umd/index.js.map +1 -0
  121. package/umd/util/emitter.d.ts +18 -0
  122. package/umd/utils/ErrorTypes.d.ts +97 -0
  123. package/umd/boom-meeting/src/BMUser/BMUserVM.d.ts +0 -137
  124. package/umd/boom-meeting/src/constants.d.ts +0 -83
@@ -0,0 +1,232 @@
1
+ /**
2
+ * @name: BMStreamModelVM
3
+ * @author: yangliye
4
+ * @date: 2022-04-27 15:25
5
+ * @description:BMStreamModelVM
6
+ * @update: 2022-04-27 15:25
7
+ * @description
8
+ * 这个模块的功能是去管理展示窗口的处理逻辑,主要包括创建streamModel,更新streamModel(主要是流相关信息的更新,和用户更新)
9
+ * 创建streamModel的操作:
10
+ * 初始化整个流程是根据bloud的用户来创建的
11
+ * 然后在根据brtc里面流的信息来更新对应的streamModel
12
+ * bloud的用户和brtc的流信息是根据uid来进行关联。
13
+ *
14
+ * 共享屏幕用户做了特殊处理,因为web端共享屏幕和移动端共享屏幕处理逻辑不一样
15
+ */
16
+ /// <reference types="node" />
17
+ import BMStreamModel from './BMStreamModel';
18
+ import BMUser from '../BMUser/BMUser';
19
+ import { SingleLocalStream, SingleRemoteStream, SingleStream } from '../type';
20
+ import BMRoom from '../BMRoom/BMRoom';
21
+ import { BehaviorSubject, Subject } from 'rxjs';
22
+ import { Device } from '@boom/core/esm/BoomAdapter/type/value';
23
+ import BMSpeaker from './BMSpeaker';
24
+ import { ShareMediaOptions } from "@boom/core/esm/BoomCore/BCClient/BCClient";
25
+ import { getHTMLMediaStreamOptions, Result, getMediaStreamInfo } from "./getHTMLMediaStreamOptions";
26
+ /**
27
+ * 全量的brtc流记录,把所有brtc用户推的流都做记录
28
+ * stream-added 的时候添加
29
+ * stream-removed 的时候删除
30
+ * mute/unmute-video/audio 的时候更新流
31
+ * 当用户进来的时候,去查看这个流对象,如果流存在,就给这个人添加流
32
+ *
33
+ */
34
+ export declare const BRTCStreamMap: Map<string, import("@boom/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
35
+ export declare const BRTCShareStreamMap: Map<string, import("@boom/core/esm/BoomAdapter/singleMode/stream/RemoteStream").default>;
36
+ export default class BMStreamModelVM {
37
+ streamModels: Map<string, BMStreamModel>;
38
+ /**
39
+ * 因为投屏码用户进来以后,他是不在小窗口展示的,所以要把投屏的用户过滤掉给业务的展示
40
+ */
41
+ streamModelsWatcher: BehaviorSubject<BMStreamModel[]>;
42
+ shareStreamModels: Map<string, BMStreamModel>;
43
+ shareStreamModelsWatcher: BehaviorSubject<BMStreamModel[]>;
44
+ localModel: BMStreamModel | null;
45
+ private room;
46
+ bloudStream: any;
47
+ audioStream: SingleLocalStream | undefined;
48
+ brtcStream: SingleLocalStream | undefined;
49
+ /**
50
+ * 本地是否在屏幕共享
51
+ */
52
+ localIsShare: boolean;
53
+ _speaker_enable: boolean;
54
+ speakerEnableWatcher: BehaviorSubject<boolean>;
55
+ /**
56
+ * 混流
57
+ */
58
+ mixStreamModelWatcher: BehaviorSubject<BMStreamModel | null>;
59
+ isShareWatcher: Subject<boolean>;
60
+ canvasTimer: NodeJS.Timeout | null;
61
+ /**
62
+ * 后面打开摄像头存储的流,主要是关闭摄像头的时候得把它清除掉
63
+ */
64
+ videoStream: SingleLocalStream | null;
65
+ private _recorder;
66
+ private _isRecording;
67
+ private _slicingRecord;
68
+ isRecordingWatcher: BehaviorSubject<boolean>;
69
+ private _speaker;
70
+ private _speakerDetector;
71
+ private _speakers;
72
+ speakerWatcher: BehaviorSubject<BMUser | null>;
73
+ constructor();
74
+ private static filterStreamModels;
75
+ initWithRoom(room: BMRoom): this;
76
+ /**
77
+ * 设置扬声器是否打开
78
+ * @param enable
79
+ * @private
80
+ */
81
+ private setSpeakerEnable;
82
+ getStreamModels(): Array<BMStreamModel>;
83
+ /**
84
+ * 获取streamModel
85
+ * @param userId 用户Id
86
+ * @returns
87
+ */
88
+ getStreamModelByUId(userId: string): BMStreamModel | undefined;
89
+ getShareStreamModelByUId(userId: string): BMStreamModel | undefined;
90
+ getLocalStreamModel(): BMStreamModel | null;
91
+ createStreamModel(user: BMUser, stream?: SingleStream): BMStreamModel;
92
+ addStreamModel(streamModel: BMStreamModel): void;
93
+ addShareStreamModel(streamModel: BMStreamModel): void;
94
+ removeStreamModel(streamModel: BMStreamModel): void;
95
+ removeShareStreamModel(streamModel: BMStreamModel): void;
96
+ /**`
97
+ * 通过用户id删除streamModel
98
+ * @param userId
99
+ * @returns
100
+ */
101
+ removeStreamModelByUId(userId: string): BMStreamModel | undefined;
102
+ remoteStreamPublished(stream: SingleRemoteStream): void;
103
+ /**
104
+ * 有人取消流触发,有人取消流之后brtc底层会把流销毁掉,除了流Id和userId,其他的信息都不稳定能取到
105
+ * @param stream
106
+ * @returns
107
+ */
108
+ remoteStreamUnpublished(stream: SingleRemoteStream): BMStreamModel | undefined;
109
+ sortStreamModels(): BMStreamModel[];
110
+ updateStreamModel(streamModel: BMStreamModel, stream: SingleStream): void;
111
+ updateShareStreamModel(streamModel: BMStreamModel, stream: SingleStream): void;
112
+ /**
113
+ * 开关本地摄像头
114
+ * @param status true:开,false:关
115
+ * @param videoTrack 开启美颜之后,需要传递这个参数,携带美颜之后的videoTrack
116
+ */
117
+ setLocalVideoEnable(status: boolean, videoTrack?: MediaStreamTrack): Promise<undefined>;
118
+ /**
119
+ * 开关本地麦克风
120
+ * @param status true:开,false:关
121
+ */
122
+ setLocalAudioEnable(status: boolean): Promise<undefined>;
123
+ /**
124
+ * 该方法只是在入会的时候,同时开启音频和视频的时候使用,其他时候禁止使用该方法
125
+ * 切换音频和视频状态请使用 setLocalAudioEnable 和 setLocalVideoEnable
126
+ * @param audio
127
+ * @param video
128
+ */
129
+ joinWithAudioAndAudio(audio: boolean, video: boolean): Promise<undefined>;
130
+ /**
131
+ * 切换扬声器
132
+ * @param device
133
+ */
134
+ changeSpeaker(device: Device): Promise<void>;
135
+ /**
136
+ * 设置单个流的扬声器
137
+ * @param streamModel
138
+ */
139
+ changeSingleStreamSpeaker(streamModel: BMStreamModel): Promise<void>;
140
+ changeAudioInput(device: Device): Promise<void>;
141
+ changeVideoInput(device: Device): Promise<void>;
142
+ /**
143
+ * 是否静音扬声器
144
+ * @param enable
145
+ */
146
+ muteSpeaker(enable: boolean): Promise<undefined>;
147
+ /**
148
+ * 创建流并且发布
149
+ * @param audio 是否发布音频流
150
+ * @param video 是否发布视频流
151
+ * @param localModel 本地的streamModel
152
+ * @private
153
+ */
154
+ private createStreamAndPublish;
155
+ /**
156
+ * 更改音视频状态或者取消发布
157
+ * @param type 更改类型
158
+ * @param mute 是否取消发布
159
+ * @param localModel 本地的streamModel
160
+ * @private
161
+ */
162
+ private muteOrUnpublishStream;
163
+ /**
164
+ * 是否开启屏幕共享
165
+ * @param enable
166
+ * @param opts 开启屏幕共享参数
167
+ * @param customShare
168
+ * @param opts.audio 是否开启音频
169
+ * @param opts.source_name Electron 下窗口名称
170
+ * @param opts.width 共享屏幕宽度
171
+ * @param opts.height 共享屏幕高度
172
+ * @param opts.contentHint 视频的contentHint 可选值: '' | 'motion' | 'detail' | 'text'
173
+ */
174
+ toggleShareScreen(enable: boolean, opts: any, customShare?: Result): Promise<unknown>;
175
+ setShareScreenContentHint(contentHint: '' | 'motion' | 'detail' | 'text'): Promise<void>;
176
+ /**
177
+ * 排序变化之后的处理逻辑
178
+ */
179
+ updateSort: any;
180
+ /**
181
+ * 创建canvas,目的是为了捕获空track流,给brtc使用
182
+ */
183
+ createCanvas(): void;
184
+ private canvasDisplay;
185
+ private static getCanvasStream;
186
+ private createVideoStream;
187
+ /**
188
+ * 启动录制
189
+ * @param {String} opts.filename - 录制文件名
190
+ * @param {Object} opts.capture - 采集属性
191
+ * @param {Number} opts.capture.width - 宽度
192
+ * @param {Number} opts.capture.height - 高度
193
+ * @param {Number} opts.capture.fps - 帧率
194
+ * @param {Number} opts.record - 编码属性
195
+ * @param {Number} opts.record.bitrate - 编码码率
196
+ * @param {String|undefined} opts.record.format - 编码格式
197
+ * @return {boolean}
198
+ */
199
+ startRecord(opts: any): Promise<boolean | undefined>;
200
+ /**
201
+ * 添加流对象到录制器,用于音频轨道录制
202
+ * @param stream
203
+ */
204
+ addToRecorder(stream: any): void;
205
+ /**
206
+ * 从录制器中删除流对象
207
+ * @param stream
208
+ */
209
+ removeFromRecorder(stream: any): void;
210
+ /**
211
+ * 停止录制
212
+ */
213
+ stopRecord(): Promise<void>;
214
+ /**
215
+ * 启用下一个录制分片
216
+ * @param filename - 下一分片文件名
217
+ */
218
+ sliceRecord(filename: string): Promise<boolean | undefined>;
219
+ /**
220
+ * 启动说话人检测器
221
+ */
222
+ startSpeakerDetector(): void;
223
+ addToDetector(speaker: BMSpeaker): void;
224
+ removeFromDetector(speakerId: string): void;
225
+ shareCustomMedia(enable: boolean, shareOptions: ShareMediaOptions): Promise<undefined>;
226
+ /**
227
+ * 根据videoElement 获取内部流数据
228
+ */
229
+ getHTMLMediaStream: typeof getHTMLMediaStreamOptions;
230
+ getMediaStream: typeof getMediaStreamInfo;
231
+ clearCache(): void;
232
+ }
@@ -1,6 +1,6 @@
1
1
  import BMStreamModel from '../BMStream/BMStreamModel';
2
2
  import { BehaviorSubject } from 'rxjs';
3
- import BCUser from '@hysc/core/esm/BoomAdapter/User/User';
3
+ import BCUser from '@boom/core/esm/BoomAdapter/User/User';
4
4
  import BMRoom from '../BMRoom/BMRoom';
5
5
  declare type Operation = 'none' | 'getMaster' | 'getManager' | 'removeMaster' | 'getGuest' | 'removeGuest' | 'removeManager' | 'changeNickName' | 'speakerEnable' | 'changeShare' | 'updateUser' | 'raiseHandsVideo' | 'raiseHandsAudio' | 'audienceEnableSpeaking';
6
6
  interface IUserActionWatcher {
@@ -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 @@
1
+ export default function (target: any): boolean;
@@ -0,0 +1 @@
1
+ export default function (target: any): boolean;
@@ -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,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,28 @@
1
+ import { Task } from '../type/type';
2
+ export default class NextTask {
3
+ /**
4
+ * 全局单例
5
+ */
6
+ static shared(): NextTask;
7
+ /**
8
+ * 异步队列
9
+ */
10
+ tasks: Task[];
11
+ constructor();
12
+ /**
13
+ * 在队尾添加异步任务
14
+ */
15
+ append(func: Function, context?: any): void;
16
+ /**
17
+ * 在队首添加异步任务
18
+ */
19
+ prepend(func: Function, context?: any): void;
20
+ /**
21
+ * 清空异步队列
22
+ */
23
+ clear(): void;
24
+ /**
25
+ * 立即执行异步任务,并清空队列
26
+ */
27
+ run(): void;
28
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @file 等待操作
3
+ * @author zhaogaoxing
4
+ */
5
+ export default class Sleep {
6
+ private timeout;
7
+ private timer;
8
+ private resolve;
9
+ private reject;
10
+ private startTime;
11
+ constructor(timeout: number);
12
+ then(res: (value?: number) => void, rej: (value?: number) => void): void;
13
+ stop(reslove?: boolean): void;
14
+ }
@@ -0,0 +1,13 @@
1
+ export default class Timer {
2
+ private task;
3
+ private timeout;
4
+ private interval;
5
+ private timer;
6
+ private count;
7
+ constructor(task: Function, timeout: number, interval: number);
8
+ start(): void;
9
+ stop(): void;
10
+ updateInterval(interval: number): void;
11
+ isStarted(): boolean;
12
+ destroy(): void;
13
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @file browser
3
+ * @author zhaogaoxing
4
+ */
5
+ declare const browser: any;
6
+ export default browser;
@@ -0,0 +1,6 @@
1
+ import { ValueHolder } from '../type/type';
2
+ /**
3
+ * 全局 value holder,避免频繁的创建临时对象
4
+ */
5
+ declare const holder: ValueHolder;
6
+ export default holder;
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ name: any;
3
+ };
4
+ export default _default;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * UA 检测操作系统
3
+ *
4
+ * 返回结果如下:
5
+ *
6
+ * {
7
+ * name: 'mac', // 判断多个浏览器时,便于用 name 去 switch
8
+ * mac: true, // 判断某一个浏览器时,便于 if (mac) { ... }
9
+ * version: '8.0' // 版本号,string 类型
10
+ * }
11
+ *
12
+ */
13
+ declare const os: any;
14
+ export default os;
@@ -0,0 +1,70 @@
1
+ export declare const BoomErrorMessage: {
2
+ 1000: {
3
+ name: string;
4
+ message: string;
5
+ };
6
+ 1001: {
7
+ name: string;
8
+ message: string;
9
+ };
10
+ 1002: {
11
+ name: string;
12
+ message: string;
13
+ };
14
+ 1003: {
15
+ name: string;
16
+ message: string;
17
+ };
18
+ 4000: {
19
+ name: string;
20
+ message: string;
21
+ };
22
+ 4001: {
23
+ name: string;
24
+ message: string;
25
+ };
26
+ 4002: {
27
+ name: string;
28
+ message: string;
29
+ };
30
+ 4003: {
31
+ name: string;
32
+ message: string;
33
+ };
34
+ 4004: {
35
+ name: string;
36
+ message: string;
37
+ };
38
+ 4005: {
39
+ name: string;
40
+ message: string;
41
+ };
42
+ 4006: {
43
+ name: string;
44
+ message: string;
45
+ };
46
+ 4007: {
47
+ name: string;
48
+ message: string;
49
+ };
50
+ 4008: {
51
+ name: string;
52
+ message: string;
53
+ };
54
+ 5000: {
55
+ name: string;
56
+ message: string;
57
+ };
58
+ 5001: {
59
+ name: string;
60
+ message: string;
61
+ };
62
+ 9000: {
63
+ name: string;
64
+ message: string;
65
+ };
66
+ 1010: {
67
+ name: string;
68
+ message: string;
69
+ };
70
+ };