web-audio-recorder-ts 1.0.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.
Files changed (40) hide show
  1. package/LICENSE +62 -0
  2. package/README.md +261 -0
  3. package/dist/core/WebAudioRecorder.d.ts +85 -0
  4. package/dist/core/WebAudioRecorder.d.ts.map +1 -0
  5. package/dist/core/types.d.ts +109 -0
  6. package/dist/core/types.d.ts.map +1 -0
  7. package/dist/encoders/Mp3LameEncoder.d.ts +48 -0
  8. package/dist/encoders/Mp3LameEncoder.d.ts.map +1 -0
  9. package/dist/encoders/OggVorbisEncoder.d.ts +48 -0
  10. package/dist/encoders/OggVorbisEncoder.d.ts.map +1 -0
  11. package/dist/encoders/WavAudioEncoder.d.ts +47 -0
  12. package/dist/encoders/WavAudioEncoder.d.ts.map +1 -0
  13. package/dist/index.cjs.js +770 -0
  14. package/dist/index.cjs.js.map +1 -0
  15. package/dist/index.d.ts +17 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.esm.js +760 -0
  18. package/dist/index.esm.js.map +1 -0
  19. package/dist/index.umd.js +776 -0
  20. package/dist/index.umd.js.map +1 -0
  21. package/dist/lib/Mp3LameEncoder.min.js +18 -0
  22. package/dist/lib/Mp3LameEncoder.min.js.mem +0 -0
  23. package/dist/lib/OggVorbisEncoder.min.js +17 -0
  24. package/dist/lib/OggVorbisEncoder.min.js.mem +0 -0
  25. package/dist/lib/WavAudioEncoder.min.js +1 -0
  26. package/dist/recorders/WebAudioRecorderMp3.d.ts +29 -0
  27. package/dist/recorders/WebAudioRecorderMp3.d.ts.map +1 -0
  28. package/dist/recorders/WebAudioRecorderOgg.d.ts +29 -0
  29. package/dist/recorders/WebAudioRecorderOgg.d.ts.map +1 -0
  30. package/dist/recorders/WebAudioRecorderWav.d.ts +20 -0
  31. package/dist/recorders/WebAudioRecorderWav.d.ts.map +1 -0
  32. package/lib/Mp3LameEncoder.min.js +18 -0
  33. package/lib/Mp3LameEncoder.min.js.mem +0 -0
  34. package/lib/OggVorbisEncoder.min.js +17 -0
  35. package/lib/OggVorbisEncoder.min.js.mem +0 -0
  36. package/lib/WavAudioEncoder.min.js +1 -0
  37. package/package.json +62 -0
  38. package/types/mp3-lame-encoder.d.ts +28 -0
  39. package/types/ogg-vorbis-encoder.d.ts +28 -0
  40. package/types/wav-audio-encoder.d.ts +17 -0
Binary file
@@ -0,0 +1 @@
1
+ (function(n){var a=Math.min,s=Math.max;var e=function(n,a,e){var s=e.length;for(var t=0;t<s;++t)n.setUint8(a+t,e.charCodeAt(t))};var t=function(t,e){this.sampleRate=t;this.numChannels=e;this.numSamples=0;this.dataViews=[]};t.prototype.encode=function(r){var t=r[0].length,u=this.numChannels,h=new DataView(new ArrayBuffer(t*u*2)),o=0;for(var e=0;e<t;++e)for(var n=0;n<u;++n){var i=r[n][e]*32767;h.setInt16(o,i<0?s(i,-32768):a(i,32767),true);o+=2}this.dataViews.push(h);this.numSamples+=t};t.prototype.finish=function(s){var n=this.numChannels*this.numSamples*2,t=new DataView(new ArrayBuffer(44));e(t,0,"RIFF");t.setUint32(4,36+n,true);e(t,8,"WAVE");e(t,12,"fmt ");t.setUint32(16,16,true);t.setUint16(20,1,true);t.setUint16(22,this.numChannels,true);t.setUint32(24,this.sampleRate,true);t.setUint32(28,this.sampleRate*4,true);t.setUint16(32,this.numChannels*2,true);t.setUint16(34,16,true);e(t,36,"data");t.setUint32(40,n,true);this.dataViews.unshift(t);var a=new Blob(this.dataViews,{type:"audio/wav"});this.cleanup();return a};t.prototype.cancel=t.prototype.cleanup=function(){delete this.dataViews};n.WavAudioEncoder=t})(self);
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "web-audio-recorder-ts",
3
+ "version": "1.0.0",
4
+ "description": "TypeScript port of web-audio-recorder-js with full type support for WAV, OGG Vorbis, and MP3 audio recording",
5
+ "main": "dist/index.cjs.js",
6
+ "module": "dist/index.esm.js",
7
+ "browser": "dist/index.umd.js",
8
+ "types": "dist/index.d.ts",
9
+ "files": [
10
+ "dist",
11
+ "lib",
12
+ "types",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "scripts": {
17
+ "build": "rollup -c",
18
+ "dev": "rollup -c -w",
19
+ "demo": "vite",
20
+ "test-encoder": "vite demo/test-encoder.html",
21
+ "prepublishOnly": "pnpm build",
22
+ "prepack": "pnpm build"
23
+ },
24
+ "keywords": [
25
+ "web-audio",
26
+ "audio-recording",
27
+ "wav",
28
+ "ogg",
29
+ "vorbis",
30
+ "mp3",
31
+ "typescript",
32
+ "webaudio",
33
+ "recorder",
34
+ "browser",
35
+ "microphone",
36
+ "audio-encoder"
37
+ ],
38
+ "author": "luquinhasbrito",
39
+ "license": "MIT",
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "https://github.com/lucasbrito-wdt/web-audio-recorder.git"
43
+ },
44
+ "bugs": {
45
+ "url": "https://github.com/lucasbrito-wdt/web-audio-recorder/issues"
46
+ },
47
+ "homepage": "https://github.com/lucasbrito-wdt/web-audio-recorder#readme",
48
+ "engines": {
49
+ "node": ">=14.0.0"
50
+ },
51
+ "devDependencies": {
52
+ "@rollup/plugin-commonjs": "^28.0.1",
53
+ "@rollup/plugin-node-resolve": "^15.3.0",
54
+ "@rollup/plugin-typescript": "^12.1.1",
55
+ "@types/node": "^22.10.1",
56
+ "rollup": "^4.28.1",
57
+ "rollup-plugin-copy": "^3.5.0",
58
+ "tslib": "^2.8.1",
59
+ "typescript": "^5.7.2",
60
+ "vite": "^6.0.3"
61
+ }
62
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Declarações de tipos para Mp3LameEncoder (Emscripten)
3
+ */
4
+
5
+ export interface Mp3LameEncoderConfig {
6
+ memoryInitializerPrefixURL?: string;
7
+ }
8
+
9
+ export interface Mp3LameEncoderInstance {
10
+ encode(buffers: Float32Array[]): void;
11
+ finish(mimeType?: string): Blob;
12
+ cancel(): void;
13
+ }
14
+
15
+ export interface Mp3LameEncoderModule {
16
+ new (sampleRate: number, numChannels: number, bitrate: number): Mp3LameEncoderInstance;
17
+ }
18
+
19
+ declare global {
20
+ interface Mp3LameEncoderConfig {
21
+ memoryInitializerPrefixURL?: string;
22
+ }
23
+
24
+ var Mp3LameEncoder: Mp3LameEncoderModule;
25
+ var Mp3LameEncoderConfig: Mp3LameEncoderConfig;
26
+ }
27
+
28
+ export {};
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Declarações de tipos para OggVorbisEncoder (Emscripten)
3
+ */
4
+
5
+ export interface OggVorbisEncoderConfig {
6
+ memoryInitializerPrefixURL?: string;
7
+ }
8
+
9
+ export interface OggVorbisEncoderInstance {
10
+ encode(buffers: Float32Array[]): void;
11
+ finish(mimeType?: string): Blob;
12
+ cancel(): void;
13
+ }
14
+
15
+ export interface OggVorbisEncoderModule {
16
+ new (sampleRate: number, numChannels: number, quality: number): OggVorbisEncoderInstance;
17
+ }
18
+
19
+ declare global {
20
+ interface OggVorbisEncoderConfig {
21
+ memoryInitializerPrefixURL?: string;
22
+ }
23
+
24
+ var OggVorbisEncoder: OggVorbisEncoderModule;
25
+ var OggVorbisEncoderConfig: OggVorbisEncoderConfig;
26
+ }
27
+
28
+ export {};
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Declarações de tipos para WavAudioEncoder
3
+ */
4
+
5
+ export interface WavAudioEncoderInstance {
6
+ encode(buffers: Float32Array[]): void;
7
+ finish(mimeType?: string): Blob;
8
+ cancel(): void;
9
+ }
10
+
11
+ export interface WavAudioEncoderConstructor {
12
+ new (sampleRate: number, numChannels: number): WavAudioEncoderInstance;
13
+ }
14
+
15
+ declare const WavAudioEncoder: WavAudioEncoderConstructor;
16
+
17
+ export default WavAudioEncoder;