@siteed/expo-audio-stream 1.0.3 → 1.1.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.
Files changed (132) hide show
  1. package/README.md +26 -175
  2. package/android/src/main/java/net/siteed/audiostream/AudioProcessor.kt +47 -7
  3. package/android/src/main/java/net/siteed/audiostream/AudioRecorderManager.kt +1 -0
  4. package/android/src/main/java/net/siteed/audiostream/Constants.kt +5 -0
  5. package/android/src/main/java/net/siteed/audiostream/ExpoAudioStreamModule.kt +12 -3
  6. package/build/index.js +8 -7
  7. package/ios/AudioProcessor.swift +7 -5
  8. package/ios/AudioStreamManager.swift +1 -0
  9. package/ios/ExpoAudioStream.podspec +1 -1
  10. package/ios/ExpoAudioStreamModule.swift +36 -0
  11. package/ios/RecordingResult.swift +1 -0
  12. package/package.json +95 -65
  13. package/src/AudioAnalysis/AudioAnalysis.types.ts +59 -60
  14. package/src/AudioAnalysis/extractAudioAnalysis.ts +132 -121
  15. package/src/AudioAnalysis/extractWaveform.ts +18 -18
  16. package/src/AudioRecorder.provider.tsx +53 -53
  17. package/src/ExpoAudioStream.native.ts +2 -2
  18. package/src/ExpoAudioStream.types.ts +59 -53
  19. package/src/ExpoAudioStream.web.ts +231 -205
  20. package/src/ExpoAudioStreamModule.ts +22 -15
  21. package/src/WebRecorder.web.ts +407 -390
  22. package/src/constants.ts +11 -11
  23. package/src/events.ts +27 -13
  24. package/src/index.ts +17 -15
  25. package/src/logger.ts +15 -19
  26. package/src/useAudioRecorder.tsx +394 -389
  27. package/src/utils/BlobFix.ts +550 -0
  28. package/src/utils/concatenateBuffers.ts +24 -0
  29. package/src/utils/convertPCMToFloat32.ts +72 -45
  30. package/src/utils/encodingToBitDepth.ts +14 -14
  31. package/src/utils/getWavFileInfo.ts +106 -99
  32. package/src/utils/writeWavHeader.ts +50 -45
  33. package/src/workers/InlineFeaturesExtractor.web.tsx +296 -286
  34. package/src/workers/inlineAudioWebWorker.web.tsx +230 -222
  35. package/.eslintrc.js +0 -2
  36. package/.size-limit.json +0 -6
  37. package/android/.gradle/8.1.1/checksums/checksums.lock +0 -0
  38. package/android/.gradle/8.1.1/dependencies-accessors/dependencies-accessors.lock +0 -0
  39. package/android/.gradle/8.1.1/dependencies-accessors/gc.properties +0 -0
  40. package/android/.gradle/8.1.1/fileChanges/last-build.bin +0 -0
  41. package/android/.gradle/8.1.1/fileHashes/fileHashes.lock +0 -0
  42. package/android/.gradle/8.1.1/gc.properties +0 -0
  43. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  44. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  45. package/android/.gradle/vcs-1/gc.properties +0 -0
  46. package/app.plugin.js +0 -1
  47. package/build/AudioAnalysis/AudioAnalysis.types.d.ts +0 -76
  48. package/build/AudioAnalysis/AudioAnalysis.types.d.ts.map +0 -1
  49. package/build/AudioAnalysis/AudioAnalysis.types.js +0 -3
  50. package/build/AudioAnalysis/AudioAnalysis.types.js.map +0 -1
  51. package/build/AudioAnalysis/extractAudioAnalysis.d.ts +0 -4
  52. package/build/AudioAnalysis/extractAudioAnalysis.d.ts.map +0 -1
  53. package/build/AudioAnalysis/extractAudioAnalysis.js +0 -101
  54. package/build/AudioAnalysis/extractAudioAnalysis.js.map +0 -1
  55. package/build/AudioAnalysis/extractWaveform.d.ts +0 -8
  56. package/build/AudioAnalysis/extractWaveform.d.ts.map +0 -1
  57. package/build/AudioAnalysis/extractWaveform.js +0 -14
  58. package/build/AudioAnalysis/extractWaveform.js.map +0 -1
  59. package/build/AudioRecorder.provider.d.ts +0 -23
  60. package/build/AudioRecorder.provider.d.ts.map +0 -1
  61. package/build/AudioRecorder.provider.js +0 -36
  62. package/build/AudioRecorder.provider.js.map +0 -1
  63. package/build/ExpoAudioStream.native.d.ts +0 -3
  64. package/build/ExpoAudioStream.native.d.ts.map +0 -1
  65. package/build/ExpoAudioStream.native.js +0 -6
  66. package/build/ExpoAudioStream.native.js.map +0 -1
  67. package/build/ExpoAudioStream.types.d.ts +0 -60
  68. package/build/ExpoAudioStream.types.d.ts.map +0 -1
  69. package/build/ExpoAudioStream.types.js +0 -2
  70. package/build/ExpoAudioStream.types.js.map +0 -1
  71. package/build/ExpoAudioStream.web.d.ts +0 -42
  72. package/build/ExpoAudioStream.web.d.ts.map +0 -1
  73. package/build/ExpoAudioStream.web.js +0 -185
  74. package/build/ExpoAudioStream.web.js.map +0 -1
  75. package/build/ExpoAudioStreamModule.d.ts +0 -3
  76. package/build/ExpoAudioStreamModule.d.ts.map +0 -1
  77. package/build/ExpoAudioStreamModule.js +0 -18
  78. package/build/ExpoAudioStreamModule.js.map +0 -1
  79. package/build/WebRecorder.web.d.ts +0 -51
  80. package/build/WebRecorder.web.d.ts.map +0 -1
  81. package/build/WebRecorder.web.js +0 -288
  82. package/build/WebRecorder.web.js.map +0 -1
  83. package/build/constants.d.ts +0 -11
  84. package/build/constants.d.ts.map +0 -1
  85. package/build/constants.js +0 -14
  86. package/build/constants.js.map +0 -1
  87. package/build/events.d.ts +0 -6
  88. package/build/events.d.ts.map +0 -1
  89. package/build/events.js +0 -15
  90. package/build/events.js.map +0 -1
  91. package/build/index.d.ts +0 -10
  92. package/build/index.d.ts.map +0 -1
  93. package/build/index.js.map +0 -1
  94. package/build/logger.d.ts +0 -9
  95. package/build/logger.d.ts.map +0 -1
  96. package/build/logger.js +0 -17
  97. package/build/logger.js.map +0 -1
  98. package/build/useAudioRecorder.d.ts +0 -37
  99. package/build/useAudioRecorder.d.ts.map +0 -1
  100. package/build/useAudioRecorder.js +0 -271
  101. package/build/useAudioRecorder.js.map +0 -1
  102. package/build/utils/convertPCMToFloat32.d.ts +0 -11
  103. package/build/utils/convertPCMToFloat32.d.ts.map +0 -1
  104. package/build/utils/convertPCMToFloat32.js +0 -41
  105. package/build/utils/convertPCMToFloat32.js.map +0 -1
  106. package/build/utils/encodingToBitDepth.d.ts +0 -5
  107. package/build/utils/encodingToBitDepth.d.ts.map +0 -1
  108. package/build/utils/encodingToBitDepth.js +0 -13
  109. package/build/utils/encodingToBitDepth.js.map +0 -1
  110. package/build/utils/getWavFileInfo.d.ts +0 -25
  111. package/build/utils/getWavFileInfo.d.ts.map +0 -1
  112. package/build/utils/getWavFileInfo.js +0 -89
  113. package/build/utils/getWavFileInfo.js.map +0 -1
  114. package/build/utils/writeWavHeader.d.ts +0 -9
  115. package/build/utils/writeWavHeader.d.ts.map +0 -1
  116. package/build/utils/writeWavHeader.js +0 -41
  117. package/build/utils/writeWavHeader.js.map +0 -1
  118. package/build/workers/InlineFeaturesExtractor.web.d.ts +0 -2
  119. package/build/workers/InlineFeaturesExtractor.web.d.ts.map +0 -1
  120. package/build/workers/InlineFeaturesExtractor.web.js +0 -303
  121. package/build/workers/InlineFeaturesExtractor.web.js.map +0 -1
  122. package/build/workers/inlineAudioWebWorker.web.d.ts +0 -2
  123. package/build/workers/inlineAudioWebWorker.web.d.ts.map +0 -1
  124. package/build/workers/inlineAudioWebWorker.web.js +0 -243
  125. package/build/workers/inlineAudioWebWorker.web.js.map +0 -1
  126. package/expo-module.config.json +0 -18
  127. package/plugin/build/index.d.ts +0 -5
  128. package/plugin/build/index.js +0 -28
  129. package/plugin/src/index.ts +0 -53
  130. package/plugin/tsconfig.json +0 -14
  131. package/publish.sh +0 -8
  132. package/tsconfig.json +0 -9
package/src/constants.ts CHANGED
@@ -1,18 +1,18 @@
1
1
  // packages/expo-audio-stream/src/constants.ts
2
- import { Platform } from "react-native";
2
+ import { Platform } from 'react-native'
3
3
 
4
- import { BitDepth, SampleRate } from "./ExpoAudioStream.types";
4
+ import { BitDepth, SampleRate } from './ExpoAudioStream.types'
5
5
 
6
- export const isWeb = Platform.OS === "web";
7
- export const DEBUG_NAMESPACE = "expo-audio-stream";
6
+ export const isWeb = Platform.OS === 'web'
7
+ export const DEBUG_NAMESPACE = 'expo-audio-stream'
8
8
 
9
9
  // Constants for identifying chunks in a WAV file
10
- export const RIFF_HEADER = 0x52494646; // "RIFF"
11
- export const WAVE_HEADER = 0x57415645; // "WAVE"
12
- export const FMT_CHUNK_ID = 0x666d7420; // "fmt "
13
- export const DATA_CHUNK_ID = 0x64617461; // "data"
14
- export const INFO_CHUNK_ID = 0x494e464f; // "INFO"
10
+ export const RIFF_HEADER = 0x52494646 // "RIFF"
11
+ export const WAVE_HEADER = 0x57415645 // "WAVE"
12
+ export const FMT_CHUNK_ID = 0x666d7420 // "fmt "
13
+ export const DATA_CHUNK_ID = 0x64617461 // "data"
14
+ export const INFO_CHUNK_ID = 0x494e464f // "INFO"
15
15
 
16
16
  // Default values
17
- export const DEFAULT_SAMPLE_RATE: SampleRate = 16000;
18
- export const DEFAULT_BIT_DEPTH: BitDepth = 32;
17
+ export const DEFAULT_SAMPLE_RATE: SampleRate = 16000
18
+ export const DEFAULT_BIT_DEPTH: BitDepth = 32
package/src/events.ts CHANGED
@@ -1,25 +1,39 @@
1
1
  // packages/expo-audio-stream/src/events.ts
2
2
 
3
- import { EventEmitter, type Subscription } from "expo-modules-core";
3
+ import { EventEmitter, type Subscription } from 'expo-modules-core'
4
4
 
5
- import { AudioAnalysisData } from "./AudioAnalysis/AudioAnalysis.types";
6
- import { AudioEventPayload } from "./ExpoAudioStream.types";
7
- import ExpoAudioStreamModule from "./ExpoAudioStreamModule";
8
- import { getLogger } from "./logger";
5
+ import { AudioAnalysis } from './AudioAnalysis/AudioAnalysis.types'
6
+ import ExpoAudioStreamModule from './ExpoAudioStreamModule'
7
+ import { getLogger } from './logger'
9
8
 
10
- const emitter = new EventEmitter(ExpoAudioStreamModule);
11
- const logger = getLogger("events");
9
+ const emitter = new EventEmitter(ExpoAudioStreamModule)
10
+ const logger = getLogger('events')
11
+
12
+ export interface AudioEventPayload {
13
+ encoded?: string
14
+ buffer?: Float32Array
15
+ fileUri: string
16
+ lastEmittedSize: number
17
+ position: number
18
+ deltaSize: number
19
+ totalSize: number
20
+ mimeType: string
21
+ streamUuid: string
22
+ }
12
23
 
13
24
  export function addAudioEventListener(
14
- listener: (event: AudioEventPayload) => Promise<void>,
25
+ listener: (event: AudioEventPayload) => Promise<void>
15
26
  ): Subscription {
16
- logger.log("Adding listener for AudioData event");
17
- return emitter.addListener<AudioEventPayload>("AudioData", listener);
27
+ logger.log('Adding listener for AudioData event')
28
+ return emitter.addListener<AudioEventPayload>('AudioData', listener)
18
29
  }
19
30
 
31
+ // Only aliasing the AudioAnalysis type for the event payload
32
+ export interface AudioAnalysisEvent extends AudioAnalysis {}
33
+
20
34
  export function addAudioAnalysisListener(
21
- listener: (event: AudioAnalysisData) => Promise<void>,
35
+ listener: (event: AudioAnalysisEvent) => Promise<void>
22
36
  ): Subscription {
23
- logger.log("Adding listener for AudioAnalysis event");
24
- return emitter.addListener<AudioAnalysisData>("AudioAnalysis", listener);
37
+ logger.log('Adding listener for AudioAnalysis event')
38
+ return emitter.addListener<AudioAnalysisEvent>('AudioAnalysis', listener)
25
39
  }
package/src/index.ts CHANGED
@@ -1,22 +1,24 @@
1
1
  // src/index.ts
2
2
 
3
- import { extractAudioAnalysis } from "./AudioAnalysis/extractAudioAnalysis";
3
+ import { extractAudioAnalysis } from './AudioAnalysis/extractAudioAnalysis'
4
4
  import {
5
- AudioRecorderProvider,
6
- useSharedAudioRecorder,
7
- } from "./AudioRecorder.provider";
8
- import { useAudioRecorder } from "./useAudioRecorder";
5
+ AudioRecorderProvider,
6
+ useSharedAudioRecorder,
7
+ } from './AudioRecorder.provider'
8
+ import ExpoAudioStreamModule from './ExpoAudioStreamModule'
9
+ import { useAudioRecorder } from './useAudioRecorder'
9
10
 
10
- export * from "./utils/getWavFileInfo";
11
- export * from "./utils/convertPCMToFloat32";
12
- export * from "./utils/writeWavHeader";
11
+ export * from './utils/convertPCMToFloat32'
12
+ export * from './utils/getWavFileInfo'
13
+ export * from './utils/writeWavHeader'
13
14
 
14
15
  export {
15
- AudioRecorderProvider,
16
- extractAudioAnalysis,
17
- useAudioRecorder,
18
- useSharedAudioRecorder,
19
- };
16
+ AudioRecorderProvider,
17
+ ExpoAudioStreamModule,
18
+ extractAudioAnalysis,
19
+ useAudioRecorder,
20
+ useSharedAudioRecorder,
21
+ }
20
22
 
21
- export type * from "./AudioAnalysis/AudioAnalysis.types";
22
- export type * from "./ExpoAudioStream.types";
23
+ export type * from './AudioAnalysis/AudioAnalysis.types'
24
+ export type * from './ExpoAudioStream.types'
package/src/logger.ts CHANGED
@@ -1,26 +1,22 @@
1
1
  // packages/expo-audio-stream/src/logger.ts
2
- import createDebug from "debug";
2
+ import { getLogger as siteedGetLogger } from '@siteed/react-native-logger'
3
3
 
4
- import { DEBUG_NAMESPACE } from "./constants";
4
+ import { DEBUG_NAMESPACE } from './constants'
5
5
 
6
6
  type ConsoleLike = {
7
- log: (message: string, ...args: unknown[]) => void;
8
- debug: (message: string, ...args: unknown[]) => void;
9
- };
7
+ log: (message: string, ...args: unknown[]) => void
8
+ debug: (message: string, ...args: unknown[]) => void
9
+ warn: (message: string, ...args: unknown[]) => void
10
+ error: (message: string, ...args: unknown[]) => void
11
+ }
10
12
 
11
13
  export const getLogger = (tag: string): ConsoleLike => {
12
- const baseLogger = createDebug(`${DEBUG_NAMESPACE}:${tag}`);
14
+ const baseLogger = siteedGetLogger(`${DEBUG_NAMESPACE}:${tag}`)
13
15
 
14
- return {
15
- log: (...args: unknown[]) => baseLogger(...(args as [unknown])),
16
- debug: (...args: unknown[]) => baseLogger(...(args as [unknown])),
17
- };
18
- };
19
-
20
- export const enableAllLoggers = () => {
21
- createDebug.enable(`${DEBUG_NAMESPACE}:*`);
22
- };
23
-
24
- export const disableAllLoggers = () => {
25
- createDebug.disable();
26
- };
16
+ return {
17
+ log: (...args: unknown[]) => baseLogger.log(...(args as [unknown])),
18
+ debug: (...args: unknown[]) => baseLogger.debug(...(args as [unknown])),
19
+ error: (...args: unknown[]) => baseLogger.error(...(args as [unknown])),
20
+ warn: (...args: unknown[]) => baseLogger.warn(...(args as [unknown])),
21
+ }
22
+ }