@meersagor/wavesurfer-vue 0.0.4 → 0.1.0

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.
@@ -0,0 +1,525 @@
1
+ import type { WaveSurferIns } from "../types";
2
+ export declare const useWaveSurferRecorder: ({ containerRef, options }: WaveSurferIns) => {
3
+ waveSurfer: import("vue").Ref<{
4
+ options: {
5
+ container: string | HTMLElement;
6
+ height?: number | "auto" | undefined;
7
+ width?: string | number | undefined;
8
+ waveColor: string | (string[] & string) | (CanvasGradient & string);
9
+ progressColor: string | (string[] & string) | (CanvasGradient & string);
10
+ cursorColor?: string | undefined;
11
+ cursorWidth: number;
12
+ barWidth?: number | undefined;
13
+ barGap?: number | undefined;
14
+ barRadius?: number | undefined;
15
+ barHeight?: number | undefined;
16
+ barAlign?: "top" | "bottom" | undefined;
17
+ minPxPerSec: number;
18
+ fillParent: boolean;
19
+ url?: string | undefined;
20
+ peaks?: (number[] | {
21
+ [x: number]: number;
22
+ readonly BYTES_PER_ELEMENT: number;
23
+ readonly buffer: {
24
+ readonly byteLength: number;
25
+ slice: (begin: number, end?: number | undefined) => ArrayBuffer;
26
+ readonly [Symbol.toStringTag]: string;
27
+ } | {
28
+ readonly byteLength: number;
29
+ slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
30
+ readonly [Symbol.species]: SharedArrayBuffer;
31
+ readonly [Symbol.toStringTag]: "SharedArrayBuffer";
32
+ };
33
+ readonly byteLength: number;
34
+ readonly byteOffset: number;
35
+ copyWithin: (target: number, start: number, end?: number | undefined) => Float32Array;
36
+ every: (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => boolean;
37
+ fill: (value: number, start?: number | undefined, end?: number | undefined) => Float32Array;
38
+ filter: (predicate: (value: number, index: number, array: Float32Array) => any, thisArg?: any) => Float32Array;
39
+ find: (predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any) => number | undefined;
40
+ findIndex: (predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any) => number;
41
+ forEach: (callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any) => void;
42
+ indexOf: (searchElement: number, fromIndex?: number | undefined) => number;
43
+ join: (separator?: string | undefined) => string;
44
+ lastIndexOf: (searchElement: number, fromIndex?: number | undefined) => number;
45
+ readonly length: number;
46
+ map: (callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any) => Float32Array;
47
+ reduce: {
48
+ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;
49
+ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;
50
+ <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;
51
+ };
52
+ reduceRight: {
53
+ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;
54
+ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;
55
+ <U_1>(callbackfn: (previousValue: U_1, currentValue: number, currentIndex: number, array: Float32Array) => U_1, initialValue: U_1): U_1;
56
+ };
57
+ reverse: () => Float32Array;
58
+ set: (array: ArrayLike<number>, offset?: number | undefined) => void;
59
+ slice: (start?: number | undefined, end?: number | undefined) => Float32Array;
60
+ some: (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => boolean;
61
+ sort: (compareFn?: ((a: number, b: number) => number) | undefined) => Float32Array;
62
+ subarray: (begin?: number | undefined, end?: number | undefined) => Float32Array;
63
+ toLocaleString: () => string;
64
+ toString: () => string;
65
+ valueOf: () => Float32Array;
66
+ entries: () => IterableIterator<[number, number]>;
67
+ keys: () => IterableIterator<number>;
68
+ values: () => IterableIterator<number>;
69
+ includes: (searchElement: number, fromIndex?: number | undefined) => boolean;
70
+ at: (index: number) => number | undefined;
71
+ findLast: {
72
+ <S extends number>(predicate: (value: number, index: number, array: Float32Array) => value is S, thisArg?: any): S | undefined;
73
+ (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): number | undefined;
74
+ };
75
+ findLastIndex: (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => number;
76
+ toReversed: () => Float32Array;
77
+ toSorted: (compareFn?: ((a: number, b: number) => number) | undefined) => Float32Array;
78
+ with: (index: number, value: number) => Float32Array;
79
+ [Symbol.iterator]: () => IterableIterator<number>;
80
+ readonly [Symbol.toStringTag]: "Float32Array";
81
+ })[] | undefined;
82
+ duration?: number | undefined;
83
+ media?: HTMLMediaElement | undefined;
84
+ mediaControls?: boolean | undefined;
85
+ autoplay?: boolean | undefined;
86
+ interact: boolean;
87
+ dragToSeek: boolean;
88
+ hideScrollbar?: boolean | undefined;
89
+ audioRate?: number | undefined;
90
+ autoScroll: boolean;
91
+ autoCenter: boolean;
92
+ sampleRate: number;
93
+ splitChannels?: {
94
+ container?: string | HTMLElement | undefined;
95
+ height?: number | "auto" | undefined;
96
+ width?: string | number | undefined;
97
+ waveColor?: string | string[] | {
98
+ addColorStop: (offset: number, color: string) => void;
99
+ } | undefined;
100
+ progressColor?: string | string[] | {
101
+ addColorStop: (offset: number, color: string) => void;
102
+ } | undefined;
103
+ cursorColor?: string | undefined;
104
+ cursorWidth?: number | undefined;
105
+ barWidth?: number | undefined;
106
+ barGap?: number | undefined;
107
+ barRadius?: number | undefined;
108
+ barHeight?: number | undefined;
109
+ barAlign?: "top" | "bottom" | undefined;
110
+ minPxPerSec?: number | undefined;
111
+ fillParent?: boolean | undefined;
112
+ url?: string | undefined;
113
+ peaks?: (number[] | {
114
+ [x: number]: number;
115
+ readonly BYTES_PER_ELEMENT: number;
116
+ readonly buffer: {
117
+ readonly byteLength: number;
118
+ slice: (begin: number, end?: number | undefined) => ArrayBuffer;
119
+ readonly [Symbol.toStringTag]: string;
120
+ } | {
121
+ readonly byteLength: number;
122
+ slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
123
+ readonly [Symbol.species]: SharedArrayBuffer;
124
+ readonly [Symbol.toStringTag]: "SharedArrayBuffer";
125
+ };
126
+ readonly byteLength: number;
127
+ readonly byteOffset: number;
128
+ copyWithin: (target: number, start: number, end?: number | undefined) => Float32Array;
129
+ every: (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => boolean;
130
+ fill: (value: number, start?: number | undefined, end?: number | undefined) => Float32Array;
131
+ filter: (predicate: (value: number, index: number, array: Float32Array) => any, thisArg?: any) => Float32Array;
132
+ find: (predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any) => number | undefined;
133
+ findIndex: (predicate: (value: number, index: number, obj: Float32Array) => boolean, thisArg?: any) => number;
134
+ forEach: (callbackfn: (value: number, index: number, array: Float32Array) => void, thisArg?: any) => void;
135
+ indexOf: (searchElement: number, fromIndex?: number | undefined) => number;
136
+ join: (separator?: string | undefined) => string;
137
+ lastIndexOf: (searchElement: number, fromIndex?: number | undefined) => number;
138
+ readonly length: number;
139
+ map: (callbackfn: (value: number, index: number, array: Float32Array) => number, thisArg?: any) => Float32Array;
140
+ reduce: {
141
+ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;
142
+ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;
143
+ <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: Float32Array) => U, initialValue: U): U;
144
+ };
145
+ reduceRight: {
146
+ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number): number;
147
+ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: Float32Array) => number, initialValue: number): number;
148
+ <U_1>(callbackfn: (previousValue: U_1, currentValue: number, currentIndex: number, array: Float32Array) => U_1, initialValue: U_1): U_1;
149
+ };
150
+ reverse: () => Float32Array;
151
+ set: (array: ArrayLike<number>, offset?: number | undefined) => void;
152
+ slice: (start?: number | undefined, end?: number | undefined) => Float32Array;
153
+ some: (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => boolean;
154
+ sort: (compareFn?: ((a: number, b: number) => number) | undefined) => Float32Array;
155
+ subarray: (begin?: number | undefined, end?: number | undefined) => Float32Array;
156
+ toLocaleString: () => string;
157
+ toString: () => string;
158
+ valueOf: () => Float32Array;
159
+ entries: () => IterableIterator<[number, number]>;
160
+ keys: () => IterableIterator<number>;
161
+ values: () => IterableIterator<number>;
162
+ includes: (searchElement: number, fromIndex?: number | undefined) => boolean;
163
+ at: (index: number) => number | undefined;
164
+ findLast: {
165
+ <S extends number>(predicate: (value: number, index: number, array: Float32Array) => value is S, thisArg?: any): S | undefined;
166
+ (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): number | undefined;
167
+ };
168
+ findLastIndex: (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any) => number;
169
+ toReversed: () => Float32Array;
170
+ toSorted: (compareFn?: ((a: number, b: number) => number) | undefined) => Float32Array;
171
+ with: (index: number, value: number) => Float32Array;
172
+ [Symbol.iterator]: () => IterableIterator<number>;
173
+ readonly [Symbol.toStringTag]: "Float32Array";
174
+ })[] | undefined;
175
+ duration?: number | undefined;
176
+ media?: HTMLMediaElement | undefined;
177
+ mediaControls?: boolean | undefined;
178
+ autoplay?: boolean | undefined;
179
+ interact?: boolean | undefined;
180
+ dragToSeek?: boolean | undefined;
181
+ hideScrollbar?: boolean | undefined;
182
+ audioRate?: number | undefined;
183
+ autoScroll?: boolean | undefined;
184
+ autoCenter?: boolean | undefined;
185
+ sampleRate?: number | undefined;
186
+ splitChannels?: any[] | undefined;
187
+ normalize?: boolean | undefined;
188
+ plugins?: {
189
+ _init: (wavesurfer: import("wavesurfer.js").default) => void;
190
+ destroy: () => void;
191
+ on: <EventName extends "destroy">(event: EventName, listener: (...args: import("wavesurfer.js/dist/base-plugin").BasePluginEvents[EventName]) => void, options?: {
192
+ once?: boolean | undefined;
193
+ } | undefined) => () => void;
194
+ un: <EventName_1 extends "destroy">(event: EventName_1, listener: (...args: import("wavesurfer.js/dist/base-plugin").BasePluginEvents[EventName_1]) => void) => void;
195
+ once: <EventName_2 extends "destroy">(event: EventName_2, listener: (...args: import("wavesurfer.js/dist/base-plugin").BasePluginEvents[EventName_2]) => void) => () => void;
196
+ unAll: () => void;
197
+ }[] | undefined;
198
+ renderFunction?: ((peaks: (Float32Array | number[])[], ctx: CanvasRenderingContext2D) => void) | undefined;
199
+ fetchParams?: {
200
+ body?: string | {
201
+ readonly byteLength: number;
202
+ slice: (begin: number, end?: number | undefined) => ArrayBuffer;
203
+ readonly [Symbol.toStringTag]: string;
204
+ } | {
205
+ readonly locked: boolean;
206
+ cancel: (reason?: any) => Promise<void>;
207
+ getReader: {
208
+ (options: {
209
+ mode: "byob";
210
+ }): ReadableStreamBYOBReader;
211
+ (): ReadableStreamDefaultReader<any>;
212
+ (options?: ReadableStreamGetReaderOptions | undefined): ReadableStreamReader<any>;
213
+ };
214
+ pipeThrough: <T>(transform: ReadableWritablePair<T, any>, options?: StreamPipeOptions | undefined) => ReadableStream<T>;
215
+ pipeTo: (destination: WritableStream<any>, options?: StreamPipeOptions | undefined) => Promise<void>;
216
+ tee: () => [ReadableStream<any>, ReadableStream<any>];
217
+ } | {
218
+ readonly size: number;
219
+ readonly type: string;
220
+ arrayBuffer: () => Promise<ArrayBuffer>;
221
+ slice: (start?: number | undefined, end?: number | undefined, contentType?: string | undefined) => Blob;
222
+ stream: () => ReadableStream<Uint8Array>;
223
+ text: () => Promise<string>;
224
+ } | {
225
+ buffer: {
226
+ readonly byteLength: number;
227
+ slice: (begin: number, end?: number | undefined) => ArrayBuffer;
228
+ readonly [Symbol.toStringTag]: string;
229
+ } | {
230
+ readonly byteLength: number;
231
+ slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
232
+ readonly [Symbol.species]: SharedArrayBuffer;
233
+ readonly [Symbol.toStringTag]: "SharedArrayBuffer";
234
+ };
235
+ byteLength: number;
236
+ byteOffset: number;
237
+ } | {
238
+ append: {
239
+ (name: string, value: string | Blob): void;
240
+ (name: string, value: string): void;
241
+ (name: string, blobValue: Blob, filename?: string | undefined): void;
242
+ };
243
+ delete: (name: string) => void;
244
+ get: (name: string) => FormDataEntryValue | null;
245
+ getAll: (name: string) => FormDataEntryValue[];
246
+ has: (name: string) => boolean;
247
+ set: {
248
+ (name: string, value: string | Blob): void;
249
+ (name: string, value: string): void;
250
+ (name: string, blobValue: Blob, filename?: string | undefined): void;
251
+ };
252
+ forEach: (callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any) => void;
253
+ entries: () => IterableIterator<[string, FormDataEntryValue]>;
254
+ keys: () => IterableIterator<string>;
255
+ values: () => IterableIterator<FormDataEntryValue>;
256
+ [Symbol.iterator]: () => IterableIterator<[string, FormDataEntryValue]>;
257
+ } | {
258
+ readonly size: number;
259
+ append: (name: string, value: string) => void;
260
+ delete: (name: string, value?: string | undefined) => void;
261
+ get: (name: string) => string | null;
262
+ getAll: (name: string) => string[];
263
+ has: (name: string, value?: string | undefined) => boolean;
264
+ set: (name: string, value: string) => void;
265
+ sort: () => void;
266
+ toString: () => string;
267
+ forEach: (callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any) => void;
268
+ entries: () => IterableIterator<[string, string]>;
269
+ keys: () => IterableIterator<string>;
270
+ values: () => IterableIterator<string>;
271
+ [Symbol.iterator]: () => IterableIterator<[string, string]>;
272
+ } | null | undefined;
273
+ cache?: RequestCache | undefined;
274
+ credentials?: RequestCredentials | undefined;
275
+ headers?: [string, string][] | Record<string, string> | {
276
+ append: (name: string, value: string) => void;
277
+ delete: (name: string) => void;
278
+ get: (name: string) => string | null;
279
+ getSetCookie: () => string[];
280
+ has: (name: string) => boolean;
281
+ set: (name: string, value: string) => void;
282
+ forEach: (callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any) => void;
283
+ entries: () => IterableIterator<[string, string]>;
284
+ keys: () => IterableIterator<string>;
285
+ values: () => IterableIterator<string>;
286
+ [Symbol.iterator]: () => IterableIterator<[string, string]>;
287
+ } | undefined;
288
+ integrity?: string | undefined;
289
+ keepalive?: boolean | undefined;
290
+ method?: string | undefined;
291
+ mode?: RequestMode | undefined;
292
+ redirect?: RequestRedirect | undefined;
293
+ referrer?: string | undefined;
294
+ referrerPolicy?: ReferrerPolicy | undefined;
295
+ signal?: {
296
+ readonly aborted: boolean;
297
+ onabort: ((this: AbortSignal, ev: Event) => any) | null;
298
+ readonly reason: any;
299
+ throwIfAborted: {
300
+ (): void;
301
+ (): void;
302
+ };
303
+ addEventListener: {
304
+ <K extends "abort">(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
305
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
306
+ };
307
+ removeEventListener: {
308
+ <K_1 extends "abort">(type: K_1, listener: (this: AbortSignal, ev: AbortSignalEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
309
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
310
+ };
311
+ dispatchEvent: (event: Event) => boolean;
312
+ } | null | undefined;
313
+ window?: null | undefined;
314
+ } | undefined;
315
+ backend?: "WebAudio" | "MediaElement" | undefined;
316
+ }[] | undefined;
317
+ normalize?: boolean | undefined;
318
+ plugins?: {
319
+ _init: (wavesurfer: import("wavesurfer.js").default) => void;
320
+ destroy: () => void;
321
+ on: <EventName extends "destroy">(event: EventName, listener: (...args: import("wavesurfer.js/dist/base-plugin").BasePluginEvents[EventName]) => void, options?: {
322
+ once?: boolean | undefined;
323
+ } | undefined) => () => void;
324
+ un: <EventName_1 extends "destroy">(event: EventName_1, listener: (...args: import("wavesurfer.js/dist/base-plugin").BasePluginEvents[EventName_1]) => void) => void;
325
+ once: <EventName_2 extends "destroy">(event: EventName_2, listener: (...args: import("wavesurfer.js/dist/base-plugin").BasePluginEvents[EventName_2]) => void) => () => void;
326
+ unAll: () => void;
327
+ }[] | undefined;
328
+ renderFunction?: ((peaks: (Float32Array | number[])[], ctx: CanvasRenderingContext2D) => void) | undefined;
329
+ fetchParams?: {
330
+ body?: string | {
331
+ readonly byteLength: number;
332
+ slice: (begin: number, end?: number | undefined) => ArrayBuffer;
333
+ readonly [Symbol.toStringTag]: string;
334
+ } | {
335
+ readonly locked: boolean;
336
+ cancel: (reason?: any) => Promise<void>;
337
+ getReader: {
338
+ (options: {
339
+ mode: "byob";
340
+ }): ReadableStreamBYOBReader;
341
+ (): ReadableStreamDefaultReader<any>;
342
+ (options?: ReadableStreamGetReaderOptions | undefined): ReadableStreamReader<any>;
343
+ };
344
+ pipeThrough: <T>(transform: ReadableWritablePair<T, any>, options?: StreamPipeOptions | undefined) => ReadableStream<T>;
345
+ pipeTo: (destination: WritableStream<any>, options?: StreamPipeOptions | undefined) => Promise<void>;
346
+ tee: () => [ReadableStream<any>, ReadableStream<any>];
347
+ } | {
348
+ readonly size: number;
349
+ readonly type: string;
350
+ arrayBuffer: () => Promise<ArrayBuffer>;
351
+ slice: (start?: number | undefined, end?: number | undefined, contentType?: string | undefined) => Blob;
352
+ stream: () => ReadableStream<Uint8Array>;
353
+ text: () => Promise<string>;
354
+ } | {
355
+ buffer: {
356
+ readonly byteLength: number;
357
+ slice: (begin: number, end?: number | undefined) => ArrayBuffer;
358
+ readonly [Symbol.toStringTag]: string;
359
+ } | {
360
+ readonly byteLength: number;
361
+ slice: (begin: number, end?: number | undefined) => SharedArrayBuffer;
362
+ readonly [Symbol.species]: SharedArrayBuffer;
363
+ readonly [Symbol.toStringTag]: "SharedArrayBuffer";
364
+ };
365
+ byteLength: number;
366
+ byteOffset: number;
367
+ } | {
368
+ append: {
369
+ (name: string, value: string | Blob): void;
370
+ (name: string, value: string): void;
371
+ (name: string, blobValue: Blob, filename?: string | undefined): void;
372
+ };
373
+ delete: (name: string) => void;
374
+ get: (name: string) => FormDataEntryValue | null;
375
+ getAll: (name: string) => FormDataEntryValue[];
376
+ has: (name: string) => boolean;
377
+ set: {
378
+ (name: string, value: string | Blob): void;
379
+ (name: string, value: string): void;
380
+ (name: string, blobValue: Blob, filename?: string | undefined): void;
381
+ };
382
+ forEach: (callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any) => void;
383
+ entries: () => IterableIterator<[string, FormDataEntryValue]>;
384
+ keys: () => IterableIterator<string>;
385
+ values: () => IterableIterator<FormDataEntryValue>;
386
+ [Symbol.iterator]: () => IterableIterator<[string, FormDataEntryValue]>;
387
+ } | {
388
+ readonly size: number;
389
+ append: (name: string, value: string) => void;
390
+ delete: (name: string, value?: string | undefined) => void;
391
+ get: (name: string) => string | null;
392
+ getAll: (name: string) => string[];
393
+ has: (name: string, value?: string | undefined) => boolean;
394
+ set: (name: string, value: string) => void;
395
+ sort: () => void;
396
+ toString: () => string;
397
+ forEach: (callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any) => void;
398
+ entries: () => IterableIterator<[string, string]>;
399
+ keys: () => IterableIterator<string>;
400
+ values: () => IterableIterator<string>;
401
+ [Symbol.iterator]: () => IterableIterator<[string, string]>;
402
+ } | null | undefined;
403
+ cache?: RequestCache | undefined;
404
+ credentials?: RequestCredentials | undefined;
405
+ headers?: [string, string][] | Record<string, string> | {
406
+ append: (name: string, value: string) => void;
407
+ delete: (name: string) => void;
408
+ get: (name: string) => string | null;
409
+ getSetCookie: () => string[];
410
+ has: (name: string) => boolean;
411
+ set: (name: string, value: string) => void;
412
+ forEach: (callbackfn: (value: string, key: string, parent: Headers) => void, thisArg?: any) => void;
413
+ entries: () => IterableIterator<[string, string]>;
414
+ keys: () => IterableIterator<string>;
415
+ values: () => IterableIterator<string>;
416
+ [Symbol.iterator]: () => IterableIterator<[string, string]>;
417
+ } | undefined;
418
+ integrity?: string | undefined;
419
+ keepalive?: boolean | undefined;
420
+ method?: string | undefined;
421
+ mode?: RequestMode | undefined;
422
+ redirect?: RequestRedirect | undefined;
423
+ referrer?: string | undefined;
424
+ referrerPolicy?: ReferrerPolicy | undefined;
425
+ signal?: {
426
+ readonly aborted: boolean;
427
+ onabort: ((this: AbortSignal, ev: Event) => any) | null;
428
+ readonly reason: any;
429
+ throwIfAborted: {
430
+ (): void;
431
+ (): void;
432
+ };
433
+ addEventListener: {
434
+ <K extends "abort">(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
435
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
436
+ };
437
+ removeEventListener: {
438
+ <K_1 extends "abort">(type: K_1, listener: (this: AbortSignal, ev: AbortSignalEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
439
+ (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
440
+ };
441
+ dispatchEvent: (event: Event) => boolean;
442
+ } | null | undefined;
443
+ window?: null | undefined;
444
+ } | undefined;
445
+ backend?: "WebAudio" | "MediaElement" | undefined;
446
+ };
447
+ setOptions: (options: Partial<import("wavesurfer.js").WaveSurferOptions>) => void;
448
+ registerPlugin: <T_1 extends import("wavesurfer.js/dist/base-plugin").GenericPlugin>(plugin: T_1) => T_1;
449
+ getWrapper: () => HTMLElement;
450
+ getScroll: () => number;
451
+ getActivePlugins: () => import("wavesurfer.js/dist/base-plugin").GenericPlugin[];
452
+ load: (url: string, channelData?: (Float32Array | number[])[] | undefined, duration?: number | undefined) => Promise<void>;
453
+ loadBlob: (blob: Blob, channelData?: (Float32Array | number[])[] | undefined, duration?: number | undefined) => Promise<void>;
454
+ zoom: (minPxPerSec: number) => void;
455
+ getDecodedData: () => AudioBuffer | null;
456
+ exportPeaks: ({ channels, maxLength, precision }?: {
457
+ channels?: number | undefined;
458
+ maxLength?: number | undefined;
459
+ precision?: number | undefined;
460
+ } | undefined) => number[][];
461
+ getDuration: () => number;
462
+ toggleInteraction: (isInteractive: boolean) => void;
463
+ seekTo: (progress: number) => void;
464
+ playPause: () => Promise<void>;
465
+ stop: () => void;
466
+ skip: (seconds: number) => void;
467
+ empty: () => void;
468
+ setMediaElement: (element: HTMLMediaElement) => void;
469
+ exportImage: {
470
+ (format: string, quality: number, type: "dataURL"): Promise<string[]>;
471
+ (format: string, quality: number, type: "blob"): Promise<Blob[]>;
472
+ };
473
+ destroy: () => void;
474
+ play: () => Promise<void>;
475
+ pause: () => void;
476
+ isPlaying: () => boolean;
477
+ setTime: (time: number) => void;
478
+ getCurrentTime: () => number;
479
+ getVolume: () => number;
480
+ setVolume: (volume: number) => void;
481
+ getMuted: () => boolean;
482
+ setMuted: (muted: boolean) => void;
483
+ getPlaybackRate: () => number;
484
+ setPlaybackRate: (rate: number, preservePitch?: boolean | undefined) => void;
485
+ getMediaElement: () => HTMLMediaElement;
486
+ setSinkId: (sinkId: string) => Promise<void>;
487
+ on: <EventName_3 extends keyof import("wavesurfer.js").WaveSurferEvents>(event: EventName_3, listener: (...args: import("wavesurfer.js").WaveSurferEvents[EventName_3]) => void, options?: {
488
+ once?: boolean | undefined;
489
+ } | undefined) => () => void;
490
+ un: <EventName_4 extends keyof import("wavesurfer.js").WaveSurferEvents>(event: EventName_4, listener: (...args: import("wavesurfer.js").WaveSurferEvents[EventName_4]) => void) => void;
491
+ once: <EventName_5 extends keyof import("wavesurfer.js").WaveSurferEvents>(event: EventName_5, listener: (...args: import("wavesurfer.js").WaveSurferEvents[EventName_5]) => void) => () => void;
492
+ unAll: () => void;
493
+ } | null>;
494
+ waveSurferRecorder: import("vue").Ref<{
495
+ renderMicStream: (stream: MediaStream) => {
496
+ onDestroy: () => void;
497
+ onEnd: () => void;
498
+ };
499
+ startMic: (options?: import("wavesurfer.js/dist/plugins/record.js").RecordPluginDeviceOptions | undefined) => Promise<MediaStream>;
500
+ stopMic: () => void;
501
+ startRecording: (options?: import("wavesurfer.js/dist/plugins/record.js").RecordPluginDeviceOptions | undefined) => Promise<void>;
502
+ getDuration: () => number;
503
+ isRecording: () => boolean;
504
+ isPaused: () => boolean;
505
+ isActive: () => boolean;
506
+ stopRecording: () => void;
507
+ pauseRecording: () => void;
508
+ resumeRecording: () => void;
509
+ destroy: () => void;
510
+ _init: (wavesurfer: import("wavesurfer.js").default) => void;
511
+ on: <EventName_6 extends "destroy" | "record-progress" | "record-start" | "record-pause" | "record-resume" | "record-end">(event: EventName_6, listener: (...args: import("wavesurfer.js/dist/plugins/record.js").RecordPluginEvents[EventName_6]) => void, options?: {
512
+ once?: boolean | undefined;
513
+ } | undefined) => () => void;
514
+ un: <EventName_7 extends "destroy" | "record-progress" | "record-start" | "record-pause" | "record-resume" | "record-end">(event: EventName_7, listener: (...args: import("wavesurfer.js/dist/plugins/record.js").RecordPluginEvents[EventName_7]) => void) => void;
515
+ once: <EventName_8 extends "destroy" | "record-progress" | "record-start" | "record-pause" | "record-resume" | "record-end">(event: EventName_8, listener: (...args: import("wavesurfer.js/dist/plugins/record.js").RecordPluginEvents[EventName_8]) => void) => () => void;
516
+ unAll: () => void;
517
+ } | null>;
518
+ currentTime: import("vue").ComputedRef<string>;
519
+ startRecording: () => void;
520
+ stopRecording: () => Promise<Blob>;
521
+ pauseRecording: () => void;
522
+ isRecording: import("vue").Ref<boolean>;
523
+ isPaused: import("vue").Ref<boolean>;
524
+ isPauseResume: import("vue").ComputedRef<boolean>;
525
+ };
@@ -0,0 +1,8 @@
1
+ import type { Ref } from 'vue';
2
+ import type WaveSurfer from 'wavesurfer.js';
3
+ export declare const useWaveSurferState: (wavesurfer: Ref<WaveSurfer | null>) => {
4
+ isReady: Ref<boolean>;
5
+ isPlaying: Ref<boolean>;
6
+ currentTime: Ref<number>;
7
+ totalDuration: Ref<number>;
8
+ };
@@ -0,0 +1,2 @@
1
+ import type { WaveSurferEvents } from 'wavesurfer.js';
2
+ export declare const waveServerEventsEmitter: Array<keyof WaveSurferEvents>;
@@ -0,0 +1,4 @@
1
+ import WaveSurferPlayer from './components/WaveSurferPlayer.vue';
2
+ import { useWaveSurfer } from './composables/useWaveSurfer';
3
+ import { useWaveSurferRecorder } from './composables/useWaveSurferRecorder';
4
+ export { WaveSurferPlayer, useWaveSurfer, useWaveSurferRecorder };
@@ -0,0 +1,10 @@
1
+ import { type WaveSurferOptions } from 'wavesurfer.js';
2
+ import type { Ref } from 'vue';
3
+ import type { useWaveSurferInstance } from '../composables/useWaveSurferInstance';
4
+ import type { useWaveSurferState } from '../composables/useWaveSurferState';
5
+ export type PartialWaveSurferOptions = Omit<WaveSurferOptions, 'container'>;
6
+ export type WaveSurferIns = {
7
+ containerRef: Ref<HTMLElement | null>;
8
+ options: Partial<PartialWaveSurferOptions>;
9
+ };
10
+ export type UseWaveSurfer = ReturnType<typeof useWaveSurferInstance> & ReturnType<typeof useWaveSurferState>;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "author": "Meer Sagor",
3
3
  "name": "@meersagor/wavesurfer-vue",
4
- "version": "0.0.4",
4
+ "version": "0.1.0",
5
5
  "description": "Vue3 component for wavesurfer.js",
6
6
  "private": false,
7
7
  "type": "module",
@@ -25,7 +25,7 @@
25
25
  "require": "./dist/@meersagor-wavesurfer-vue.umd.cjs"
26
26
  }
27
27
  },
28
- "types": "./dist/index.d.ts",
28
+ "types": "./dist/types/index.d.ts",
29
29
  "publishConfig": {
30
30
  "access": "public"
31
31
  },
@@ -38,10 +38,7 @@
38
38
  "player"
39
39
  ],
40
40
  "scripts": {
41
- "dev": "vite",
42
- "build": "run-p type-check \"build-only {@}\" --",
43
- "preview": "vite preview",
44
- "build-only": "vite build",
41
+ "build": "vite build && vue-tsc --declaration --emitDeclarationOnly && mv dist/src dist/types",
45
42
  "type-check": "vue-tsc --build --force",
46
43
  "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
47
44
  "format": "prettier --write src/",
@@ -49,7 +46,7 @@
49
46
  },
50
47
  "dependencies": {
51
48
  "vue": "^3.3.11",
52
- "wavesurfer.js": "^7.7.3"
49
+ "wavesurfer.js": "^7.7.11"
53
50
  },
54
51
  "devDependencies": {
55
52
  "@changesets/cli": "^2.27.1",
@@ -66,7 +63,6 @@
66
63
  "prettier": "^3.0.3",
67
64
  "typescript": "~5.3.0",
68
65
  "vite": "^5.0.10",
69
- "vite-plugin-dts": "^3.7.1",
70
66
  "vue-tsc": "^1.8.25"
71
67
  }
72
68
  }
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import WaveSurferPlayer from './components/WaveSurferPlayer.vue';
2
- import { useWaveSurfer } from './composables/useWaveSurfer';
3
- export { WaveSurferPlayer, useWaveSurfer };
@@ -1 +0,0 @@
1
- {"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/@vue/shared/dist/shared.d.ts","../node_modules/@vue/reactivity/dist/reactivity.d.ts","../node_modules/@vue/runtime-core/dist/runtime-core.d.ts","../node_modules/csstype/index.d.ts","../node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","../node_modules/vue/jsx-runtime/index.d.ts","../node_modules/@babel/parser/typings/babel-parser.d.ts","../node_modules/source-map-js/source-map.d.ts","../node_modules/@vue/compiler-core/dist/compiler-core.d.ts","../node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts","../node_modules/vue/dist/vue.d.mts","../node_modules/wavesurfer.js/dist/event-emitter.d.ts","../node_modules/wavesurfer.js/dist/base-plugin.d.ts","../node_modules/wavesurfer.js/dist/player.d.ts","../node_modules/wavesurfer.js/dist/wavesurfer.d.ts","../src/composables/useWaveSurferInstance.ts","../src/composables/useWaveSurferState.ts","../src/types/index.ts","../src/composables/useWaveSurfer.ts","../src/eventsEmitter/index.ts","../src/components/WaveSurferPlayer.vue.ts","../__VLS_types.d.ts","../node_modules/vite/types/hmrPayload.d.ts","../node_modules/vite/types/customEvent.d.ts","../node_modules/vite/types/hot.d.ts","../node_modules/vite/types/importGlob.d.ts","../node_modules/vite/types/importMeta.d.ts","../node_modules/vite/client.d.ts","../env.d.ts","../src/index.ts","../node_modules/wavesurfer.js/dist/plugins/record.d.ts","../src/composables/useWaveSurferRecorder.ts"],"fileInfos":[{"version":"1","affectsGlobalScope":true},"1","1","1","1","1","1",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},{"version":"1","affectsGlobalScope":true},"1","1",{"version":"1","affectsGlobalScope":true},"1","1","1","1","1","1","1","1","0","0","0","0","0","0","0","0","0","0",{"version":"1","affectsGlobalScope":true},"1","1","0","1",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0","0"],"root":[[61,67],74,75,77],"options":{"composite":true,"declaration":true,"declarationDir":"./","esModuleInterop":true,"jsx":1,"jsxImportSource":"vue","module":99,"noImplicitThis":true,"outDir":"./","skipLibCheck":true,"strict":true,"target":99,"useDefineForClassFields":true},"fileIdsList":[[48,50,51,56],[73],[46,52,53],[54],[46],[46,47,48,50],[47,48,49],[53],[72],[68],[69],[70,71],[50,55],[50],[57,60],[57],[58],[58,59],[51,56,63,64,65],[51,56,60,61,62,63],[51,56,60,63],[51,56,61,63,76],[51,56,60],[51,60],[51,64,66],[51,56,60,61,62]],"referencedMap":[[67,1],[74,2],[54,3],[55,4],[47,5],[48,6],[50,7],[53,8],[73,9],[69,10],[70,11],[72,12],[56,13],[51,14],[58,15],[59,16],[76,17],[60,18],[66,19],[64,20],[61,21],[77,22],[62,23],[65,24],[75,25],[63,26]],"exportedModulesMap":[[67,1],[74,2],[54,3],[55,4],[47,5],[48,6],[50,7],[53,8],[73,9],[69,10],[70,11],[72,12],[56,13],[51,14],[58,15],[59,16],[76,17],[60,18],[66,19],[64,20],[61,21],[77,22],[62,23],[65,24],[75,25],[63,26]],"semanticDiagnosticsPerFile":[67,74,52,54,55,47,48,50,46,49,53,44,45,8,9,11,10,2,12,13,14,15,16,17,18,19,3,4,20,24,21,22,23,25,26,27,5,28,29,30,31,6,35,32,33,34,36,7,37,42,43,38,39,40,41,1,73,69,68,70,71,72,56,51,58,57,59,76,60,66,64,61,77,62,65,75,63],"affectedFilesPendingEmit":[66,64,61,77,62,65,75,63],"emitSignatures":[61,62,63,64,65,66,75,77]},"version":"5.3.3"}