@vmosedge/web-sdk 1.0.1
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.
- package/README.md +50 -0
- package/dist/index.cjs.js +3 -0
- package/dist/index.es.js +3 -0
- package/dist/index.global.js +3 -0
- package/dist/types/index.d.ts +381 -0
- package/package.json +31 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
declare class EventEmitter {
|
|
2
|
+
private listeners;
|
|
3
|
+
on(event: string, callback: Function): void;
|
|
4
|
+
once(event: string, callback: Function): void;
|
|
5
|
+
off(event: string, callback: Function): void;
|
|
6
|
+
emit(event: string, ...args: any[]): void;
|
|
7
|
+
clear(event?: string): void;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
declare const AndroidKeyCode: {
|
|
11
|
+
readonly AndroidHome: 3;
|
|
12
|
+
readonly AndroidBack: 4;
|
|
13
|
+
readonly AndroidCall: 5;
|
|
14
|
+
readonly AndroidEndCall: 6;
|
|
15
|
+
readonly Digit0: 7;
|
|
16
|
+
readonly Digit1: 8;
|
|
17
|
+
readonly Digit2: 9;
|
|
18
|
+
readonly Digit3: 10;
|
|
19
|
+
readonly Digit4: 11;
|
|
20
|
+
readonly Digit5: 12;
|
|
21
|
+
readonly Digit6: 13;
|
|
22
|
+
readonly Digit7: 14;
|
|
23
|
+
readonly Digit8: 15;
|
|
24
|
+
readonly Digit9: 16;
|
|
25
|
+
readonly Star: 17;
|
|
26
|
+
readonly Pound: 18;
|
|
27
|
+
readonly ArrowUp: 19;
|
|
28
|
+
readonly ArrowDown: 20;
|
|
29
|
+
readonly ArrowLeft: 21;
|
|
30
|
+
readonly ArrowRight: 22;
|
|
31
|
+
readonly AndroidDPadCenter: 23;
|
|
32
|
+
readonly VolumeUp: 24;
|
|
33
|
+
readonly VolumeDown: 25;
|
|
34
|
+
readonly Power: 26;
|
|
35
|
+
readonly AndroidCamera: 27;
|
|
36
|
+
readonly Clear: 28;
|
|
37
|
+
readonly KeyA: 29;
|
|
38
|
+
readonly KeyB: 30;
|
|
39
|
+
readonly KeyC: 31;
|
|
40
|
+
readonly KeyD: 32;
|
|
41
|
+
readonly KeyE: 33;
|
|
42
|
+
readonly KeyF: 34;
|
|
43
|
+
readonly KeyG: 35;
|
|
44
|
+
readonly KeyH: 36;
|
|
45
|
+
readonly KeyI: 37;
|
|
46
|
+
readonly KeyJ: 38;
|
|
47
|
+
readonly KeyK: 39;
|
|
48
|
+
readonly KeyL: 40;
|
|
49
|
+
readonly KeyM: 41;
|
|
50
|
+
readonly KeyN: 42;
|
|
51
|
+
readonly KeyO: 43;
|
|
52
|
+
readonly KeyP: 44;
|
|
53
|
+
readonly KeyQ: 45;
|
|
54
|
+
readonly KeyR: 46;
|
|
55
|
+
readonly KeyS: 47;
|
|
56
|
+
readonly KeyT: 48;
|
|
57
|
+
readonly KeyU: 49;
|
|
58
|
+
readonly KeyV: 50;
|
|
59
|
+
readonly KeyW: 51;
|
|
60
|
+
readonly KeyX: 52;
|
|
61
|
+
readonly KeyY: 53;
|
|
62
|
+
readonly KeyZ: 54;
|
|
63
|
+
readonly Comma: 55;
|
|
64
|
+
readonly Period: 56;
|
|
65
|
+
readonly AltLeft: 57;
|
|
66
|
+
readonly AltRight: 58;
|
|
67
|
+
readonly ShiftLeft: 59;
|
|
68
|
+
readonly ShiftRight: 60;
|
|
69
|
+
readonly Tab: 61;
|
|
70
|
+
readonly Space: 62;
|
|
71
|
+
readonly AndroidSymbol: 63;
|
|
72
|
+
readonly AndroidExplorer: 64;
|
|
73
|
+
readonly AndroidEnvelope: 65;
|
|
74
|
+
readonly Enter: 66;
|
|
75
|
+
readonly Backspace: 67;
|
|
76
|
+
readonly Backquote: 68;
|
|
77
|
+
readonly Minus: 69;
|
|
78
|
+
readonly Equal: 70;
|
|
79
|
+
readonly BracketLeft: 71;
|
|
80
|
+
readonly BracketRight: 72;
|
|
81
|
+
readonly Backslash: 73;
|
|
82
|
+
readonly Semicolon: 74;
|
|
83
|
+
readonly Quote: 75;
|
|
84
|
+
readonly Slash: 76;
|
|
85
|
+
readonly At: 77;
|
|
86
|
+
readonly AndroidNum: 78;
|
|
87
|
+
readonly AndroidHeadsetHook: 79;
|
|
88
|
+
readonly AndroidFocus: 80;
|
|
89
|
+
readonly Plus: 81;
|
|
90
|
+
readonly ContextMenu: 82;
|
|
91
|
+
readonly AndroidNotification: 83;
|
|
92
|
+
readonly AndroidSearch: 84;
|
|
93
|
+
readonly PageUp: 92;
|
|
94
|
+
readonly PageDown: 93;
|
|
95
|
+
readonly Escape: 111;
|
|
96
|
+
readonly Delete: 112;
|
|
97
|
+
readonly ControlLeft: 113;
|
|
98
|
+
readonly ControlRight: 114;
|
|
99
|
+
readonly CapsLock: 115;
|
|
100
|
+
readonly ScrollLock: 116;
|
|
101
|
+
readonly MetaLeft: 117;
|
|
102
|
+
readonly MetaRight: 118;
|
|
103
|
+
readonly AndroidFunction: 119;
|
|
104
|
+
readonly PrintScreen: 120;
|
|
105
|
+
readonly Pause: 121;
|
|
106
|
+
readonly Home: 122;
|
|
107
|
+
readonly End: 123;
|
|
108
|
+
readonly Insert: 124;
|
|
109
|
+
readonly AndroidForward: 125;
|
|
110
|
+
readonly F1: 131;
|
|
111
|
+
readonly F2: 132;
|
|
112
|
+
readonly F3: 133;
|
|
113
|
+
readonly F4: 134;
|
|
114
|
+
readonly F5: 135;
|
|
115
|
+
readonly F6: 136;
|
|
116
|
+
readonly F7: 137;
|
|
117
|
+
readonly F8: 138;
|
|
118
|
+
readonly F9: 139;
|
|
119
|
+
readonly F10: 140;
|
|
120
|
+
readonly F11: 141;
|
|
121
|
+
readonly F12: 142;
|
|
122
|
+
readonly NumLock: 143;
|
|
123
|
+
readonly Numpad0: 144;
|
|
124
|
+
readonly Numpad1: 145;
|
|
125
|
+
readonly Numpad2: 146;
|
|
126
|
+
readonly Numpad3: 147;
|
|
127
|
+
readonly Numpad4: 148;
|
|
128
|
+
readonly Numpad5: 149;
|
|
129
|
+
readonly Numpad6: 150;
|
|
130
|
+
readonly Numpad7: 151;
|
|
131
|
+
readonly Numpad8: 152;
|
|
132
|
+
readonly Numpad9: 153;
|
|
133
|
+
readonly NumpadDivide: 154;
|
|
134
|
+
readonly NumpadMultiply: 155;
|
|
135
|
+
readonly NumpadSubtract: 156;
|
|
136
|
+
readonly NumpadAdd: 157;
|
|
137
|
+
readonly NumpadDecimal: 158;
|
|
138
|
+
readonly NumpadComma: 159;
|
|
139
|
+
readonly NumpadEnter: 160;
|
|
140
|
+
readonly NumpadEquals: 161;
|
|
141
|
+
readonly NumpadLeftParen: 162;
|
|
142
|
+
readonly NumpadRightParen: 163;
|
|
143
|
+
readonly VolumeMute: 164;
|
|
144
|
+
readonly AndroidAppSwitch: 187;
|
|
145
|
+
readonly AndroidCut: 277;
|
|
146
|
+
readonly AndroidCopy: 278;
|
|
147
|
+
readonly AndroidPaste: 279;
|
|
148
|
+
};
|
|
149
|
+
type AndroidKeyCode = (typeof AndroidKeyCode)[keyof typeof AndroidKeyCode];
|
|
150
|
+
declare const AndroidKeyEventAction: {
|
|
151
|
+
readonly Down: 0;
|
|
152
|
+
readonly Up: 1;
|
|
153
|
+
};
|
|
154
|
+
type AndroidKeyEventAction = (typeof AndroidKeyEventAction)[keyof typeof AndroidKeyEventAction];
|
|
155
|
+
declare const AndroidMetaState: {
|
|
156
|
+
readonly None: 0;
|
|
157
|
+
readonly AltOn: 2;
|
|
158
|
+
readonly AltLeftOn: 16;
|
|
159
|
+
readonly AltRightOn: 32;
|
|
160
|
+
readonly ShiftOn: 1;
|
|
161
|
+
readonly ShiftLeftOn: 64;
|
|
162
|
+
readonly ShiftRightOn: 128;
|
|
163
|
+
readonly SymOn: 4;
|
|
164
|
+
readonly FunctionOn: 8;
|
|
165
|
+
readonly CtrlOn: 4096;
|
|
166
|
+
readonly CtrlLeftOn: 8192;
|
|
167
|
+
readonly CtrlRightOn: 16384;
|
|
168
|
+
readonly MetaOn: 65536;
|
|
169
|
+
readonly MetaLeftOn: 131072;
|
|
170
|
+
readonly MetaRightOn: 262144;
|
|
171
|
+
readonly CapsLockOn: 1048576;
|
|
172
|
+
readonly NumLockOn: 2097152;
|
|
173
|
+
readonly ScrollLockOn: 4194304;
|
|
174
|
+
};
|
|
175
|
+
type AndroidMetaState = (typeof AndroidMetaState)[keyof typeof AndroidMetaState];
|
|
176
|
+
|
|
177
|
+
declare const AndroidMotionEventAction: {
|
|
178
|
+
readonly Down: 0;
|
|
179
|
+
readonly Up: 1;
|
|
180
|
+
readonly Move: 2;
|
|
181
|
+
readonly Cancel: 3;
|
|
182
|
+
readonly Outside: 4;
|
|
183
|
+
readonly PointerDown: 5;
|
|
184
|
+
readonly PointerUp: 6;
|
|
185
|
+
readonly HoverMove: 7;
|
|
186
|
+
readonly Scroll: 8;
|
|
187
|
+
readonly HoverEnter: 9;
|
|
188
|
+
readonly HoverExit: 10;
|
|
189
|
+
readonly ButtonPress: 11;
|
|
190
|
+
readonly ButtonRelease: 12;
|
|
191
|
+
};
|
|
192
|
+
type AndroidMotionEventAction = (typeof AndroidMotionEventAction)[keyof typeof AndroidMotionEventAction];
|
|
193
|
+
declare const AndroidMotionEventButton: {
|
|
194
|
+
readonly None: 0;
|
|
195
|
+
readonly Primary: 1;
|
|
196
|
+
readonly Secondary: 2;
|
|
197
|
+
readonly Tertiary: 4;
|
|
198
|
+
readonly Back: 8;
|
|
199
|
+
readonly Forward: 16;
|
|
200
|
+
readonly StylusPrimary: 32;
|
|
201
|
+
readonly StylusSecondary: 64;
|
|
202
|
+
};
|
|
203
|
+
type AndroidMotionEventButton = (typeof AndroidMotionEventButton)[keyof typeof AndroidMotionEventButton];
|
|
204
|
+
|
|
205
|
+
type ChannelStatus = "disconnected" | "connecting" | "connected" | "error";
|
|
206
|
+
interface AllChannelsStatus {
|
|
207
|
+
video: ChannelStatus;
|
|
208
|
+
audio: ChannelStatus;
|
|
209
|
+
touch: ChannelStatus;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
declare const VmosEdgeClientEvents: {
|
|
213
|
+
readonly SIZE_CHANGED: "size-changed";
|
|
214
|
+
readonly ERROR: "error";
|
|
215
|
+
readonly STARTED: "started";
|
|
216
|
+
readonly STOPPED: "stopped";
|
|
217
|
+
readonly CLIPBOARD_CHANGED: "clipboard-changed";
|
|
218
|
+
readonly CHANNEL_CONNECTED: "channel-connected";
|
|
219
|
+
readonly GROUP_CONTROL_JOINED: "group-control-joined";
|
|
220
|
+
readonly GROUP_CONTROL_LEAVE: "group-control-leave";
|
|
221
|
+
};
|
|
222
|
+
type VmosEdgeClientEventName = (typeof VmosEdgeClientEvents)[keyof typeof VmosEdgeClientEvents];
|
|
223
|
+
declare enum VmosEdgeErrorType {
|
|
224
|
+
CONNECTION = "connection",
|
|
225
|
+
VIDEO = "video",
|
|
226
|
+
AUDIO = "audio",
|
|
227
|
+
TOUCH = "touch",
|
|
228
|
+
DECODER = "decoder",
|
|
229
|
+
RENDERER = "renderer"
|
|
230
|
+
}
|
|
231
|
+
declare enum VmosEdgeErrorCode {
|
|
232
|
+
CONNECTION_FAILED = "CONNECTION_FAILED",
|
|
233
|
+
CONNECTION_TIMEOUT = "CONNECTION_TIMEOUT",
|
|
234
|
+
CONNECTION_LOST = "CONNECTION_LOST",
|
|
235
|
+
VIDEO_CHANNEL_CONNECTION_FAILED = "VIDEO_CHANNEL_CONNECTION_FAILED",
|
|
236
|
+
VIDEO_CHANNEL_CLOSED = "VIDEO_CHANNEL_CLOSED",
|
|
237
|
+
VIDEO_STREAM_ERROR = "VIDEO_STREAM_ERROR",
|
|
238
|
+
VIDEO_PIPELINE_ERROR = "VIDEO_PIPELINE_ERROR",
|
|
239
|
+
AUDIO_CHANNEL_CONNECTION_FAILED = "AUDIO_CHANNEL_CONNECTION_FAILED",
|
|
240
|
+
AUDIO_STREAM_ERROR = "AUDIO_STREAM_ERROR",
|
|
241
|
+
TOUCH_CHANNEL_CONNECTION_FAILED = "TOUCH_CHANNEL_CONNECTION_FAILED",
|
|
242
|
+
TOUCH_MESSAGE_PARSE_ERROR = "TOUCH_MESSAGE_PARSE_ERROR",
|
|
243
|
+
DECODER_INIT_FAILED = "DECODER_INIT_FAILED",
|
|
244
|
+
DECODER_ERROR = "DECODER_ERROR",
|
|
245
|
+
RENDERER_INIT_FAILED = "RENDERER_INIT_FAILED",
|
|
246
|
+
RENDERER_ERROR = "RENDERER_ERROR",
|
|
247
|
+
UNKNOWN_ERROR = "UNKNOWN_ERROR"
|
|
248
|
+
}
|
|
249
|
+
interface VmosEdgeErrorEvent {
|
|
250
|
+
type: VmosEdgeErrorType;
|
|
251
|
+
code: VmosEdgeErrorCode;
|
|
252
|
+
message: string;
|
|
253
|
+
port?: number;
|
|
254
|
+
allChannelsStatus?: AllChannelsStatus;
|
|
255
|
+
}
|
|
256
|
+
interface VmosEdgeSizeChangedEvent {
|
|
257
|
+
idealWidth: number;
|
|
258
|
+
idealHeight: number;
|
|
259
|
+
videoWidth: number;
|
|
260
|
+
videoHeight: number;
|
|
261
|
+
rotation: 0 | 1;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
interface VmosEdgeChannelConnectedEvent {
|
|
265
|
+
channel: "video" | "audio" | "touch";
|
|
266
|
+
port?: number;
|
|
267
|
+
allChannelsStatus?: AllChannelsStatus;
|
|
268
|
+
}
|
|
269
|
+
interface VmosEdgeClientEventMap {
|
|
270
|
+
[VmosEdgeClientEvents.SIZE_CHANGED]: VmosEdgeSizeChangedEvent;
|
|
271
|
+
[VmosEdgeClientEvents.ERROR]: VmosEdgeErrorEvent;
|
|
272
|
+
[VmosEdgeClientEvents.STARTED]: void;
|
|
273
|
+
[VmosEdgeClientEvents.STOPPED]: void;
|
|
274
|
+
[VmosEdgeClientEvents.CLIPBOARD_CHANGED]: string;
|
|
275
|
+
[VmosEdgeClientEvents.CHANNEL_CONNECTED]: VmosEdgeChannelConnectedEvent;
|
|
276
|
+
[VmosEdgeClientEvents.GROUP_CONTROL_JOINED]: VmosEdgeClientConfig;
|
|
277
|
+
[VmosEdgeClientEvents.GROUP_CONTROL_LEAVE]: VmosEdgeClientConfig;
|
|
278
|
+
}
|
|
279
|
+
type VmosEdgeClientEventListener<T extends VmosEdgeClientEventName> = (data: VmosEdgeClientEventMap[T]) => void;
|
|
280
|
+
interface VmosEdgeClientConfig {
|
|
281
|
+
ip: string;
|
|
282
|
+
deviceId: string;
|
|
283
|
+
ports: {
|
|
284
|
+
video?: number | undefined;
|
|
285
|
+
audio?: number | undefined;
|
|
286
|
+
touch?: number | undefined;
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
interface VmosEdgeClientOptions {
|
|
290
|
+
config: VmosEdgeClientConfig;
|
|
291
|
+
container: HTMLElement;
|
|
292
|
+
isGroupControl?: boolean;
|
|
293
|
+
retryCount?: number;
|
|
294
|
+
retryInterval?: number;
|
|
295
|
+
videoCodecPreference?: "no-preference" | "prefer-hardware" | "prefer-software";
|
|
296
|
+
renderPreference?: "default" | "high-performance" | "low-power";
|
|
297
|
+
touchMoveFrequency?: number;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
declare class VmosEdgeClient extends EventEmitter {
|
|
301
|
+
private container;
|
|
302
|
+
private canvas;
|
|
303
|
+
private canvasContainer;
|
|
304
|
+
private device;
|
|
305
|
+
private isGroupControl;
|
|
306
|
+
private deviceTouchGroupMap;
|
|
307
|
+
private config;
|
|
308
|
+
private renderer;
|
|
309
|
+
private videoCodecPreference;
|
|
310
|
+
private renderPreference;
|
|
311
|
+
private decoder;
|
|
312
|
+
private textareaManager;
|
|
313
|
+
private videoWidth;
|
|
314
|
+
private videoHeight;
|
|
315
|
+
private isRunning;
|
|
316
|
+
private rotation;
|
|
317
|
+
private manualRotation;
|
|
318
|
+
private currentRotationAngle;
|
|
319
|
+
private resizeObserver;
|
|
320
|
+
private pointerMoveThrottleMap;
|
|
321
|
+
private touchMoveInterval;
|
|
322
|
+
private retryCount;
|
|
323
|
+
private maxRetries;
|
|
324
|
+
private retryInterval;
|
|
325
|
+
private stopVideoSubscription;
|
|
326
|
+
private static PointerEventButtonToAndroidButton;
|
|
327
|
+
constructor(options: VmosEdgeClientOptions);
|
|
328
|
+
private setupChannelStatusListener;
|
|
329
|
+
private extractErrorMessage;
|
|
330
|
+
private channelToErrorType;
|
|
331
|
+
private getErrorCodeForChannel;
|
|
332
|
+
private initCanvas;
|
|
333
|
+
private replaceCanvas;
|
|
334
|
+
private applyCanvasStyle;
|
|
335
|
+
private initTextareaManager;
|
|
336
|
+
private observeContainerResize;
|
|
337
|
+
on<T extends VmosEdgeClientEventName>(event: T, listener: VmosEdgeClientEventListener<T>): this;
|
|
338
|
+
once<T extends VmosEdgeClientEventName>(event: T, listener: VmosEdgeClientEventListener<T>): this;
|
|
339
|
+
off<T extends VmosEdgeClientEventName>(event: T, listener?: VmosEdgeClientEventListener<T> | Function): this;
|
|
340
|
+
emit<T extends VmosEdgeClientEventName>(event: T, ...args: VmosEdgeClientEventMap[T] extends void ? [] : [VmosEdgeClientEventMap[T]]): void;
|
|
341
|
+
start(): Promise<void>;
|
|
342
|
+
private connectWithRetry;
|
|
343
|
+
private internalStart;
|
|
344
|
+
private createVideoStream;
|
|
345
|
+
private setupTouch;
|
|
346
|
+
private performHandshake;
|
|
347
|
+
setGroupControlMode(enabled: boolean): void;
|
|
348
|
+
joinGroupControl(config: VmosEdgeClientConfig[]): void;
|
|
349
|
+
leaveGroupControl(config: VmosEdgeClientConfig[]): void;
|
|
350
|
+
stop(): void;
|
|
351
|
+
private emitSizeChanged;
|
|
352
|
+
private mapCoordinates;
|
|
353
|
+
private updateCanvasSize;
|
|
354
|
+
private createRenderer;
|
|
355
|
+
private bindInputEvents;
|
|
356
|
+
private unbindInputEvents;
|
|
357
|
+
private handleContextMenu;
|
|
358
|
+
private handlePointerEvent;
|
|
359
|
+
private sendTouch;
|
|
360
|
+
private handleWheelEvent;
|
|
361
|
+
sendText(text: string): void;
|
|
362
|
+
sendKeyCode(keyCode: AndroidKeyCode, action: AndroidKeyEventAction, metaState?: number): void;
|
|
363
|
+
clickKey(keyCode: AndroidKeyCode, metaState?: AndroidMetaState): void;
|
|
364
|
+
volumeUp(): void;
|
|
365
|
+
volumeDown(): void;
|
|
366
|
+
home(): void;
|
|
367
|
+
back(): void;
|
|
368
|
+
menu(): void;
|
|
369
|
+
setRotation(rotation: 0 | 1): void;
|
|
370
|
+
getRotation(): 0 | 1;
|
|
371
|
+
getRunningState(): boolean;
|
|
372
|
+
getVideoSize(): {
|
|
373
|
+
width: number;
|
|
374
|
+
height: number;
|
|
375
|
+
};
|
|
376
|
+
getConfig(): VmosEdgeClientConfig | null;
|
|
377
|
+
getScale(): number;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
export { AndroidKeyCode, AndroidKeyEventAction, AndroidMetaState, AndroidMotionEventAction, AndroidMotionEventButton, VmosEdgeClient, VmosEdgeClientEvents, VmosEdgeErrorCode, VmosEdgeErrorType };
|
|
381
|
+
export type { AllChannelsStatus, ChannelStatus, VmosEdgeChannelConnectedEvent, VmosEdgeClientConfig, VmosEdgeClientEventListener, VmosEdgeClientEventMap, VmosEdgeClientEventName, VmosEdgeClientOptions, VmosEdgeErrorEvent, VmosEdgeSizeChangedEvent };
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vmosedge/web-sdk",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"main": "./dist/index.cjs.js",
|
|
5
|
+
"module": "./dist/index.es.js",
|
|
6
|
+
"scripts": {},
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"keywords": [
|
|
11
|
+
"web",
|
|
12
|
+
"vmos-edge",
|
|
13
|
+
"vmos-edge-web-sdk"
|
|
14
|
+
],
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"author": "ask",
|
|
19
|
+
"license": "ISC",
|
|
20
|
+
"description": "Vmos Edge Web SDK",
|
|
21
|
+
"dependencies": {},
|
|
22
|
+
"devDependencies": {},
|
|
23
|
+
"types": "./dist/types/index.d.ts",
|
|
24
|
+
"exports": {
|
|
25
|
+
".": {
|
|
26
|
+
"types": "./dist/types/index.d.ts",
|
|
27
|
+
"import": "./dist/index.es.js",
|
|
28
|
+
"require": "./dist/index.cjs.js"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|