@exode-team/react-recorder 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 (100) hide show
  1. package/README.md +82 -2
  2. package/dist/components/AudioRecorder.d.ts +20 -0
  3. package/dist/components/AudioRecorder.d.ts.map +1 -0
  4. package/dist/components/AudioRecorder.messages.d.ts +32 -0
  5. package/dist/components/AudioRecorder.messages.d.ts.map +1 -0
  6. package/dist/components/AudioRecorder.styled.d.ts +7 -0
  7. package/dist/components/AudioRecorder.styled.d.ts.map +1 -0
  8. package/dist/components/IdleControl/IdleControl.d.ts +13 -0
  9. package/dist/components/IdleControl/IdleControl.d.ts.map +1 -0
  10. package/dist/{atoms/IdleControlAtom.styled.d.ts → components/IdleControl/IdleControl.styled.d.ts} +2 -2
  11. package/dist/components/IdleControl/IdleControl.styled.d.ts.map +1 -0
  12. package/dist/{atoms/RecordingShellAtom.d.ts → components/RecordingShell/RecordingShell.d.ts} +4 -4
  13. package/dist/components/RecordingShell/RecordingShell.d.ts.map +1 -0
  14. package/dist/{atoms/RecordingShellAtom.styled.d.ts → components/RecordingShell/RecordingShell.styled.d.ts} +2 -2
  15. package/dist/components/RecordingShell/RecordingShell.styled.d.ts.map +1 -0
  16. package/dist/components/VoiceMessagePlayer/VoiceMessagePlayer.d.ts +11 -0
  17. package/dist/components/VoiceMessagePlayer/VoiceMessagePlayer.d.ts.map +1 -0
  18. package/dist/components/VoiceMessagePlayer/VoiceMessagePlayer.styled.d.ts +13 -0
  19. package/dist/components/VoiceMessagePlayer/VoiceMessagePlayer.styled.d.ts.map +1 -0
  20. package/dist/components/VoiceRecorderInput/PreviewBars.d.ts +17 -0
  21. package/dist/components/VoiceRecorderInput/PreviewBars.d.ts.map +1 -0
  22. package/dist/components/VoiceRecorderInput/TimelineBars.d.ts +12 -0
  23. package/dist/components/VoiceRecorderInput/TimelineBars.d.ts.map +1 -0
  24. package/dist/components/VoiceRecorderInput/VoiceRecorderInput.d.ts +22 -0
  25. package/dist/components/VoiceRecorderInput/VoiceRecorderInput.d.ts.map +1 -0
  26. package/dist/components/VoiceRecorderInput/VoiceRecorderInput.styled.d.ts +18 -0
  27. package/dist/components/VoiceRecorderInput/VoiceRecorderInput.styled.d.ts.map +1 -0
  28. package/dist/{atoms/WaveformBarsAtom.d.ts → components/WaveformBars/WaveformBars.d.ts} +4 -4
  29. package/dist/components/WaveformBars/WaveformBars.d.ts.map +1 -0
  30. package/dist/constants.d.ts +5 -0
  31. package/dist/constants.d.ts.map +1 -1
  32. package/dist/hooks/index.d.ts +12 -0
  33. package/dist/hooks/index.d.ts.map +1 -0
  34. package/dist/hooks/useAudioBlobLoader.d.ts +23 -0
  35. package/dist/hooks/useAudioBlobLoader.d.ts.map +1 -0
  36. package/dist/hooks/useAudioPlayback.d.ts +19 -0
  37. package/dist/hooks/useAudioPlayback.d.ts.map +1 -0
  38. package/dist/hooks/useAudioRecorderHandlers.d.ts +22 -0
  39. package/dist/hooks/useAudioRecorderHandlers.d.ts.map +1 -0
  40. package/dist/hooks/useMediaRecorder.d.ts +18 -0
  41. package/dist/hooks/useMediaRecorder.d.ts.map +1 -0
  42. package/dist/hooks/useRecorderVisualization.d.ts +2 -0
  43. package/dist/hooks/useRecorderVisualization.d.ts.map +1 -1
  44. package/dist/hooks/useRecordingSender.d.ts +23 -0
  45. package/dist/hooks/useRecordingSender.d.ts.map +1 -0
  46. package/dist/hooks/useRecordingTiming.d.ts.map +1 -1
  47. package/dist/hooks/useVoiceMessagePlayer.d.ts +9 -0
  48. package/dist/hooks/useVoiceMessagePlayer.d.ts.map +1 -0
  49. package/dist/hooks/useVoiceRecorder.d.ts +0 -1
  50. package/dist/hooks/useVoiceRecorder.d.ts.map +1 -1
  51. package/dist/hooks/useVoiceRecorderInput.d.ts +31 -0
  52. package/dist/hooks/useVoiceRecorderInput.d.ts.map +1 -0
  53. package/dist/index.cjs +2074 -18071
  54. package/dist/index.cjs.map +1 -1
  55. package/dist/index.d.ts +19 -3
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +2067 -18073
  58. package/dist/index.js.map +1 -1
  59. package/dist/platform/animation-frame-adapter.d.ts +8 -0
  60. package/dist/platform/animation-frame-adapter.d.ts.map +1 -0
  61. package/dist/platform/audio-analyzer-adapter.d.ts +13 -0
  62. package/dist/platform/audio-analyzer-adapter.d.ts.map +1 -0
  63. package/dist/platform/audio-blob-fetcher.d.ts +7 -0
  64. package/dist/platform/audio-blob-fetcher.d.ts.map +1 -0
  65. package/dist/platform/audio-playback-adapter.d.ts +19 -0
  66. package/dist/platform/audio-playback-adapter.d.ts.map +1 -0
  67. package/dist/platform/audio-playback-manager.d.ts +14 -0
  68. package/dist/platform/audio-playback-manager.d.ts.map +1 -0
  69. package/dist/platform/index.d.ts +16 -0
  70. package/dist/platform/index.d.ts.map +1 -0
  71. package/dist/platform/media-recorder-adapter.d.ts +20 -0
  72. package/dist/platform/media-recorder-adapter.d.ts.map +1 -0
  73. package/dist/platform/microphone.d.ts +9 -0
  74. package/dist/platform/microphone.d.ts.map +1 -0
  75. package/dist/types/index.d.ts +9 -0
  76. package/dist/types/index.d.ts.map +1 -0
  77. package/dist/{types.d.ts → types/recorder.d.ts} +34 -20
  78. package/dist/types/recorder.d.ts.map +1 -0
  79. package/dist/types/upload.d.ts +24 -0
  80. package/dist/types/upload.d.ts.map +1 -0
  81. package/dist/utils/format.d.ts +7 -0
  82. package/dist/utils/format.d.ts.map +1 -0
  83. package/dist/utils/index.d.ts +8 -0
  84. package/dist/utils/index.d.ts.map +1 -0
  85. package/dist/utils/math.d.ts +8 -0
  86. package/dist/utils/math.d.ts.map +1 -0
  87. package/dist/utils/voice-blob-cache.d.ts +20 -0
  88. package/dist/utils/voice-blob-cache.d.ts.map +1 -0
  89. package/dist/utils/voice-playback-chain.d.ts +20 -0
  90. package/dist/utils/voice-playback-chain.d.ts.map +1 -0
  91. package/package.json +5 -5
  92. package/dist/AudioRecorder.d.ts +0 -43
  93. package/dist/AudioRecorder.d.ts.map +0 -1
  94. package/dist/atoms/IdleControlAtom.d.ts +0 -13
  95. package/dist/atoms/IdleControlAtom.d.ts.map +0 -1
  96. package/dist/atoms/IdleControlAtom.styled.d.ts.map +0 -1
  97. package/dist/atoms/RecordingShellAtom.d.ts.map +0 -1
  98. package/dist/atoms/RecordingShellAtom.styled.d.ts.map +0 -1
  99. package/dist/atoms/WaveformBarsAtom.d.ts.map +0 -1
  100. package/dist/types.d.ts.map +0 -1
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Animation frame platform adapter
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ export declare const scheduleFrame: (callback: FrameRequestCallback) => number;
7
+ export declare const cancelFrame: (id: number) => void;
8
+ //# sourceMappingURL=animation-frame-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animation-frame-adapter.d.ts","sourceRoot":"","sources":["../../src/platform/animation-frame-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,eAAO,MAAM,aAAa,GAAI,UAAU,oBAAoB,KAAG,MAE9D,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,IAExC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Audio analyzer platform adapter
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ export interface StreamAnalyzer {
7
+ context: AudioContext;
8
+ analyser: AnalyserNode;
9
+ }
10
+ export declare const createStreamAnalyzer: (stream: MediaStream) => StreamAnalyzer;
11
+ export declare const readFrequencyLevels: (analyser: AnalyserNode, barCount?: number) => number[];
12
+ export declare const decodeAudioLevels: (blob: Blob, barCount?: number) => Promise<number[]>;
13
+ //# sourceMappingURL=audio-analyzer-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-analyzer-adapter.d.ts","sourceRoot":"","sources":["../../src/platform/audio-analyzer-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;CAC1B;AAED,eAAO,MAAM,oBAAoB,GAAI,QAAQ,WAAW,KAAG,cAS1D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,UAAU,YAAY,EAAE,WAAU,MAAyB,KAAG,MAAM,EAevG,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC1B,MAAM,IAAI,EACV,WAAU,MAAyB,KACpC,OAAO,CAAC,MAAM,EAAE,CAkClB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Audio blob fetcher platform adapter
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ export declare const fetchAudioBlob: (url: string, signal?: AbortSignal) => Promise<Blob>;
7
+ //# sourceMappingURL=audio-blob-fetcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-blob-fetcher.d.ts","sourceRoot":"","sources":["../../src/platform/audio-blob-fetcher.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,eAAO,MAAM,cAAc,GAAU,KAAK,MAAM,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,IAAI,CAIpF,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Audio playback platform adapter
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ export interface AudioPlayback {
7
+ audio: HTMLAudioElement;
8
+ url: string;
9
+ }
10
+ export interface PlaybackCallbacks {
11
+ onLoadedMetadata: (duration: number) => void;
12
+ onTimeUpdate: (currentTime: number) => void;
13
+ onEnded: () => void;
14
+ }
15
+ export declare const createAudioPlayback: (url: string, callbacks: PlaybackCallbacks) => AudioPlayback;
16
+ export declare const cleanupAudio: (audio: HTMLAudioElement) => void;
17
+ export declare const createObjectURL: (blob: Blob) => string;
18
+ export declare const revokeObjectURL: (url: string) => void;
19
+ //# sourceMappingURL=audio-playback-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-playback-adapter.d.ts","sourceRoot":"","sources":["../../src/platform/audio-playback-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAC9B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB,GAAI,KAAK,MAAM,EAAE,WAAW,iBAAiB,KAAG,aAgB/E,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,gBAAgB,KAAG,IAMtD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,IAAI,KAAG,MAE5C,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,KAAG,IAE7C,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Global audio playback manager — ensures only one audio plays at a time
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ type StopCallback = () => void;
7
+ export declare const audioPlaybackManager: {
8
+ /** Register a stop callback for a player instance */
9
+ subscribe: (callback: StopCallback) => () => void;
10
+ /** Stop all other players except the caller */
11
+ stopOthers: (except: StopCallback) => void;
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=audio-playback-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-playback-manager.d.ts","sourceRoot":"","sources":["../../src/platform/audio-playback-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,KAAK,YAAY,GAAG,MAAM,IAAI,CAAC;AAI/B,eAAO,MAAM,oBAAoB;IAC7B,qDAAqD;0BAC/B,YAAY;IAQlC,+CAA+C;yBAC1B,YAAY;CAOpC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Platform adapters barrel (internal — not exported publicly)
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ export { requestMicrophoneAccess, classifyMicError } from './microphone';
7
+ export type { MicErrorKind } from './microphone';
8
+ export { createRecorderSession, stopStream } from './media-recorder-adapter';
9
+ export type { RecorderSession, RecorderSessionCallbacks } from './media-recorder-adapter';
10
+ export { createAudioPlayback, cleanupAudio, createObjectURL, revokeObjectURL } from './audio-playback-adapter';
11
+ export type { AudioPlayback, PlaybackCallbacks } from './audio-playback-adapter';
12
+ export { createStreamAnalyzer, readFrequencyLevels, decodeAudioLevels } from './audio-analyzer-adapter';
13
+ export type { StreamAnalyzer } from './audio-analyzer-adapter';
14
+ export { fetchAudioBlob } from './audio-blob-fetcher';
15
+ export { scheduleFrame, cancelFrame } from './animation-frame-adapter';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACzE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC7E,YAAY,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAE1F,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC/G,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACxG,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * MediaRecorder platform adapter
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ export interface RecorderSession {
7
+ recorder: MediaRecorder;
8
+ stream: MediaStream;
9
+ }
10
+ export interface RecorderSessionCallbacks {
11
+ onDataAvailable: (event: BlobEvent) => void;
12
+ onStop: () => void;
13
+ onPause: () => void;
14
+ onResume: () => void;
15
+ }
16
+ export declare const createRecorderSession: (stream: MediaStream, callbacks: RecorderSessionCallbacks, options?: {
17
+ mimeType?: string;
18
+ }) => RecorderSession;
19
+ export declare const stopStream: (stream: MediaStream) => void;
20
+ //# sourceMappingURL=media-recorder-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-recorder-adapter.d.ts","sourceRoot":"","sources":["../../src/platform/media-recorder-adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACrC,eAAe,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB,GAC9B,QAAQ,WAAW,EACnB,WAAW,wBAAwB,EACnC,UAAU;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,KAChC,eAeF,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,QAAQ,WAAW,KAAG,IAEhD,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Microphone platform adapter
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ export type MicErrorKind = 'permission' | 'not-supported' | 'unknown';
7
+ export declare const classifyMicError: (error: unknown) => MicErrorKind;
8
+ export declare const requestMicrophoneAccess: () => Promise<MediaStream>;
9
+ //# sourceMappingURL=microphone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microphone.d.ts","sourceRoot":"","sources":["../../src/platform/microphone.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,SAAS,CAAC;AAEtE,eAAO,MAAM,gBAAgB,GAAI,OAAO,OAAO,KAAG,YAYjD,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAa,OAAO,CAAC,WAAW,CAMnE,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Types barrel
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ export type { StorageFileEntity, StorageSpace, UploadStrategy } from './upload';
7
+ export { StorageSpaceEnum } from './upload';
8
+ export type { UseVoiceRecorderOptions, UseVoiceRecorderResult, UseVoiceMessagePlayerOptions, UseVoiceMessagePlayerResult, MediaRecorderCallbacks, } from './recorder';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,YAAY,EACR,uBAAuB,EACvB,sBAAsB,EACtB,4BAA4B,EAC5B,2BAA2B,EAC3B,sBAAsB,GACzB,MAAM,YAAY,CAAC"}
@@ -1,26 +1,9 @@
1
1
  /**
2
- * AudioRecorder shared types
2
+ * Recorder types
3
3
  *
4
4
  * @author: exode <hello@exode.ru>
5
5
  */
6
- export interface StorageFileEntity {
7
- id?: number;
8
- url?: string;
9
- name?: string;
10
- size?: number;
11
- mimeType?: string;
12
- [key: string]: unknown;
13
- }
14
- export declare const StorageSpaceEnum: {
15
- readonly User: "user";
16
- readonly Shared: "shared";
17
- readonly System: "system";
18
- };
19
- export type StorageSpace = typeof StorageSpaceEnum[keyof typeof StorageSpaceEnum] | (string & {});
20
- export type UploadStrategy<TFile> = (file: File, ctx: {
21
- space: StorageSpace;
22
- uploadId: string;
23
- }) => Promise<TFile>;
6
+ import type { StorageSpace, UploadStrategy } from './upload';
24
7
  export interface UseVoiceRecorderOptions<TFile = unknown> {
25
8
  space: StorageSpace;
26
9
  uploadId: string;
@@ -56,4 +39,35 @@ export interface UseVoiceRecorderResult {
56
39
  sendRecording: () => Promise<void>;
57
40
  formatTime: (seconds: number) => string;
58
41
  }
59
- //# sourceMappingURL=types.d.ts.map
42
+ export interface UseVoiceMessagePlayerOptions {
43
+ src: string;
44
+ duration?: number;
45
+ waveformData?: number[];
46
+ preloadedBlob?: Blob | null;
47
+ onEnded?: () => void;
48
+ }
49
+ export interface UseVoiceMessagePlayerResult {
50
+ isPlaying: boolean;
51
+ isLoading: boolean;
52
+ isLoaded: boolean;
53
+ currentTime: number;
54
+ duration: number;
55
+ progress: number;
56
+ waveformLevels: number[];
57
+ play: () => void;
58
+ preload: () => void;
59
+ togglePlayback: () => void;
60
+ seekTo: (progress: number) => void;
61
+ formatTime: (seconds: number) => string;
62
+ }
63
+ export interface MediaRecorderCallbacks {
64
+ onDataChunk: (chunk: Blob) => void;
65
+ onNeedsPreview: (chunks: Blob[]) => void;
66
+ onStopped: (chunks: Blob[], discarded: boolean) => void;
67
+ onPaused: () => void;
68
+ onResumed: () => void;
69
+ onStreamAcquired: (stream: MediaStream) => void;
70
+ onPermissionDenied: (error: unknown) => void;
71
+ onError: (error: unknown) => void;
72
+ }
73
+ //# sourceMappingURL=recorder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../src/types/recorder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Upload types
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ export interface StorageFileEntity {
7
+ id?: number;
8
+ url?: string;
9
+ name?: string;
10
+ size?: number;
11
+ mimeType?: string;
12
+ [key: string]: unknown;
13
+ }
14
+ export declare const StorageSpaceEnum: {
15
+ readonly User: "user";
16
+ readonly Shared: "shared";
17
+ readonly System: "system";
18
+ };
19
+ export type StorageSpace = typeof StorageSpaceEnum[keyof typeof StorageSpaceEnum] | (string & {});
20
+ export type UploadStrategy<TFile> = (file: File, ctx: {
21
+ space: StorageSpace;
22
+ uploadId: string;
23
+ }) => Promise<TFile>;
24
+ //# sourceMappingURL=upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/types/upload.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,MAAM,WAAW,iBAAiB;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElG,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI,CAChC,IAAI,EAAE,IAAI,EACV,GAAG,EAAE;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KAC7C,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Format utilities
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ export declare const formatTime: (seconds: number) => string;
7
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,MAK5C,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Utils barrel
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ export { clampValue, roundTo } from './math';
7
+ export { formatTime } from './format';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Math utilities
3
+ *
4
+ * @author: exode <hello@exode.ru>
5
+ */
6
+ export declare const clampValue: (value: number, lowerBound?: number, upperBound?: number) => number;
7
+ export declare const roundTo: (value: number, precision?: number) => number;
8
+ //# sourceMappingURL=math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,mBAAc,EAAE,mBAAgB,KAAG,MAI5E,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,EAAE,kBAAa,KAAG,MAItD,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * VoiceBlobCache
3
+ *
4
+ * @description In-memory cache for voice message blobs.
5
+ * Allows instant playback of just-sent voice messages
6
+ * before the server URL becomes available.
7
+ *
8
+ * @author: exode <hello@exode.ru>
9
+ */
10
+ declare class VoiceBlobCacheClass {
11
+ private cache;
12
+ set: (messageId: number, blob: Blob) => void;
13
+ get: (messageId: number) => Blob | undefined;
14
+ delete: (messageId: number) => void;
15
+ /** Transfer blob from optimistic ID to real server ID */
16
+ transfer: (fromId: number, toId: number) => void;
17
+ }
18
+ export declare const VoiceBlobCache: VoiceBlobCacheClass;
19
+ export {};
20
+ //# sourceMappingURL=voice-blob-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-blob-cache.d.ts","sourceRoot":"","sources":["../../src/utils/voice-blob-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,cAAM,mBAAmB;IAErB,OAAO,CAAC,KAAK,CAA2B;IAExC,GAAG,GAAI,WAAW,MAAM,EAAE,MAAM,IAAI,UAElC;IAEF,GAAG,GAAI,WAAW,MAAM,KAAG,IAAI,GAAG,SAAS,CAEzC;IAEF,MAAM,GAAI,WAAW,MAAM,UAEzB;IAEF,yDAAyD;IACzD,QAAQ,GAAI,QAAQ,MAAM,EAAE,MAAM,MAAM,UAOtC;CAEL;AAGD,eAAO,MAAM,cAAc,qBAA4B,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * VoicePlaybackChain
3
+ *
4
+ * @description Sequential voice message playback chain (like Telegram).
5
+ * Registers voice players by media ID and plays the next one when current ends.
6
+ *
7
+ * @author: exode <hello@exode.ru>
8
+ */
9
+ declare class VoicePlaybackChainClass {
10
+ private entries;
11
+ /** Register a voice player. Returns cleanup function for useEffect. */
12
+ register: (id: number, play: () => void) => () => void;
13
+ /** Unregister a voice player by media ID */
14
+ unregister: (id: number) => void;
15
+ /** Play the next voice message after the given media ID */
16
+ playNext: (currentId: number) => void;
17
+ }
18
+ export declare const VoicePlaybackChain: VoicePlaybackChainClass;
19
+ export {};
20
+ //# sourceMappingURL=voice-playback-chain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-playback-chain.d.ts","sourceRoot":"","sources":["../../src/utils/voice-playback-chain.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,cAAM,uBAAuB;IAEzB,OAAO,CAAC,OAAO,CAAoB;IAEnC,uEAAuE;IACvE,QAAQ,GAAI,IAAI,MAAM,EAAE,MAAM,MAAM,IAAI,gBAMtC;IAEF,4CAA4C;IAC5C,UAAU,GAAI,IAAI,MAAM,UAEtB;IAEF,2DAA2D;IAC3D,QAAQ,GAAI,WAAW,MAAM,UAM3B;CAEL;AAGD,eAAO,MAAM,kBAAkB,yBAAgC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exode-team/react-recorder",
3
- "version": "1.0.3",
3
+ "version": "1.1.1",
4
4
  "description": "Accessible audio recorder UI kit for React applications",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
@@ -8,6 +8,8 @@
8
8
  "scripts": {
9
9
  "clean": "rimraf dist",
10
10
  "build": "rollup -c",
11
+ "sandbox": "cd sandbox && npx vite",
12
+ "sandbox:build": "cd sandbox && npx vite build",
11
13
  "prepare": "yarn build",
12
14
  "npm:publish": "npm run build && npm publish"
13
15
  },
@@ -26,10 +28,8 @@
26
28
  "peerDependencies": {
27
29
  "react": ">=17.0.0",
28
30
  "react-dom": ">=17.0.0",
29
- "styled-components": ">=5.3.0"
30
- },
31
- "dependencies": {
32
- "lodash": "^4.17.21"
31
+ "styled-components": ">=5.3.0",
32
+ "@vkontakte/icons": ">=2.0.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@rollup/plugin-commonjs": "^25.0.7",
@@ -1,43 +0,0 @@
1
- /**
2
- * AudioRecorder
3
- *
4
- * @author: exode <hello@exode.ru>
5
- */
6
- import { type StorageFileEntity, type StorageSpace, type UploadStrategy, type UseVoiceRecorderOptions } from './types';
7
- type RecorderOptionOverrides = Omit<UseVoiceRecorderOptions<Partial<StorageFileEntity>>, 'space' | 'uploadId' | 'onUploaded' | 'uploader'>;
8
- interface RecorderMessages {
9
- buttons: {
10
- send: string;
11
- cancel: string;
12
- };
13
- instruction: string;
14
- aria: {
15
- startRecording: string;
16
- stopRecording: string;
17
- pauseRecording: string;
18
- resumeRecording: string;
19
- playRecording: string;
20
- pausePlayback: string;
21
- };
22
- errors: {
23
- loadFileFailed: string;
24
- };
25
- }
26
- type RecorderMessagesInput = Partial<{
27
- buttons: Partial<RecorderMessages['buttons']>;
28
- instruction: RecorderMessages['instruction'];
29
- aria: Partial<RecorderMessages['aria']>;
30
- errors: Partial<RecorderMessages['errors']>;
31
- }>;
32
- interface Props extends Partial<RecorderOptionOverrides> {
33
- uploader: UploadStrategy<Partial<StorageFileEntity>>;
34
- messages?: RecorderMessagesInput;
35
- uploadId?: string;
36
- className?: string;
37
- space?: StorageSpace;
38
- onUploadError?: (error: unknown) => void;
39
- onUploaded?: (file: Partial<StorageFileEntity>) => void | Promise<void>;
40
- }
41
- declare const AudioRecorder: (props: Props) => any;
42
- export { AudioRecorder };
43
- //# sourceMappingURL=AudioRecorder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AudioRecorder.d.ts","sourceRoot":"","sources":["../src/AudioRecorder.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAEjB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC/B,MAAM,SAAS,CAAC;AAGjB,KAAK,uBAAuB,GAAG,IAAI,CAC/B,uBAAuB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,EACnD,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CACnD,CAAC;AAEF,UAAU,gBAAgB;IACtB,OAAO,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE;QACF,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,MAAM,EAAE;QACJ,cAAc,EAAE,MAAM,CAAC;KAC1B,CAAC;CACL;AAED,KAAK,qBAAqB,GAAG,OAAO,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,WAAW,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC7C,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;CAC/C,CAAC,CAAC;AAEH,UAAU,KAAM,SAAQ,OAAO,CAAC,uBAAuB,CAAC;IACpD,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E;AAoDD,QAAA,MAAM,aAAa,GAAI,OAAO,KAAK,QA6NlC,CAAC;AAGF,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -1,13 +0,0 @@
1
- /**
2
- * IdleControlAtom
3
- *
4
- * @author: exode <hello@exode.ru>
5
- */
6
- interface Props {
7
- onClick: () => void;
8
- instruction: string;
9
- startAriaLabel: string;
10
- }
11
- declare const IdleControlAtom: (props: Props) => any;
12
- export { IdleControlAtom };
13
- //# sourceMappingURL=IdleControlAtom.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IdleControlAtom.d.ts","sourceRoot":"","sources":["../../src/atoms/IdleControlAtom.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,UAAU,KAAK;IACX,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAGD,QAAA,MAAM,eAAe,GAAI,OAAO,KAAK,QAsBpC,CAAC;AAGF,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IdleControlAtom.styled.d.ts","sourceRoot":"","sources":["../../src/atoms/IdleControlAtom.styled.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,eAAO,MAAM,WAAW,KAKvB,CAAC;AAEF,eAAO,MAAM,UAAU,KA0BtB,CAAC;AAEF,eAAO,MAAM,iBAAiB,KAM7B,CAAC;AAEF,eAAO,MAAM,cAAc,KAY1B,CAAC;AAEF,eAAO,MAAM,eAAe,KAI3B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecordingShellAtom.d.ts","sourceRoot":"","sources":["../../src/atoms/RecordingShellAtom.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AA4BH,UAAU,KAAK;IACX,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB,EAAE,MAAM,CAAC;IAChC,wBAAwB,EAAE,MAAM,CAAC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C;AAGD,QAAA,MAAM,kBAAkB,GAAI,OAAO,KAAK,QAwHvC,CAAC;AAGF,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RecordingShellAtom.styled.d.ts","sourceRoot":"","sources":["../../src/atoms/RecordingShellAtom.styled.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,eAAO,MAAM,OAAO,KAQnB,CAAC;AAEF,eAAO,MAAM,YAAY,KAqBxB,CAAC;AAEF,eAAO,MAAM,KAAK,KAQjB,CAAC;AAEF,eAAO,MAAM,YAAY,KA2CxB,CAAC;AAEF,eAAO,MAAM,QAAQ,KAOpB,CAAC;AAEF,eAAO,MAAM,IAAI,KAMhB,CAAC;AAEF,eAAO,MAAM,GAAG,KAOf,CAAC;AAEF,eAAO,MAAM,KAAK,KAKjB,CAAC;AAEF,eAAO,MAAM,UAAU,KAyBtB,CAAC;AAEF,eAAO,MAAM,WAAW,KAMvB,CAAC;AAEF,eAAO,MAAM,OAAO,KAoBnB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WaveformBarsAtom.d.ts","sourceRoot":"","sources":["../../src/atoms/WaveformBarsAtom.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,UAAU,KAAK;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACjB,KAAK,KAAK,CAAC,aAAa,CAAC;CAC7B;AAGD,QAAA,MAAM,gBAAgB,GAAI,OAAO,KAAK,QA0BrC,CAAC;AAGF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,MAAM,WAAW,iBAAiB;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,gBAAgB,CAAC,MAAM,OAAO,gBAAgB,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElG,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI,CAChC,IAAI,EAAE,IAAI,EACV,GAAG,EAAE;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KAC7C,OAAO,CAAC,KAAK,CAAC,CAAC;AAEpB,MAAM,WAAW,uBAAuB,CAAC,KAAK,GAAG,OAAO;IACpD,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC;CAC3C"}