react-native-audio-api 0.12.0-nightly-6993a06-20260122 → 0.12.0-nightly-6a44b58-20260124

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 (63) hide show
  1. package/common/cpp/audioapi/HostObjects/analysis/AnalyserNodeHostObject.cpp +4 -2
  2. package/common/cpp/audioapi/HostObjects/analysis/AnalyserNodeHostObject.h +1 -2
  3. package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.cpp +4 -2
  4. package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.h +1 -0
  5. package/common/cpp/audioapi/HostObjects/effects/WaveShaperNodeHostObject.cpp +4 -3
  6. package/common/cpp/audioapi/HostObjects/effects/WaveShaperNodeHostObject.h +2 -0
  7. package/common/cpp/audioapi/HostObjects/sources/OscillatorNodeHostObject.cpp +4 -2
  8. package/common/cpp/audioapi/HostObjects/sources/OscillatorNodeHostObject.h +1 -0
  9. package/common/cpp/audioapi/HostObjects/utils/JsEnumParser.cpp +127 -0
  10. package/common/cpp/audioapi/HostObjects/utils/JsEnumParser.h +17 -0
  11. package/common/cpp/audioapi/core/analysis/AnalyserNode.cpp +8 -8
  12. package/common/cpp/audioapi/core/analysis/AnalyserNode.h +2 -26
  13. package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +4 -4
  14. package/common/cpp/audioapi/core/effects/BiquadFilterNode.h +3 -50
  15. package/common/cpp/audioapi/core/effects/WaveShaperNode.cpp +5 -5
  16. package/common/cpp/audioapi/core/effects/WaveShaperNode.h +2 -25
  17. package/common/cpp/audioapi/core/sources/OscillatorNode.cpp +4 -4
  18. package/common/cpp/audioapi/core/sources/OscillatorNode.h +2 -37
  19. package/common/cpp/test/src/core/effects/WaveShaperNodeTest.cpp +2 -1
  20. package/development/react/package.json +6 -0
  21. package/lib/commonjs/development/react/Audio/Audio.js +26 -0
  22. package/lib/commonjs/development/react/Audio/Audio.js.map +1 -0
  23. package/lib/commonjs/development/react/Audio/Audio.web.js +12 -0
  24. package/lib/commonjs/development/react/Audio/Audio.web.js.map +1 -0
  25. package/lib/commonjs/development/react/Audio/index.js +14 -0
  26. package/lib/commonjs/development/react/Audio/index.js.map +1 -0
  27. package/lib/commonjs/development/react/Audio/types.js +2 -0
  28. package/lib/commonjs/development/react/Audio/types.js.map +1 -0
  29. package/lib/commonjs/development/react/Audio/utils.js +67 -0
  30. package/lib/commonjs/development/react/Audio/utils.js.map +1 -0
  31. package/lib/commonjs/development/react/index.js +28 -0
  32. package/lib/commonjs/development/react/index.js.map +1 -0
  33. package/lib/module/development/react/Audio/Audio.js +22 -0
  34. package/lib/module/development/react/Audio/Audio.js.map +1 -0
  35. package/lib/module/development/react/Audio/Audio.web.js +8 -0
  36. package/lib/module/development/react/Audio/Audio.web.js.map +1 -0
  37. package/lib/module/development/react/Audio/index.js +4 -0
  38. package/lib/module/development/react/Audio/index.js.map +1 -0
  39. package/lib/module/development/react/Audio/types.js +2 -0
  40. package/lib/module/development/react/Audio/types.js.map +1 -0
  41. package/lib/module/development/react/Audio/utils.js +62 -0
  42. package/lib/module/development/react/Audio/utils.js.map +1 -0
  43. package/lib/module/development/react/index.js +5 -0
  44. package/lib/module/development/react/index.js.map +1 -0
  45. package/lib/typescript/development/react/Audio/Audio.d.ts +5 -0
  46. package/lib/typescript/development/react/Audio/Audio.d.ts.map +1 -0
  47. package/lib/typescript/development/react/Audio/Audio.web.d.ts +5 -0
  48. package/lib/typescript/development/react/Audio/Audio.web.d.ts.map +1 -0
  49. package/lib/typescript/development/react/Audio/index.d.ts +3 -0
  50. package/lib/typescript/development/react/Audio/index.d.ts.map +1 -0
  51. package/lib/typescript/development/react/Audio/types.d.ts +47 -0
  52. package/lib/typescript/development/react/Audio/types.d.ts.map +1 -0
  53. package/lib/typescript/development/react/Audio/utils.d.ts +4 -0
  54. package/lib/typescript/development/react/Audio/utils.d.ts.map +1 -0
  55. package/lib/typescript/development/react/index.d.ts +3 -0
  56. package/lib/typescript/development/react/index.d.ts.map +1 -0
  57. package/package.json +2 -1
  58. package/src/development/react/Audio/Audio.tsx +24 -0
  59. package/src/development/react/Audio/Audio.web.tsx +9 -0
  60. package/src/development/react/Audio/index.ts +3 -0
  61. package/src/development/react/Audio/types.ts +64 -0
  62. package/src/development/react/Audio/utils.ts +86 -0
  63. package/src/development/react/index.ts +2 -0
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
8
+ const Audio = props => {
9
+ return null;
10
+ };
11
+ var _default = exports.default = Audio;
12
+ //# sourceMappingURL=Audio.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Audio","props","_default","exports","default"],"sourceRoot":"../../../../../src","sources":["development/react/Audio/Audio.web.tsx"],"mappings":";;;;;;AAGA;AACA,MAAMA,KAA2B,GAAIC,KAAK,IAAK;EAC7C,OAAO,IAAI;AACb,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaJ,KAAK","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Audio.default;
10
+ }
11
+ });
12
+ var _Audio = _interopRequireDefault(require("./Audio"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Audio","_interopRequireDefault","require","e","__esModule","default"],"sourceRoot":"../../../../../src","sources":["development/react/Audio/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAkC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["development/react/Audio/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useStableAudioProps = useStableAudioProps;
7
+ exports.withPropsDefaults = withPropsDefaults;
8
+ var _react = require("react");
9
+ function withPropsDefaults(props) {
10
+ return {
11
+ ...props,
12
+ autoPlay: props.autoPlay ?? false,
13
+ controls: props.controls ?? false,
14
+ loop: props.loop ?? false,
15
+ muted: props.muted ?? false,
16
+ preload: props.preload ?? 'auto',
17
+ source: props.source ?? [],
18
+ playbackRate: props.playbackRate ?? 1.0,
19
+ preservesPitch: props.preservesPitch ?? true,
20
+ volume: props.volume ?? 1.0
21
+ };
22
+ }
23
+ function useStableAudioProps(props) {
24
+ const {
25
+ // Control Props
26
+ autoPlay,
27
+ controls,
28
+ loop,
29
+ muted,
30
+ preload,
31
+ source,
32
+ playbackRate,
33
+ preservesPitch,
34
+ volume,
35
+ // Event Props
36
+ onLoadStart,
37
+ onLoad,
38
+ onError,
39
+ onProgress,
40
+ onSeeked,
41
+ onEnded,
42
+ onPlay,
43
+ onPause
44
+ } = withPropsDefaults(props);
45
+ return (0, _react.useMemo)(() => ({
46
+ // Control Props
47
+ autoPlay,
48
+ controls,
49
+ loop,
50
+ muted,
51
+ preload,
52
+ source,
53
+ playbackRate,
54
+ preservesPitch,
55
+ volume,
56
+ // Event Props
57
+ onLoadStart,
58
+ onLoad,
59
+ onError,
60
+ onProgress,
61
+ onSeeked,
62
+ onEnded,
63
+ onPlay,
64
+ onPause
65
+ }), [autoPlay, controls, loop, muted, preload, source, playbackRate, preservesPitch, volume, onLoadStart, onLoad, onError, onProgress, onSeeked, onEnded, onPlay, onPause]);
66
+ }
67
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","withPropsDefaults","props","autoPlay","controls","loop","muted","preload","source","playbackRate","preservesPitch","volume","useStableAudioProps","onLoadStart","onLoad","onError","onProgress","onSeeked","onEnded","onPlay","onPause","useMemo"],"sourceRoot":"../../../../../src","sources":["development/react/Audio/utils.ts"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGO,SAASC,iBAAiBA,CAACC,KAAiB,EAAkB;EACnE,OAAO;IACL,GAAGA,KAAK;IACRC,QAAQ,EAAED,KAAK,CAACC,QAAQ,IAAI,KAAK;IACjCC,QAAQ,EAAEF,KAAK,CAACE,QAAQ,IAAI,KAAK;IACjCC,IAAI,EAAEH,KAAK,CAACG,IAAI,IAAI,KAAK;IACzBC,KAAK,EAAEJ,KAAK,CAACI,KAAK,IAAI,KAAK;IAC3BC,OAAO,EAAEL,KAAK,CAACK,OAAO,IAAI,MAAM;IAChCC,MAAM,EAAEN,KAAK,CAACM,MAAM,IAAI,EAAE;IAC1BC,YAAY,EAAEP,KAAK,CAACO,YAAY,IAAI,GAAG;IACvCC,cAAc,EAAER,KAAK,CAACQ,cAAc,IAAI,IAAI;IAC5CC,MAAM,EAAET,KAAK,CAACS,MAAM,IAAI;EAC1B,CAAC;AACH;AAEO,SAASC,mBAAmBA,CAACV,KAAiB,EAAkB;EACrE,MAAM;IACJ;IACAC,QAAQ;IACRC,QAAQ;IACRC,IAAI;IACJC,KAAK;IACLC,OAAO;IACPC,MAAM;IACNC,YAAY;IACZC,cAAc;IACdC,MAAM;IAEN;IACAE,WAAW;IACXC,MAAM;IACNC,OAAO;IACPC,UAAU;IACVC,QAAQ;IACRC,OAAO;IACPC,MAAM;IACNC;EACF,CAAC,GAAGnB,iBAAiB,CAACC,KAAK,CAAC;EAE5B,OAAO,IAAAmB,cAAO,EACZ,OAAO;IACL;IACAlB,QAAQ;IACRC,QAAQ;IACRC,IAAI;IACJC,KAAK;IACLC,OAAO;IACPC,MAAM;IACNC,YAAY;IACZC,cAAc;IACdC,MAAM;IAEN;IACAE,WAAW;IACXC,MAAM;IACNC,OAAO;IACPC,UAAU;IACVC,QAAQ;IACRC,OAAO;IACPC,MAAM;IACNC;EACF,CAAC,CAAC,EACF,CACEjB,QAAQ,EACRC,QAAQ,EACRC,IAAI,EACJC,KAAK,EACLC,OAAO,EACPC,MAAM,EACNC,YAAY,EACZC,cAAc,EACdC,MAAM,EACNE,WAAW,EACXC,MAAM,EACNC,OAAO,EACPC,UAAU,EACVC,QAAQ,EACRC,OAAO,EACPC,MAAM,EACNC,OAAO,CAEX,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ Audio: true
8
+ };
9
+ Object.defineProperty(exports, "Audio", {
10
+ enumerable: true,
11
+ get: function () {
12
+ return _Audio.default;
13
+ }
14
+ });
15
+ var _Audio = _interopRequireWildcard(require("./Audio"));
16
+ Object.keys(_Audio).forEach(function (key) {
17
+ if (key === "default" || key === "__esModule") return;
18
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
19
+ if (key in exports && exports[key] === _Audio[key]) return;
20
+ Object.defineProperty(exports, key, {
21
+ enumerable: true,
22
+ get: function () {
23
+ return _Audio[key];
24
+ }
25
+ });
26
+ });
27
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Audio","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","set","getOwnPropertyDescriptor"],"sourceRoot":"../../../../src","sources":["development/react/index.ts"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAJ,MAAA,EAAAK,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAN,MAAA,CAAAM,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAd,MAAA,CAAAM,GAAA;IAAA;EAAA;AAAA;AAAwB,SAAAL,wBAAAc,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAhB,uBAAA,YAAAA,CAAAc,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAP,GAAA,CAAAC,CAAA,GAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAR,cAAA,CAAAC,IAAA,CAAAM,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAlB,MAAA,CAAAS,cAAA,KAAAT,MAAA,CAAAyB,wBAAA,CAAAb,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAR,GAAA,IAAAQ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ import { useStableAudioProps } from "./utils.js";
4
+ const Audio = inProps => {
5
+ /* eslint-disable @typescript-eslint/no-unused-vars */
6
+ const {
7
+ autoPlay,
8
+ controls,
9
+ loop,
10
+ muted,
11
+ preload,
12
+ source,
13
+ playbackRate,
14
+ preservesPitch,
15
+ volume
16
+ } = useStableAudioProps(inProps);
17
+ /* eslint-enable @typescript-eslint/no-unused-vars */
18
+
19
+ return null;
20
+ };
21
+ export default Audio;
22
+ //# sourceMappingURL=Audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useStableAudioProps","Audio","inProps","autoPlay","controls","loop","muted","preload","source","playbackRate","preservesPitch","volume"],"sourceRoot":"../../../../../src","sources":["development/react/Audio/Audio.tsx"],"mappings":";;AAGA,SAASA,mBAAmB,QAAQ,YAAS;AAE7C,MAAMC,KAA2B,GAAIC,OAAO,IAAK;EAC/C;EACA,MAAM;IACJC,QAAQ;IACRC,QAAQ;IACRC,IAAI;IACJC,KAAK;IACLC,OAAO;IACPC,MAAM;IACNC,YAAY;IACZC,cAAc;IACdC;EACF,CAAC,GAAGX,mBAAmB,CAACE,OAAO,CAAC;EAChC;;EAEA,OAAO,IAAI;AACb,CAAC;AAED,eAAeD,KAAK","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
4
+ const Audio = props => {
5
+ return null;
6
+ };
7
+ export default Audio;
8
+ //# sourceMappingURL=Audio.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Audio","props"],"sourceRoot":"../../../../../src","sources":["development/react/Audio/Audio.web.tsx"],"mappings":";;AAGA;AACA,MAAMA,KAA2B,GAAIC,KAAK,IAAK;EAC7C,OAAO,IAAI;AACb,CAAC;AAED,eAAeD,KAAK","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { default } from './Audio';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["default"],"sourceRoot":"../../../../../src","sources":["development/react/Audio/index.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,SAAS","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../src","sources":["development/react/Audio/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ import { useMemo } from 'react';
4
+ export function withPropsDefaults(props) {
5
+ return {
6
+ ...props,
7
+ autoPlay: props.autoPlay ?? false,
8
+ controls: props.controls ?? false,
9
+ loop: props.loop ?? false,
10
+ muted: props.muted ?? false,
11
+ preload: props.preload ?? 'auto',
12
+ source: props.source ?? [],
13
+ playbackRate: props.playbackRate ?? 1.0,
14
+ preservesPitch: props.preservesPitch ?? true,
15
+ volume: props.volume ?? 1.0
16
+ };
17
+ }
18
+ export function useStableAudioProps(props) {
19
+ const {
20
+ // Control Props
21
+ autoPlay,
22
+ controls,
23
+ loop,
24
+ muted,
25
+ preload,
26
+ source,
27
+ playbackRate,
28
+ preservesPitch,
29
+ volume,
30
+ // Event Props
31
+ onLoadStart,
32
+ onLoad,
33
+ onError,
34
+ onProgress,
35
+ onSeeked,
36
+ onEnded,
37
+ onPlay,
38
+ onPause
39
+ } = withPropsDefaults(props);
40
+ return useMemo(() => ({
41
+ // Control Props
42
+ autoPlay,
43
+ controls,
44
+ loop,
45
+ muted,
46
+ preload,
47
+ source,
48
+ playbackRate,
49
+ preservesPitch,
50
+ volume,
51
+ // Event Props
52
+ onLoadStart,
53
+ onLoad,
54
+ onError,
55
+ onProgress,
56
+ onSeeked,
57
+ onEnded,
58
+ onPlay,
59
+ onPause
60
+ }), [autoPlay, controls, loop, muted, preload, source, playbackRate, preservesPitch, volume, onLoadStart, onLoad, onError, onProgress, onSeeked, onEnded, onPlay, onPause]);
61
+ }
62
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","withPropsDefaults","props","autoPlay","controls","loop","muted","preload","source","playbackRate","preservesPitch","volume","useStableAudioProps","onLoadStart","onLoad","onError","onProgress","onSeeked","onEnded","onPlay","onPause"],"sourceRoot":"../../../../../src","sources":["development/react/Audio/utils.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAG/B,OAAO,SAASC,iBAAiBA,CAACC,KAAiB,EAAkB;EACnE,OAAO;IACL,GAAGA,KAAK;IACRC,QAAQ,EAAED,KAAK,CAACC,QAAQ,IAAI,KAAK;IACjCC,QAAQ,EAAEF,KAAK,CAACE,QAAQ,IAAI,KAAK;IACjCC,IAAI,EAAEH,KAAK,CAACG,IAAI,IAAI,KAAK;IACzBC,KAAK,EAAEJ,KAAK,CAACI,KAAK,IAAI,KAAK;IAC3BC,OAAO,EAAEL,KAAK,CAACK,OAAO,IAAI,MAAM;IAChCC,MAAM,EAAEN,KAAK,CAACM,MAAM,IAAI,EAAE;IAC1BC,YAAY,EAAEP,KAAK,CAACO,YAAY,IAAI,GAAG;IACvCC,cAAc,EAAER,KAAK,CAACQ,cAAc,IAAI,IAAI;IAC5CC,MAAM,EAAET,KAAK,CAACS,MAAM,IAAI;EAC1B,CAAC;AACH;AAEA,OAAO,SAASC,mBAAmBA,CAACV,KAAiB,EAAkB;EACrE,MAAM;IACJ;IACAC,QAAQ;IACRC,QAAQ;IACRC,IAAI;IACJC,KAAK;IACLC,OAAO;IACPC,MAAM;IACNC,YAAY;IACZC,cAAc;IACdC,MAAM;IAEN;IACAE,WAAW;IACXC,MAAM;IACNC,OAAO;IACPC,UAAU;IACVC,QAAQ;IACRC,OAAO;IACPC,MAAM;IACNC;EACF,CAAC,GAAGnB,iBAAiB,CAACC,KAAK,CAAC;EAE5B,OAAOF,OAAO,CACZ,OAAO;IACL;IACAG,QAAQ;IACRC,QAAQ;IACRC,IAAI;IACJC,KAAK;IACLC,OAAO;IACPC,MAAM;IACNC,YAAY;IACZC,cAAc;IACdC,MAAM;IAEN;IACAE,WAAW;IACXC,MAAM;IACNC,OAAO;IACPC,UAAU;IACVC,QAAQ;IACRC,OAAO;IACPC,MAAM;IACNC;EACF,CAAC,CAAC,EACF,CACEjB,QAAQ,EACRC,QAAQ,EACRC,IAAI,EACJC,KAAK,EACLC,OAAO,EACPC,MAAM,EACNC,YAAY,EACZC,cAAc,EACdC,MAAM,EACNE,WAAW,EACXC,MAAM,EACNC,OAAO,EACPC,UAAU,EACVC,QAAQ,EACRC,OAAO,EACPC,MAAM,EACNC,OAAO,CAEX,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export * from "./Audio/index.js";
4
+ export { default as Audio } from "./Audio/index.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["default","Audio"],"sourceRoot":"../../../../src","sources":["development/react/index.ts"],"mappings":";;AAAA,cAAc,kBAAS;AACvB,SAASA,OAAO,IAAIC,KAAK,QAAQ,kBAAS","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { AudioProps } from './types';
3
+ declare const Audio: React.FC<AudioProps>;
4
+ export default Audio;
5
+ //# sourceMappingURL=Audio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Audio.d.ts","sourceRoot":"","sources":["../../../../../src/development/react/Audio/Audio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAgB/B,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import type { AudioProps } from './types';
3
+ declare const Audio: React.FC<AudioProps>;
4
+ export default Audio;
5
+ //# sourceMappingURL=Audio.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Audio.web.d.ts","sourceRoot":"","sources":["../../../../../src/development/react/Audio/Audio.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAE/B,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { default } from './Audio';
2
+ export type { AudioProps, AudioSource, TimeRanges } from './types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/development/react/Audio/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,47 @@
1
+ export interface AudioURISource {
2
+ uri?: string | undefined;
3
+ method?: string | undefined;
4
+ headers?: {
5
+ [key: string]: string;
6
+ } | undefined;
7
+ body?: string | undefined;
8
+ }
9
+ export type AudioRequireSource = number;
10
+ export interface TimeRanges {
11
+ length: number;
12
+ start(index: number): number;
13
+ end(index: number): number;
14
+ }
15
+ export type AudioSource = AudioURISource | AudioRequireSource | ReadonlyArray<AudioURISource>;
16
+ export type PreloadType = 'auto' | 'metadata' | 'none';
17
+ interface AudioControlProps {
18
+ autoPlay: boolean;
19
+ controls: boolean;
20
+ loop: boolean;
21
+ muted: boolean;
22
+ preload: PreloadType;
23
+ source: AudioSource;
24
+ playbackRate: number;
25
+ preservesPitch: boolean;
26
+ volume: number;
27
+ }
28
+ interface AudioReadonlyProps {
29
+ }
30
+ type TMPEmptyEventHandler = () => void;
31
+ interface AudioEventProps {
32
+ onLoadStart?: TMPEmptyEventHandler;
33
+ onLoad?: TMPEmptyEventHandler;
34
+ onError?: TMPEmptyEventHandler;
35
+ onProgress?: TMPEmptyEventHandler;
36
+ onSeeked?: TMPEmptyEventHandler;
37
+ onEnded?: TMPEmptyEventHandler;
38
+ onPlay?: TMPEmptyEventHandler;
39
+ onPause?: TMPEmptyEventHandler;
40
+ }
41
+ export interface AudioPropsBase extends AudioControlProps, AudioReadonlyProps, AudioEventProps {
42
+ }
43
+ export type AudioProps = Partial<AudioPropsBase> & {
44
+ source: AudioSource;
45
+ };
46
+ export {};
47
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/development/react/Audio/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAEhD,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,kBAAkB,GAClB,aAAa,CAAC,cAAc,CAAC,CAAC;AAElC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;AAEvD,UAAU,iBAAiB;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,kBAAkB;CAO3B;AAED,KAAK,oBAAoB,GAAG,MAAM,IAAI,CAAC;AAEvC,UAAU,eAAe;IACvB,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,MAAM,WAAW,cACf,SAAQ,iBAAiB,EACvB,kBAAkB,EAClB,eAAe;CAAG;AAEtB,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { AudioProps, AudioPropsBase } from './types';
2
+ export declare function withPropsDefaults(props: AudioProps): AudioPropsBase;
3
+ export declare function useStableAudioProps(props: AudioProps): AudioPropsBase;
4
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/development/react/Audio/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAErD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAanE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAmErE"}
@@ -0,0 +1,3 @@
1
+ export * from './Audio';
2
+ export { default as Audio } from './Audio';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/development/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-audio-api",
3
- "version": "0.12.0-nightly-6993a06-20260122",
3
+ "version": "0.12.0-nightly-6a44b58-20260124",
4
4
  "description": "react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification",
5
5
  "bin": {
6
6
  "setup-rn-audio-api-web": "./scripts/setup-rn-audio-api-web.js"
@@ -12,6 +12,7 @@
12
12
  "types": "lib/typescript/index.d.ts",
13
13
  "files": [
14
14
  "src/",
15
+ "development/react/",
15
16
  "lib/",
16
17
  "common/",
17
18
  "android/src/main/AndroidManifest.xml",
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+
3
+ import type { AudioProps } from './types';
4
+ import { useStableAudioProps } from './utils';
5
+
6
+ const Audio: React.FC<AudioProps> = (inProps) => {
7
+ /* eslint-disable @typescript-eslint/no-unused-vars */
8
+ const {
9
+ autoPlay,
10
+ controls,
11
+ loop,
12
+ muted,
13
+ preload,
14
+ source,
15
+ playbackRate,
16
+ preservesPitch,
17
+ volume,
18
+ } = useStableAudioProps(inProps);
19
+ /* eslint-enable @typescript-eslint/no-unused-vars */
20
+
21
+ return null;
22
+ };
23
+
24
+ export default Audio;
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { AudioProps } from './types';
3
+
4
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
5
+ const Audio: React.FC<AudioProps> = (props) => {
6
+ return null;
7
+ };
8
+
9
+ export default Audio;
@@ -0,0 +1,3 @@
1
+ export { default } from './Audio';
2
+
3
+ export type { AudioProps, AudioSource, TimeRanges } from './types';
@@ -0,0 +1,64 @@
1
+ export interface AudioURISource {
2
+ uri?: string | undefined;
3
+ // bundle?: string | undefined;
4
+ method?: string | undefined;
5
+ headers?: { [key: string]: string } | undefined;
6
+ // cache?: 'default' | 'reload' | 'force-cache' | 'only-if-cached' | undefined;
7
+ body?: string | undefined;
8
+ }
9
+
10
+ export type AudioRequireSource = number;
11
+
12
+ export interface TimeRanges {
13
+ length: number;
14
+ start(index: number): number;
15
+ end(index: number): number;
16
+ }
17
+
18
+ export type AudioSource =
19
+ | AudioURISource
20
+ | AudioRequireSource
21
+ | ReadonlyArray<AudioURISource>;
22
+
23
+ export type PreloadType = 'auto' | 'metadata' | 'none';
24
+
25
+ interface AudioControlProps {
26
+ autoPlay: boolean;
27
+ controls: boolean; // TBD: should we support control display at all?
28
+ loop: boolean;
29
+ muted: boolean;
30
+ preload: PreloadType;
31
+ source: AudioSource;
32
+ playbackRate: number;
33
+ preservesPitch: boolean;
34
+ volume: number;
35
+ }
36
+
37
+ interface AudioReadonlyProps {
38
+ // TODO: decide if we want to expose them this way
39
+ // duration: number;
40
+ // currentTime: number;
41
+ // ended: boolean;
42
+ // paused: boolean;
43
+ // buffered: TimeRanges;
44
+ }
45
+
46
+ type TMPEmptyEventHandler = () => void;
47
+
48
+ interface AudioEventProps {
49
+ onLoadStart?: TMPEmptyEventHandler;
50
+ onLoad?: TMPEmptyEventHandler;
51
+ onError?: TMPEmptyEventHandler;
52
+ onProgress?: TMPEmptyEventHandler;
53
+ onSeeked?: TMPEmptyEventHandler;
54
+ onEnded?: TMPEmptyEventHandler;
55
+ onPlay?: TMPEmptyEventHandler;
56
+ onPause?: TMPEmptyEventHandler;
57
+ }
58
+
59
+ export interface AudioPropsBase
60
+ extends AudioControlProps,
61
+ AudioReadonlyProps,
62
+ AudioEventProps {}
63
+
64
+ export type AudioProps = Partial<AudioPropsBase> & { source: AudioSource };
@@ -0,0 +1,86 @@
1
+ import { useMemo } from 'react';
2
+ import { AudioProps, AudioPropsBase } from './types';
3
+
4
+ export function withPropsDefaults(props: AudioProps): AudioPropsBase {
5
+ return {
6
+ ...props,
7
+ autoPlay: props.autoPlay ?? false,
8
+ controls: props.controls ?? false,
9
+ loop: props.loop ?? false,
10
+ muted: props.muted ?? false,
11
+ preload: props.preload ?? 'auto',
12
+ source: props.source ?? [],
13
+ playbackRate: props.playbackRate ?? 1.0,
14
+ preservesPitch: props.preservesPitch ?? true,
15
+ volume: props.volume ?? 1.0,
16
+ };
17
+ }
18
+
19
+ export function useStableAudioProps(props: AudioProps): AudioPropsBase {
20
+ const {
21
+ // Control Props
22
+ autoPlay,
23
+ controls,
24
+ loop,
25
+ muted,
26
+ preload,
27
+ source,
28
+ playbackRate,
29
+ preservesPitch,
30
+ volume,
31
+
32
+ // Event Props
33
+ onLoadStart,
34
+ onLoad,
35
+ onError,
36
+ onProgress,
37
+ onSeeked,
38
+ onEnded,
39
+ onPlay,
40
+ onPause,
41
+ } = withPropsDefaults(props);
42
+
43
+ return useMemo(
44
+ () => ({
45
+ // Control Props
46
+ autoPlay,
47
+ controls,
48
+ loop,
49
+ muted,
50
+ preload,
51
+ source,
52
+ playbackRate,
53
+ preservesPitch,
54
+ volume,
55
+
56
+ // Event Props
57
+ onLoadStart,
58
+ onLoad,
59
+ onError,
60
+ onProgress,
61
+ onSeeked,
62
+ onEnded,
63
+ onPlay,
64
+ onPause,
65
+ }),
66
+ [
67
+ autoPlay,
68
+ controls,
69
+ loop,
70
+ muted,
71
+ preload,
72
+ source,
73
+ playbackRate,
74
+ preservesPitch,
75
+ volume,
76
+ onLoadStart,
77
+ onLoad,
78
+ onError,
79
+ onProgress,
80
+ onSeeked,
81
+ onEnded,
82
+ onPlay,
83
+ onPause,
84
+ ]
85
+ );
86
+ }
@@ -0,0 +1,2 @@
1
+ export * from './Audio';
2
+ export { default as Audio } from './Audio';