@siteed/audio-studio 3.2.1-beta.1 → 3.2.1-beta.3

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 (35) hide show
  1. package/CHANGELOG.md +22 -1
  2. package/README.md +12 -1
  3. package/build/cjs/AudioStudio.types.js.map +1 -1
  4. package/build/cjs/useAudioRecorder.js +115 -93
  5. package/build/cjs/useAudioRecorder.js.map +1 -1
  6. package/build/cjs/utils/nativeRecordingOptions.js +13 -0
  7. package/build/cjs/utils/nativeRecordingOptions.js.map +1 -0
  8. package/build/cjs/utils/nativeRecordingOptions.test.js +30 -0
  9. package/build/cjs/utils/nativeRecordingOptions.test.js.map +1 -0
  10. package/build/esm/AudioStudio.types.js.map +1 -1
  11. package/build/esm/useAudioRecorder.js +115 -93
  12. package/build/esm/useAudioRecorder.js.map +1 -1
  13. package/build/esm/utils/nativeRecordingOptions.js +10 -0
  14. package/build/esm/utils/nativeRecordingOptions.js.map +1 -0
  15. package/build/esm/utils/nativeRecordingOptions.test.js +28 -0
  16. package/build/esm/utils/nativeRecordingOptions.test.js.map +1 -0
  17. package/build/types/AudioStudio.types.d.ts +19 -5
  18. package/build/types/AudioStudio.types.d.ts.map +1 -1
  19. package/build/types/useAudioRecorder.d.ts +2 -1
  20. package/build/types/useAudioRecorder.d.ts.map +1 -1
  21. package/build/types/utils/nativeRecordingOptions.d.ts +28 -0
  22. package/build/types/utils/nativeRecordingOptions.d.ts.map +1 -0
  23. package/build/types/utils/nativeRecordingOptions.test.d.ts +2 -0
  24. package/build/types/utils/nativeRecordingOptions.test.d.ts.map +1 -0
  25. package/package.json +2 -1
  26. package/plugin/build/index.cjs +79 -47
  27. package/plugin/build/index.d.cts +15 -0
  28. package/plugin/build/index.js +79 -47
  29. package/plugin/src/index.test.ts +78 -0
  30. package/plugin/src/index.ts +141 -59
  31. package/plugin/tsconfig.json +6 -1
  32. package/src/AudioStudio.types.ts +27 -5
  33. package/src/useAudioRecorder.tsx +161 -126
  34. package/src/utils/nativeRecordingOptions.test.ts +29 -0
  35. package/src/utils/nativeRecordingOptions.ts +20 -0
@@ -0,0 +1,28 @@
1
+ import { createNativeRecordingOptions } from './nativeRecordingOptions';
2
+ describe('createNativeRecordingOptions', () => {
3
+ it('keeps maxDurationMs native but leaves auto-stop finalization hook-owned', () => {
4
+ const nativeOptions = createNativeRecordingOptions({
5
+ maxDurationMs: 1500,
6
+ autoStopOnMaxDuration: true,
7
+ onMaxDurationReached: jest.fn(),
8
+ onRecordingStopped: jest.fn(),
9
+ onRecordingInterrupted: jest.fn(),
10
+ onAudioAnalysis: jest.fn(),
11
+ onAudioStream: jest.fn(),
12
+ keepFullAnalysis: true,
13
+ sampleRate: 16000,
14
+ });
15
+ expect(nativeOptions).toMatchObject({
16
+ maxDurationMs: 1500,
17
+ sampleRate: 16000,
18
+ });
19
+ expect(nativeOptions).not.toHaveProperty('autoStopOnMaxDuration');
20
+ expect(nativeOptions).not.toHaveProperty('onMaxDurationReached');
21
+ expect(nativeOptions).not.toHaveProperty('onRecordingStopped');
22
+ expect(nativeOptions).not.toHaveProperty('onRecordingInterrupted');
23
+ expect(nativeOptions).not.toHaveProperty('onAudioAnalysis');
24
+ expect(nativeOptions).not.toHaveProperty('onAudioStream');
25
+ expect(nativeOptions).not.toHaveProperty('keepFullAnalysis');
26
+ });
27
+ });
28
+ //# sourceMappingURL=nativeRecordingOptions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeRecordingOptions.test.js","sourceRoot":"","sources":["../../../src/utils/nativeRecordingOptions.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAA;AAEvE,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QAC/E,MAAM,aAAa,GAAG,4BAA4B,CAAC;YAC/C,aAAa,EAAE,IAAI;YACnB,qBAAqB,EAAE,IAAI;YAC3B,oBAAoB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC/B,kBAAkB,EAAE,IAAI,CAAC,EAAE,EAAE;YAC7B,sBAAsB,EAAE,IAAI,CAAC,EAAE,EAAE;YACjC,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;YAC1B,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;YACxB,gBAAgB,EAAE,IAAI;YACtB,UAAU,EAAE,KAAK;SACpB,CAAC,CAAA;QAEF,MAAM,CAAC,aAAa,CAAC,CAAC,aAAa,CAAC;YAChC,aAAa,EAAE,IAAI;YACnB,UAAU,EAAE,KAAK;SACpB,CAAC,CAAA;QACF,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAA;QACjE,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAA;QAChE,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAA;QAC9D,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAA;QAClE,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAA;QAC3D,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,eAAe,CAAC,CAAA;QACzD,MAAM,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA","sourcesContent":["import { createNativeRecordingOptions } from './nativeRecordingOptions'\n\ndescribe('createNativeRecordingOptions', () => {\n it('keeps maxDurationMs native but leaves auto-stop finalization hook-owned', () => {\n const nativeOptions = createNativeRecordingOptions({\n maxDurationMs: 1500,\n autoStopOnMaxDuration: true,\n onMaxDurationReached: jest.fn(),\n onRecordingStopped: jest.fn(),\n onRecordingInterrupted: jest.fn(),\n onAudioAnalysis: jest.fn(),\n onAudioStream: jest.fn(),\n keepFullAnalysis: true,\n sampleRate: 16000,\n })\n\n expect(nativeOptions).toMatchObject({\n maxDurationMs: 1500,\n sampleRate: 16000,\n })\n expect(nativeOptions).not.toHaveProperty('autoStopOnMaxDuration')\n expect(nativeOptions).not.toHaveProperty('onMaxDurationReached')\n expect(nativeOptions).not.toHaveProperty('onRecordingStopped')\n expect(nativeOptions).not.toHaveProperty('onRecordingInterrupted')\n expect(nativeOptions).not.toHaveProperty('onAudioAnalysis')\n expect(nativeOptions).not.toHaveProperty('onAudioStream')\n expect(nativeOptions).not.toHaveProperty('keepFullAnalysis')\n })\n})\n"]}
@@ -185,6 +185,7 @@ export interface MaxDurationReachedEvent {
185
185
  /** Whether the recorder was configured to stop automatically after this event */
186
186
  autoStopped: boolean;
187
187
  }
188
+ export type RecordingStopReason = 'manual' | 'maxDuration';
188
189
  export interface AudioSessionConfig {
189
190
  /**
190
191
  * Audio session category that defines the audio behavior
@@ -421,18 +422,27 @@ export interface RecordingConfig {
421
422
  /**
422
423
  * Stop recording automatically when maxDurationMs is reached.
423
424
  *
424
- * Defaults to false. The MaxDurationReached event is emitted before the stop request.
425
- * The automatic stop result is not returned to onMaxDurationReached; use the
426
- * event and stream callbacks for immediate UI updates.
425
+ * Defaults to false. When used with `useAudioRecorder`, the
426
+ * MaxDurationReached event is emitted immediately, then the hook stops the
427
+ * recorder and exposes the final result through `onRecordingStopped`.
427
428
  */
428
429
  autoStopOnMaxDuration?: boolean;
429
430
  /**
430
431
  * Optional callback invoked when maxDurationMs is reached.
431
432
  *
432
- * If autoStopOnMaxDuration is true, this callback is invoked before the
433
- * recorder finishes stopping. The final stop result is not passed here.
433
+ * This remains an immediate threshold callback. If
434
+ * autoStopOnMaxDuration is true, use `onRecordingStopped` for the full
435
+ * recording result after stop completes.
434
436
  */
435
437
  onMaxDurationReached?: (_: MaxDurationReachedEvent) => void;
438
+ /**
439
+ * Optional callback invoked after a recording has fully stopped and the
440
+ * final `AudioRecording` result is available.
441
+ *
442
+ * The reason is `manual` when stopped through `stopRecording()` and
443
+ * `maxDuration` when stopped by `autoStopOnMaxDuration`.
444
+ */
445
+ onRecordingStopped?: (recording: AudioRecording, reason: RecordingStopReason) => void | Promise<void>;
436
446
  /** Optional directory path where output files will be saved */
437
447
  outputDirectory?: string;
438
448
  /** Optional filename for the recording (uses UUID if not provided) */
@@ -640,10 +650,14 @@ export interface UseAudioRecorderState {
640
650
  maxDurationReached?: boolean;
641
651
  /** Analysis data for the recording if processing was enabled */
642
652
  analysisData?: AudioAnalysis;
653
+ /** Reason associated with the last completed recording */
654
+ lastRecordingReason?: RecordingStopReason;
643
655
  /** Optional callback to handle recording interruptions */
644
656
  onRecordingInterrupted?: (_: RecordingInterruptionEvent) => void;
645
657
  /** Optional callback invoked when maxDurationMs is reached */
646
658
  onMaxDurationReached?: (_: MaxDurationReachedEvent) => void;
659
+ /** Optional callback invoked when a recording fully stops */
660
+ onRecordingStopped?: (recording: AudioRecording, reason: RecordingStopReason) => void | Promise<void>;
647
661
  }
648
662
  /**
649
663
  * Represents an event emitted during the trimming process to report progress.
@@ -1 +1 @@
1
- {"version":3,"file":"AudioStudio.types.d.ts","sourceRoot":"","sources":["../../src/AudioStudio.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AudioStudio.types.d.ts","sourceRoot":"","sources":["../../src/AudioStudio.types.ts"],"names":[],"mappings":"AACA,OAAO,EACH,aAAa,EACb,oBAAoB,EACpB,cAAc,EACjB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAElD,MAAM,WAAW,eAAe;IAC5B,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAA;IAChB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAA;IACf,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAA;IACd,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAC9B,4DAA4D;IAC5D,WAAW,EAAE,OAAO,CAAA;IACpB,uDAAuD;IACvD,QAAQ,EAAE,OAAO,CAAA;IACjB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAA;IAChB,iEAAiE;IACjE,gBAAgB,EAAE,MAAM,CAAA;IACxB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAA;IAChB,qDAAqD;IACrD,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC/B;AAED,UAAU,kBAAkB;IACxB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAA;IAChB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAA;IACrB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAA;IACjB,oFAAoF;IACpF,WAAW,CAAC,EAAE,eAAe,GAAG;QAC5B,kEAAkE;QAClE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KACvB,CAAA;CACJ;AAED,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IACzD,oFAAoF;IACpF,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAAA;IACxC,YAAY,CAAC,EAAE,SAAS,GAAG,KAAK,CAAA;CACnC;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC7D,+DAA+D;IAC/D,IAAI,EAAE,YAAY,CAAA;IAClB,YAAY,EAAE,SAAS,CAAA;CAC1B;AAED,MAAM,MAAM,cAAc,GAAG,iBAAiB,GAAG,qBAAqB,CAAA;AAEtE;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAA;AAEjE;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;AAE9C;;;;;;;;;GASG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;AAElC;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,QAAQ,KAAK,CAAA;AAE5C,MAAM,MAAM,WAAW,GAAG;IACtB,6CAA6C;IAC7C,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;IAClD,mDAAmD;IACnD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;IACpD,mDAAmD;IACnD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;IACnD,qDAAqD;IACrD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;IACnD,oDAAoD;IACpD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;CACvD,CAAA;AAED,MAAM,WAAW,KAAK;IAClB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,uFAAuF;IACvF,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,eAAe;IAC5B,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAA;IACV,2DAA2D;IAC3D,MAAM,EAAE,OAAO,CAAA;IACf,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAA;IACf,uDAAuD;IACvD,MAAM,EAAE,KAAK,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC3B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAA;IAClB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,QAAQ,EAAE,QAAQ,CAAA;IAClB,qCAAqC;IACrC,UAAU,EAAE,UAAU,CAAA;IACtB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,aAAa,CAAA;IAC5B,yFAAyF;IACzF,WAAW,CAAC,EAAE,eAAe,GAAG;QAC5B,uCAAuC;QACvC,iBAAiB,EAAE,MAAM,CAAA;KAC5B,CAAA;CACJ;AAED,MAAM,WAAW,oBAAoB;IACjC,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,qCAAqC;IACrC,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,yFAAyF;IACzF,WAAW,CAAC,EAAE,eAAe,GAAG;QAC5B,uCAAuC;QACvC,iBAAiB,EAAE,MAAM,CAAA;KAC5B,CAAA;CACJ;AAED,MAAM,WAAW,uBAAuB;IACpC,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAA;IAClB,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iFAAiF;IACjF,WAAW,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,aAAa,CAAA;AAE1D,MAAM,WAAW,kBAAkB;IAC/B;;;;;;;;OAQG;IACH,QAAQ,CAAC,EACH,SAAS,GACT,aAAa,GACb,UAAU,GACV,QAAQ,GACR,eAAe,GACf,YAAY,CAAA;IAClB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EACC,SAAS,GACT,WAAW,GACX,WAAW,GACX,UAAU,GACV,gBAAgB,GAChB,aAAa,GACb,eAAe,GACf,aAAa,CAAA;IACnB;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,CACZ,eAAe,GACf,YAAY,GACZ,sCAAsC,GACtC,gBAAgB,GAChB,oBAAoB,GACpB,cAAc,GACd,kBAAkB,CACvB,EAAE,CAAA;CACN;AAED,MAAM,WAAW,SAAS;IACtB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,kBAAkB,CAAA;CACpC;AAED,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC1B;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,YAAY,GAAG,aAAa,GAAG,eAAe,GAAG,MAAM,CAAA;CAC/E;AAED,kDAAkD;AAClD,MAAM,WAAW,SAAS;CAEzB;AAGD,MAAM,MAAM,2BAA2B;AACnC,0CAA0C;AACxC,gBAAgB;AAClB,+BAA+B;GAC7B,gBAAgB;AAClB,gDAAgD;GAC9C,WAAW;AACb,sDAAsD;GACpD,gBAAgB;AAClB,yDAAyD;GACvD,kBAAkB;AACpB,wCAAwC;GACtC,oBAAoB;AACtB,+DAA+D;GAC7D,gBAAgB;AAClB,uCAAuC;GACrC,iBAAiB;AACnB,8BAA8B;GAC5B,oBAAoB,CAAA;AAG1B,MAAM,WAAW,0BAA0B;IACvC,gDAAgD;IAChD,MAAM,EAAE,2BAA2B,CAAA;IACnC,wEAAwE;IACxE,QAAQ,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,uBAAuB;IACpC,4CAA4C;IAC5C,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,8CAA8C;IAC9C,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,oDAAoD;IACpD,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,yDAAyD;IACzD,uBAAuB,CAAC,EAAE,OAAO,CAAA;CACpC;AAED,MAAM,WAAW,WAAW;IACxB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAA;IACV,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAA;IAClB,wCAAwC;IACxC,YAAY,EAAE,uBAAuB,CAAA;IACrC,gDAAgD;IAChD,WAAW,EAAE,OAAO,CAAA;CACvB;AAED,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B;IACpC,8CAA8C;;IAE9C,sDAAsD;;CAEhD,CAAA;AAEV,kDAAkD;AAClD,MAAM,MAAM,+BAA+B,GACvC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,OAAO,2BAA2B,CAAC,CAAA;AAElF;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,OAAO,CAAC,EAAE;QACN,gEAAgE;QAChE,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,wEAAwE;QACxE,MAAM,CAAC,EAAE,KAAK,CAAA;KACjB,CAAA;IAED;;OAEG;IACH,UAAU,CAAC,EAAE;QACT,kEAAkE;QAClE,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB;;;;WAIG;QACH,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;QACvB,mEAAmE;QACnE,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB;;;;;WAKG;QACH,eAAe,CAAC,EAAE,OAAO,CAAA;KAC5B,CAAA;CASJ;AAED,MAAM,WAAW,eAAe;IAC5B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,UAAU,CAAA;IAEvB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IAEhB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAA;IAEvB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,sFAAsF;IACtF,0BAA0B,CAAC,EAAE,OAAO,CAAA;IAEpC,yCAAyC;IACzC,YAAY,CAAC,EAAE,kBAAkB,CAAA;IAEjC,iDAAiD;IACjD,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAE1B,iCAAiC;IACjC,GAAG,CAAC,EAAE,SAAS,CAAA;IAEf,qCAAqC;IACrC,OAAO,CAAC,EAAE,aAAa,CAAA;IAEvB,yCAAyC;IACzC,GAAG,CAAC,EAAE,SAAS,CAAA;IAEf,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAE1B,yDAAyD;IACzD,QAAQ,CAAC,EAAE,oBAAoB,CAAA;IAE/B,oDAAoD;IACpD,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAEpD,oEAAoE;IACpE,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAE1D;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,YAAY,CAAA;IAErB,yFAAyF;IACzF,2BAA2B,CAAC,EAAE,OAAO,CAAA;IAErC,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,0BAA0B,KAAK,IAAI,CAAA;IAEhE;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAE/B;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,CAAC,CAAC,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAE3D;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,CACjB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,mBAAmB,KAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEzB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,0DAA0D;IAC1D,2BAA2B,CAAC,EAAE,+BAA+B,CAAA;IAE7D;;;;;;;;;;;;;OAaG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,KAAK,CAAA;CACnC;AAED,MAAM,WAAW,kBAAkB;IAC/B,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,kDAAkD;IAClD,OAAO,CAAC,EAAE;QACN,qDAAqD;QACrD,SAAS,CAAC,EAAE,MAAM,CAAA;QAElB,oDAAoD;QACpD,WAAW,CAAC,EAAE,MAAM,CAAA;QAEpB,2DAA2D;QAC3D,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAE3B,8CAA8C;QAC9C,cAAc,CAAC,EAAE,MAAM,CAAA;QAEvB,kEAAkE;QAClE,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;QAE9B,uEAAuE;QACvE,QAAQ,CAAC,EAAE,cAAc,CAAA;QAEzB,4DAA4D;QAC5D,UAAU,CAAC,EAAE,MAAM,CAAA;QAEnB,gEAAgE;QAChE,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAAA;QAErD,4EAA4E;QAC5E,WAAW,CAAC,EAAE,MAAM,CAAA;QAEpB,+EAA+E;QAC/E,sBAAsB,CAAC,EAAE,OAAO,CAAA;KACnC,CAAA;IAED,8CAA8C;IAC9C,GAAG,CAAC,EAAE;QACF,yFAAyF;QACzF,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAC9B,CAAA;CACJ;AAED,MAAM,WAAW,kBAAkB;IAC/B,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IAEb,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAA;IAElB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC3B,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IACzB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,uBAAuB;IACpC,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAA;IACf,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qDAAqD;IACrD,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,wDAAwD;IACxD,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,2CAA2C;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,cAAc,CAAA;CACnC;AAED,MAAM,WAAW,kBAAkB;IAC/B,yBAAyB;IACzB,OAAO,EAAE,UAAU,CAAA;IACnB,kFAAkF;IAClF,cAAc,CAAC,EAAE,YAAY,CAAA;IAC7B,8FAA8F;IAC9F,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAA;IAChB,qCAAqC;IACrC,QAAQ,EAAE,QAAQ,CAAA;IAClB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,MAAM,EAAE,SAAS,CAAA;IACjB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf,gDAAgD;IAChD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,qBAAqB;IAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,gBAAgB,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,wDAAwD;IACxD,cAAc,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACrE,iEAAiE;IACjE,aAAa,EAAE,MAAM,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IACnD,mCAAmC;IACnC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,iCAAiC;IACjC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,sDAAsD;IACtD,WAAW,EAAE,OAAO,CAAA;IACpB,uDAAuD;IACvD,QAAQ,EAAE,OAAO,CAAA;IACjB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAA;IAClB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,gEAAgE;IAChE,YAAY,CAAC,EAAE,aAAa,CAAA;IAC5B,0DAA0D;IAC1D,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;IACzC,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,0BAA0B,KAAK,IAAI,CAAA;IAChE,8DAA8D;IAC9D,oBAAoB,CAAC,EAAE,CAAC,CAAC,EAAE,uBAAuB,KAAK,IAAI,CAAA;IAC3D,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,CACjB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,mBAAmB,KAC1B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IAEnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IAEf;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAA;IAEnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,EAAE,CAAA;IAEpB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,YAAY,CAAC,EAAE;QACX;;;;;WAKG;QACH,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;QAE9B;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,CAAA;QAEnB;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAA;QAEjB;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAA;QAEjB;;;WAGG;QACH,OAAO,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IAED;;;OAGG;IACH,eAAe,CAAC,EAAE,cAAc,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAA;IAEX;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE;QACV;;WAEG;QACH,MAAM,EAAE,MAAM,CAAA;QAEd;;WAEG;QACH,OAAO,EAAE,MAAM,CAAA;QAEf;;WAEG;QACH,IAAI,EAAE,MAAM,CAAA;KACf,CAAA;IAED;;OAEG;IACH,cAAc,CAAC,EAAE;QACb;;WAEG;QACH,UAAU,EAAE,MAAM,CAAA;KACrB,CAAA;CACJ"}
@@ -1,5 +1,5 @@
1
1
  import { AudioAnalysis } from './AudioAnalysis/AudioAnalysis.types';
2
- import { AudioRecording, CompressionInfo, ConsoleLike, RecordingConfig, StartRecordingResult } from './AudioStudio.types';
2
+ import { AudioRecording, CompressionInfo, ConsoleLike, RecordingConfig, RecordingStopReason, StartRecordingResult } from './AudioStudio.types';
3
3
  export interface UseAudioRecorderProps {
4
4
  logger?: ConsoleLike;
5
5
  audioWorkletUrl?: string;
@@ -19,6 +19,7 @@ export interface UseAudioRecorderState {
19
19
  analysisData?: AudioAnalysis;
20
20
  maxDurationMs?: number;
21
21
  maxDurationReached?: boolean;
22
+ lastRecordingReason?: RecordingStopReason;
22
23
  }
23
24
  export declare function useAudioRecorder({ logger, audioWorkletUrl, featuresExtratorUrl, }?: UseAudioRecorderProps): UseAudioRecorderState;
24
25
  //# sourceMappingURL=useAudioRecorder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAudioRecorder.d.ts","sourceRoot":"","sources":["../../src/useAudioRecorder.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAEnE,OAAO,EAEH,cAAc,EAEd,eAAe,EACf,WAAW,EAEX,eAAe,EACf,oBAAoB,EACvB,MAAM,qBAAqB,CAAA;AAY5B,MAAM,WAAW,qBAAqB;IAClC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,qBAAqB;IAClC,gBAAgB,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,cAAc,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACrE,aAAa,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAA;IAC5C,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC/B;AA2ID,wBAAgB,gBAAgB,CAAC,EAC7B,MAAM,EACN,eAAe,EACf,mBAAmB,GACtB,GAAE,qBAA0B,GAAG,qBAAqB,CA2xBpD"}
1
+ {"version":3,"file":"useAudioRecorder.d.ts","sourceRoot":"","sources":["../../src/useAudioRecorder.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AAEnE,OAAO,EAEH,cAAc,EAEd,eAAe,EACf,WAAW,EAEX,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACvB,MAAM,qBAAqB,CAAA;AAY5B,MAAM,WAAW,qBAAqB;IAClC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,qBAAqB;IAClC,gBAAgB,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,cAAc,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAA;IACrE,aAAa,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAA;IAC5C,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACpC,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,eAAe,CAAA;IAC7B,YAAY,CAAC,EAAE,aAAa,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAC5C;AAwLD,wBAAgB,gBAAgB,CAAC,EAC7B,MAAM,EACN,eAAe,EACf,mBAAmB,GACtB,GAAE,qBAA0B,GAAG,qBAAqB,CA+wBpD"}
@@ -0,0 +1,28 @@
1
+ import { RecordingConfig } from '../AudioStudio.types';
2
+ export declare function createNativeRecordingOptions(recordingOptions: RecordingConfig): {
3
+ sampleRate?: import("..").SampleRate;
4
+ channels?: 1 | 2;
5
+ encoding?: import("..").EncodingType;
6
+ interval?: number;
7
+ intervalAnalysis?: number;
8
+ keepAwake?: boolean;
9
+ showNotification?: boolean;
10
+ showWaveformInNotification?: boolean;
11
+ notification?: import("..").NotificationConfig;
12
+ enableProcessing?: boolean;
13
+ ios?: import("..").IOSConfig;
14
+ android?: import("..").AndroidConfig;
15
+ web?: import("..").WebConfig;
16
+ segmentDurationMs?: number;
17
+ features?: import("..").AudioFeaturesOptions;
18
+ output?: import("..").OutputConfig;
19
+ autoResumeAfterInterruption?: boolean;
20
+ maxDurationMs?: number;
21
+ outputDirectory?: string;
22
+ filename?: string;
23
+ deviceId?: string;
24
+ deviceDisconnectionBehavior?: import("..").DeviceDisconnectionBehaviorType;
25
+ bufferDurationSeconds?: number;
26
+ streamFormat?: "float32" | "raw";
27
+ };
28
+ //# sourceMappingURL=nativeRecordingOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeRecordingOptions.d.ts","sourceRoot":"","sources":["../../../src/utils/nativeRecordingOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,wBAAgB,4BAA4B,CAAC,gBAAgB,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;EAgB7E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=nativeRecordingOptions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeRecordingOptions.test.d.ts","sourceRoot":"","sources":["../../../src/utils/nativeRecordingOptions.test.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siteed/audio-studio",
3
- "version": "3.2.1-beta.1",
3
+ "version": "3.2.1-beta.3",
4
4
  "description": "Comprehensive audio processing library for React Native and Expo with recording, analysis, visualization, and streaming capabilities across iOS, Android, and web",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",
@@ -93,6 +93,7 @@
93
93
  "lint": "expo-module lint",
94
94
  "lint:fix": "expo-module lint --fix",
95
95
  "test": "expo-module test",
96
+ "test:plugin": "jest --runInBand plugin/src/index.test.ts",
96
97
  "test:android": "yarn test:android:unit && yarn test:android:instrumented",
97
98
  "test:android:unit": "cd ../../apps/playground/android && ./gradlew :siteed-audio-studio:test",
98
99
  "test:android:instrumented": "cd ../../apps/playground/android && ./gradlew :siteed-audio-studio:connectedAndroidTest",
@@ -1,9 +1,83 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.__testing = void 0;
3
4
  const config_plugins_1 = require("@expo/config-plugins");
4
5
  const MICROPHONE_USAGE = 'Allow $(PRODUCT_NAME) to access your microphone';
5
6
  const NOTIFICATION_USAGE = 'Show recording notifications and controls';
6
7
  const LOG_PREFIX = '[@siteed/expo-audio-studio]';
8
+ const AUDIO_STUDIO_ANDROID_PACKAGE = 'net.siteed.audiostudio';
9
+ const RECORDING_ACTION_RECEIVER = `${AUDIO_STUDIO_ANDROID_PACKAGE}.RecordingActionReceiver`;
10
+ const AUDIO_RECORDING_SERVICE = `${AUDIO_STUDIO_ANDROID_PACKAGE}.AudioRecordingService`;
11
+ const LEGACY_RELATIVE_RECORDING_ACTION_RECEIVER = '.RecordingActionReceiver';
12
+ const LEGACY_RELATIVE_AUDIO_RECORDING_SERVICE = '.AudioRecordingService';
13
+ function removeComponentsByName(components, names) {
14
+ if (!components) {
15
+ return components;
16
+ }
17
+ const filtered = components.filter((component) => !names.includes(String(component.$?.['android:name'])));
18
+ return filtered.length > 0 ? filtered : undefined;
19
+ }
20
+ function upsertComponent(components, componentConfig) {
21
+ const name = String(componentConfig.$?.['android:name']);
22
+ const nextComponents = (components || []).filter((component) => String(component.$?.['android:name']) !== name);
23
+ nextComponents.push(componentConfig);
24
+ return nextComponents;
25
+ }
26
+ function addAndroidRemovalMarker(components, componentName) {
27
+ return upsertComponent(components, {
28
+ $: {
29
+ 'android:name': componentName,
30
+ 'tools:node': 'remove',
31
+ },
32
+ });
33
+ }
34
+ function configureAndroidBackgroundRecordingComponents(mainApplication, enableBackgroundAudio) {
35
+ const receiverNames = [
36
+ LEGACY_RELATIVE_RECORDING_ACTION_RECEIVER,
37
+ RECORDING_ACTION_RECEIVER,
38
+ ];
39
+ const serviceNames = [
40
+ LEGACY_RELATIVE_AUDIO_RECORDING_SERVICE,
41
+ AUDIO_RECORDING_SERVICE,
42
+ ];
43
+ mainApplication.receiver = removeComponentsByName(mainApplication.receiver, receiverNames);
44
+ mainApplication.service = removeComponentsByName(mainApplication.service, serviceNames);
45
+ if (enableBackgroundAudio) {
46
+ const receiverConfig = {
47
+ $: {
48
+ 'android:name': RECORDING_ACTION_RECEIVER,
49
+ 'android:exported': 'false',
50
+ },
51
+ 'intent-filter': [
52
+ {
53
+ action: [
54
+ { $: { 'android:name': 'PAUSE_RECORDING' } },
55
+ { $: { 'android:name': 'RESUME_RECORDING' } },
56
+ { $: { 'android:name': 'STOP_RECORDING' } },
57
+ ],
58
+ },
59
+ ],
60
+ };
61
+ const serviceConfig = {
62
+ $: {
63
+ 'android:name': AUDIO_RECORDING_SERVICE,
64
+ 'android:enabled': 'true',
65
+ 'android:exported': 'false',
66
+ 'android:foregroundServiceType': 'microphone',
67
+ },
68
+ };
69
+ mainApplication.receiver = upsertComponent(mainApplication.receiver, receiverConfig);
70
+ mainApplication.service = upsertComponent(mainApplication.service, serviceConfig);
71
+ return;
72
+ }
73
+ mainApplication.receiver = addAndroidRemovalMarker(mainApplication.receiver, RECORDING_ACTION_RECEIVER);
74
+ mainApplication.service = addAndroidRemovalMarker(mainApplication.service, AUDIO_RECORDING_SERVICE);
75
+ }
76
+ exports.__testing = {
77
+ AUDIO_RECORDING_SERVICE,
78
+ RECORDING_ACTION_RECEIVER,
79
+ configureAndroidBackgroundRecordingComponents,
80
+ };
7
81
  function debugLog(message, ...args) {
8
82
  if (process.env.EXPO_DEBUG) {
9
83
  console.log(`${LOG_PREFIX} ${message}`, ...args);
@@ -130,57 +204,15 @@ const withRecordingPermission = (config, props) => {
130
204
  permissionsToAdd.forEach((permission) => {
131
205
  config_plugins_1.AndroidConfig.Permissions.addPermission(config.modResults, permission);
132
206
  });
207
+ config_plugins_1.AndroidConfig.Manifest.ensureToolsAvailable(config.modResults);
133
208
  // Get the main application node
134
209
  const mainApplication = config.modResults.manifest.application?.[0];
135
210
  if (mainApplication) {
136
211
  debugLog('📱 Configuring Android application components...');
137
- // Add RecordingActionReceiver
138
- if (!mainApplication.receiver) {
139
- mainApplication.receiver = [];
140
- }
141
- const receiverConfig = {
142
- $: {
143
- 'android:name': '.RecordingActionReceiver',
144
- 'android:exported': 'false',
145
- },
146
- 'intent-filter': [
147
- {
148
- action: [
149
- { $: { 'android:name': 'PAUSE_RECORDING' } },
150
- { $: { 'android:name': 'RESUME_RECORDING' } },
151
- { $: { 'android:name': 'STOP_RECORDING' } },
152
- ],
153
- },
154
- ],
155
- };
156
- const receiverIndex = mainApplication.receiver.findIndex((receiver) => receiver.$?.['android:name'] === '.RecordingActionReceiver');
157
- if (receiverIndex >= 0) {
158
- mainApplication.receiver[receiverIndex] = receiverConfig;
159
- }
160
- else {
161
- mainApplication.receiver.push(receiverConfig);
162
- }
163
- debugLog('✅ RecordingActionReceiver configured');
164
- // Add AudioRecordingService
165
- if (!mainApplication.service) {
166
- mainApplication.service = [];
167
- }
168
- const serviceConfig = {
169
- $: {
170
- 'android:name': '.AudioRecordingService',
171
- 'android:enabled': 'true',
172
- 'android:exported': 'false',
173
- 'android:foregroundServiceType': 'microphone',
174
- },
175
- };
176
- const serviceIndex = mainApplication.service.findIndex((service) => service.$?.['android:name'] === '.AudioRecordingService');
177
- if (serviceIndex >= 0) {
178
- mainApplication.service[serviceIndex] = serviceConfig;
179
- }
180
- else {
181
- mainApplication.service.push(serviceConfig);
182
- }
183
- debugLog('✅ AudioRecordingService configured');
212
+ configureAndroidBackgroundRecordingComponents(mainApplication, enableBackgroundAudio);
213
+ debugLog(enableBackgroundAudio
214
+ ? '✅ Android background recording components configured'
215
+ : '✅ Android background recording components disabled');
184
216
  }
185
217
  else {
186
218
  console.error(`${LOG_PREFIX} ❌ Main application node not found in Android Manifest`);
@@ -1,4 +1,19 @@
1
1
  import { ConfigPlugin } from '@expo/config-plugins';
2
+ type AndroidComponent = {
3
+ $?: Record<string, string | boolean>;
4
+ [key: string]: unknown;
5
+ };
6
+ type AndroidApplication = {
7
+ receiver?: AndroidComponent[];
8
+ service?: AndroidComponent[];
9
+ [key: string]: unknown;
10
+ };
11
+ declare function configureAndroidBackgroundRecordingComponents(mainApplication: AndroidApplication, enableBackgroundAudio: boolean | undefined): void;
12
+ export declare const __testing: {
13
+ AUDIO_RECORDING_SERVICE: string;
14
+ RECORDING_ACTION_RECEIVER: string;
15
+ configureAndroidBackgroundRecordingComponents: typeof configureAndroidBackgroundRecordingComponents;
16
+ };
2
17
  interface AudioStreamPluginOptions {
3
18
  enablePhoneStateHandling?: boolean;
4
19
  enableNotifications?: boolean;
@@ -1,9 +1,83 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.__testing = void 0;
3
4
  const config_plugins_1 = require("@expo/config-plugins");
4
5
  const MICROPHONE_USAGE = 'Allow $(PRODUCT_NAME) to access your microphone';
5
6
  const NOTIFICATION_USAGE = 'Show recording notifications and controls';
6
7
  const LOG_PREFIX = '[@siteed/expo-audio-studio]';
8
+ const AUDIO_STUDIO_ANDROID_PACKAGE = 'net.siteed.audiostudio';
9
+ const RECORDING_ACTION_RECEIVER = `${AUDIO_STUDIO_ANDROID_PACKAGE}.RecordingActionReceiver`;
10
+ const AUDIO_RECORDING_SERVICE = `${AUDIO_STUDIO_ANDROID_PACKAGE}.AudioRecordingService`;
11
+ const LEGACY_RELATIVE_RECORDING_ACTION_RECEIVER = '.RecordingActionReceiver';
12
+ const LEGACY_RELATIVE_AUDIO_RECORDING_SERVICE = '.AudioRecordingService';
13
+ function removeComponentsByName(components, names) {
14
+ if (!components) {
15
+ return components;
16
+ }
17
+ const filtered = components.filter((component) => !names.includes(String(component.$?.['android:name'])));
18
+ return filtered.length > 0 ? filtered : undefined;
19
+ }
20
+ function upsertComponent(components, componentConfig) {
21
+ const name = String(componentConfig.$?.['android:name']);
22
+ const nextComponents = (components || []).filter((component) => String(component.$?.['android:name']) !== name);
23
+ nextComponents.push(componentConfig);
24
+ return nextComponents;
25
+ }
26
+ function addAndroidRemovalMarker(components, componentName) {
27
+ return upsertComponent(components, {
28
+ $: {
29
+ 'android:name': componentName,
30
+ 'tools:node': 'remove',
31
+ },
32
+ });
33
+ }
34
+ function configureAndroidBackgroundRecordingComponents(mainApplication, enableBackgroundAudio) {
35
+ const receiverNames = [
36
+ LEGACY_RELATIVE_RECORDING_ACTION_RECEIVER,
37
+ RECORDING_ACTION_RECEIVER,
38
+ ];
39
+ const serviceNames = [
40
+ LEGACY_RELATIVE_AUDIO_RECORDING_SERVICE,
41
+ AUDIO_RECORDING_SERVICE,
42
+ ];
43
+ mainApplication.receiver = removeComponentsByName(mainApplication.receiver, receiverNames);
44
+ mainApplication.service = removeComponentsByName(mainApplication.service, serviceNames);
45
+ if (enableBackgroundAudio) {
46
+ const receiverConfig = {
47
+ $: {
48
+ 'android:name': RECORDING_ACTION_RECEIVER,
49
+ 'android:exported': 'false',
50
+ },
51
+ 'intent-filter': [
52
+ {
53
+ action: [
54
+ { $: { 'android:name': 'PAUSE_RECORDING' } },
55
+ { $: { 'android:name': 'RESUME_RECORDING' } },
56
+ { $: { 'android:name': 'STOP_RECORDING' } },
57
+ ],
58
+ },
59
+ ],
60
+ };
61
+ const serviceConfig = {
62
+ $: {
63
+ 'android:name': AUDIO_RECORDING_SERVICE,
64
+ 'android:enabled': 'true',
65
+ 'android:exported': 'false',
66
+ 'android:foregroundServiceType': 'microphone',
67
+ },
68
+ };
69
+ mainApplication.receiver = upsertComponent(mainApplication.receiver, receiverConfig);
70
+ mainApplication.service = upsertComponent(mainApplication.service, serviceConfig);
71
+ return;
72
+ }
73
+ mainApplication.receiver = addAndroidRemovalMarker(mainApplication.receiver, RECORDING_ACTION_RECEIVER);
74
+ mainApplication.service = addAndroidRemovalMarker(mainApplication.service, AUDIO_RECORDING_SERVICE);
75
+ }
76
+ exports.__testing = {
77
+ AUDIO_RECORDING_SERVICE,
78
+ RECORDING_ACTION_RECEIVER,
79
+ configureAndroidBackgroundRecordingComponents,
80
+ };
7
81
  function debugLog(message, ...args) {
8
82
  if (process.env.EXPO_DEBUG) {
9
83
  console.log(`${LOG_PREFIX} ${message}`, ...args);
@@ -130,57 +204,15 @@ const withRecordingPermission = (config, props) => {
130
204
  permissionsToAdd.forEach((permission) => {
131
205
  config_plugins_1.AndroidConfig.Permissions.addPermission(config.modResults, permission);
132
206
  });
207
+ config_plugins_1.AndroidConfig.Manifest.ensureToolsAvailable(config.modResults);
133
208
  // Get the main application node
134
209
  const mainApplication = config.modResults.manifest.application?.[0];
135
210
  if (mainApplication) {
136
211
  debugLog('📱 Configuring Android application components...');
137
- // Add RecordingActionReceiver
138
- if (!mainApplication.receiver) {
139
- mainApplication.receiver = [];
140
- }
141
- const receiverConfig = {
142
- $: {
143
- 'android:name': '.RecordingActionReceiver',
144
- 'android:exported': 'false',
145
- },
146
- 'intent-filter': [
147
- {
148
- action: [
149
- { $: { 'android:name': 'PAUSE_RECORDING' } },
150
- { $: { 'android:name': 'RESUME_RECORDING' } },
151
- { $: { 'android:name': 'STOP_RECORDING' } },
152
- ],
153
- },
154
- ],
155
- };
156
- const receiverIndex = mainApplication.receiver.findIndex((receiver) => receiver.$?.['android:name'] === '.RecordingActionReceiver');
157
- if (receiverIndex >= 0) {
158
- mainApplication.receiver[receiverIndex] = receiverConfig;
159
- }
160
- else {
161
- mainApplication.receiver.push(receiverConfig);
162
- }
163
- debugLog('✅ RecordingActionReceiver configured');
164
- // Add AudioRecordingService
165
- if (!mainApplication.service) {
166
- mainApplication.service = [];
167
- }
168
- const serviceConfig = {
169
- $: {
170
- 'android:name': '.AudioRecordingService',
171
- 'android:enabled': 'true',
172
- 'android:exported': 'false',
173
- 'android:foregroundServiceType': 'microphone',
174
- },
175
- };
176
- const serviceIndex = mainApplication.service.findIndex((service) => service.$?.['android:name'] === '.AudioRecordingService');
177
- if (serviceIndex >= 0) {
178
- mainApplication.service[serviceIndex] = serviceConfig;
179
- }
180
- else {
181
- mainApplication.service.push(serviceConfig);
182
- }
183
- debugLog('✅ AudioRecordingService configured');
212
+ configureAndroidBackgroundRecordingComponents(mainApplication, enableBackgroundAudio);
213
+ debugLog(enableBackgroundAudio
214
+ ? '✅ Android background recording components configured'
215
+ : '✅ Android background recording components disabled');
184
216
  }
185
217
  else {
186
218
  console.error(`${LOG_PREFIX} ❌ Main application node not found in Android Manifest`);
@@ -0,0 +1,78 @@
1
+ /// <reference types="jest" />
2
+
3
+ import { __testing } from './index'
4
+
5
+ describe('audio-studio Expo plugin Android background recording components', () => {
6
+ it('adds fully-qualified foreground service components when background audio is enabled', () => {
7
+ const application: any = {
8
+ receiver: [{ $: { 'android:name': '.RecordingActionReceiver' } }],
9
+ service: [{ $: { 'android:name': '.AudioRecordingService' } }],
10
+ }
11
+
12
+ __testing.configureAndroidBackgroundRecordingComponents(
13
+ application,
14
+ true
15
+ )
16
+
17
+ expect(application.receiver).toHaveLength(1)
18
+ expect(application.receiver[0].$['android:name']).toBe(
19
+ __testing.RECORDING_ACTION_RECEIVER
20
+ )
21
+ expect(application.receiver[0].$['android:exported']).toBe('false')
22
+ expect(application.receiver[0]['intent-filter'][0].action).toHaveLength(
23
+ 3
24
+ )
25
+
26
+ expect(application.service).toHaveLength(1)
27
+ expect(application.service[0].$['android:name']).toBe(
28
+ __testing.AUDIO_RECORDING_SERVICE
29
+ )
30
+ expect(application.service[0].$['android:foregroundServiceType']).toBe(
31
+ 'microphone'
32
+ )
33
+ })
34
+
35
+ it('removes foreground service components when background audio is disabled', () => {
36
+ const application: any = {
37
+ receiver: [
38
+ { $: { 'android:name': '.RecordingActionReceiver' } },
39
+ {
40
+ $: {
41
+ 'android:name': __testing.RECORDING_ACTION_RECEIVER,
42
+ },
43
+ },
44
+ ],
45
+ service: [
46
+ { $: { 'android:name': '.AudioRecordingService' } },
47
+ {
48
+ $: {
49
+ 'android:name': __testing.AUDIO_RECORDING_SERVICE,
50
+ 'android:foregroundServiceType': 'microphone',
51
+ },
52
+ },
53
+ ],
54
+ }
55
+
56
+ __testing.configureAndroidBackgroundRecordingComponents(
57
+ application,
58
+ false
59
+ )
60
+
61
+ expect(application.receiver).toEqual([
62
+ {
63
+ $: {
64
+ 'android:name': __testing.RECORDING_ACTION_RECEIVER,
65
+ 'tools:node': 'remove',
66
+ },
67
+ },
68
+ ])
69
+ expect(application.service).toEqual([
70
+ {
71
+ $: {
72
+ 'android:name': __testing.AUDIO_RECORDING_SERVICE,
73
+ 'tools:node': 'remove',
74
+ },
75
+ },
76
+ ])
77
+ })
78
+ })