react-native-ensys-camera-x 1.0.7
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.
- package/CustomCamera.podspec +20 -0
- package/LICENSE +20 -0
- package/README.md +833 -0
- package/android/build.gradle +135 -0
- package/android/consumer-rules.pro +47 -0
- package/android/src/main/AndroidManifest.xml +72 -0
- package/android/src/main/java/android/print/PdfPrint.java +51 -0
- package/android/src/main/java/com/customcamera/AnimatedImageViewManager.kt +199 -0
- package/android/src/main/java/com/customcamera/AudioPlayerView.kt +322 -0
- package/android/src/main/java/com/customcamera/AudioRecorder.kt +506 -0
- package/android/src/main/java/com/customcamera/BarcodeScannerActivity.kt +361 -0
- package/android/src/main/java/com/customcamera/BlurBackgroundView.kt +199 -0
- package/android/src/main/java/com/customcamera/CacheCleanupManager.kt +386 -0
- package/android/src/main/java/com/customcamera/CameraAspectRatioMode.kt +77 -0
- package/android/src/main/java/com/customcamera/CameraAsset.kt +211 -0
- package/android/src/main/java/com/customcamera/CameraTheme.kt +479 -0
- package/android/src/main/java/com/customcamera/CompressionCacheStore.kt +504 -0
- package/android/src/main/java/com/customcamera/CompressionFileNameUtils.kt +7 -0
- package/android/src/main/java/com/customcamera/CompressionProfile.kt +195 -0
- package/android/src/main/java/com/customcamera/CustomCameraActivity.kt +7291 -0
- package/android/src/main/java/com/customcamera/CustomCameraFileProvider.kt +9 -0
- package/android/src/main/java/com/customcamera/CustomCameraModule.kt +2479 -0
- package/android/src/main/java/com/customcamera/CustomCameraPackage.kt +53 -0
- package/android/src/main/java/com/customcamera/DisplayUtils.kt +9 -0
- package/android/src/main/java/com/customcamera/DocumentPreviewView.kt +846 -0
- package/android/src/main/java/com/customcamera/DrawingView.kt +214 -0
- package/android/src/main/java/com/customcamera/EmojiPickerData.kt +228 -0
- package/android/src/main/java/com/customcamera/FilterStripAdapter.kt +158 -0
- package/android/src/main/java/com/customcamera/GifSupport.kt +215 -0
- package/android/src/main/java/com/customcamera/GlobalAudioPlayer.kt +320 -0
- package/android/src/main/java/com/customcamera/ImageExporter.kt +1394 -0
- package/android/src/main/java/com/customcamera/ImageFormatSupport.kt +163 -0
- package/android/src/main/java/com/customcamera/Localization.kt +206 -0
- package/android/src/main/java/com/customcamera/MediaAdapters.kt +758 -0
- package/android/src/main/java/com/customcamera/MediaCacheManager.kt +782 -0
- package/android/src/main/java/com/customcamera/MediaExportFormats.kt +201 -0
- package/android/src/main/java/com/customcamera/MediaFileIo.kt +310 -0
- package/android/src/main/java/com/customcamera/MediaMetadataStore.kt +494 -0
- package/android/src/main/java/com/customcamera/MediaPreviewEditor.kt +14865 -0
- package/android/src/main/java/com/customcamera/MediaPublisher.kt +423 -0
- package/android/src/main/java/com/customcamera/MediaStorageWorkflow.kt +722 -0
- package/android/src/main/java/com/customcamera/MediaStoreRepository.kt +378 -0
- package/android/src/main/java/com/customcamera/MediaThumbnailView.kt +286 -0
- package/android/src/main/java/com/customcamera/MediaUtils.kt +37 -0
- package/android/src/main/java/com/customcamera/NativeVideoViewManager.kt +845 -0
- package/android/src/main/java/com/customcamera/OfficeDocumentConverter.kt +2791 -0
- package/android/src/main/java/com/customcamera/PendingCaptureCrops.kt +88 -0
- package/android/src/main/java/com/customcamera/PowerPointPreview.kt +4077 -0
- package/android/src/main/java/com/customcamera/RecentPickerStore.kt +74 -0
- package/android/src/main/java/com/customcamera/SecureFileEraser.kt +411 -0
- package/android/src/main/java/com/customcamera/SecureKeyModule.kt +88 -0
- package/android/src/main/java/com/customcamera/SecureMediaDeleter.kt +493 -0
- package/android/src/main/java/com/customcamera/StickerPickerData.kt +107 -0
- package/android/src/main/java/com/customcamera/SvgDrawable.kt +175 -0
- package/android/src/main/java/com/customcamera/SvgIconViewManager.kt +77 -0
- package/android/src/main/java/com/customcamera/TextEntryController.kt +553 -0
- package/android/src/main/java/com/customcamera/ThumbnailLoader.kt +455 -0
- package/android/src/main/java/com/customcamera/UploadService.kt +909 -0
- package/android/src/main/java/com/customcamera/VideoEditUtils.kt +210 -0
- package/android/src/main/java/com/customcamera/VideoRotationTranscoder.kt +1992 -0
- package/android/src/main/java/com/customcamera/gif/AnimatedGifEncoder.kt +473 -0
- package/android/src/main/java/com/customcamera/gif/GifDecoder.kt +690 -0
- package/android/src/main/java/com/customcamera/gif/GifFramesDrawable.kt +160 -0
- package/android/src/main/java/com/customcamera/gif/GifHttp.kt +112 -0
- package/android/src/main/java/com/customcamera/gif/GifImageLoader.kt +186 -0
- package/android/src/main/java/com/customcamera/gif/GifModels.kt +74 -0
- package/android/src/main/java/com/customcamera/gif/GifProvider.kt +49 -0
- package/android/src/main/java/com/customcamera/gif/GifProviders.kt +27 -0
- package/android/src/main/java/com/customcamera/gif/GifRepository.kt +124 -0
- package/android/src/main/java/com/customcamera/gif/GifSafety.kt +33 -0
- package/android/src/main/java/com/customcamera/gif/GiphyGifProvider.kt +146 -0
- package/android/src/main/java/com/customcamera/gif/LZWEncoder.kt +258 -0
- package/android/src/main/java/com/customcamera/gif/NeuQuant.kt +435 -0
- package/android/src/main/java/com/customcamera/gif/TenorGifProvider.kt +147 -0
- package/android/src/main/res/drawable/bg_brush_selected.xml +5 -0
- package/android/src/main/res/drawable/bg_color_swatch.xml +5 -0
- package/android/src/main/res/drawable/bg_editor_toolbar.xml +6 -0
- package/android/src/main/res/drawable/bg_icon_circle.xml +5 -0
- package/android/src/main/res/drawable/bg_icon_circle_light.xml +5 -0
- package/android/src/main/res/drawable/bg_mode_tab_active.xml +6 -0
- package/android/src/main/res/drawable/bg_pill.xml +6 -0
- package/android/src/main/res/drawable/bg_recording_dot.xml +6 -0
- package/android/src/main/res/drawable/bg_selection_badge.xml +8 -0
- package/android/src/main/res/drawable/bg_send_button.xml +5 -0
- package/android/src/main/res/drawable/bg_shutter_inner.xml +5 -0
- package/android/src/main/res/drawable/bg_shutter_recording.xml +6 -0
- package/android/src/main/res/drawable/bg_shutter_ring.xml +8 -0
- package/android/src/main/res/drawable/bg_shutter_video_idle.xml +5 -0
- package/android/src/main/res/drawable/bg_thumbnail.xml +9 -0
- package/android/src/main/res/drawable/ic_aspect_ratio.xml +17 -0
- package/android/src/main/res/drawable/ic_audio.xml +10 -0
- package/android/src/main/res/drawable/ic_back.xml +10 -0
- package/android/src/main/res/drawable/ic_brush_medium.xml +12 -0
- package/android/src/main/res/drawable/ic_brush_thick.xml +12 -0
- package/android/src/main/res/drawable/ic_brush_thin.xml +12 -0
- package/android/src/main/res/drawable/ic_check.xml +17 -0
- package/android/src/main/res/drawable/ic_chevron_down.xml +10 -0
- package/android/src/main/res/drawable/ic_chevron_up.xml +13 -0
- package/android/src/main/res/drawable/ic_clear_drawing.xml +10 -0
- package/android/src/main/res/drawable/ic_close.xml +10 -0
- package/android/src/main/res/drawable/ic_cover.xml +9 -0
- package/android/src/main/res/drawable/ic_crop.xml +10 -0
- package/android/src/main/res/drawable/ic_delete.xml +9 -0
- package/android/src/main/res/drawable/ic_document.xml +10 -0
- package/android/src/main/res/drawable/ic_done.xml +10 -0
- package/android/src/main/res/drawable/ic_download.xml +10 -0
- package/android/src/main/res/drawable/ic_emoji.xml +10 -0
- package/android/src/main/res/drawable/ic_filter.xml +10 -0
- package/android/src/main/res/drawable/ic_flash_auto.xml +7 -0
- package/android/src/main/res/drawable/ic_flash_off.xml +23 -0
- package/android/src/main/res/drawable/ic_flash_on.xml +16 -0
- package/android/src/main/res/drawable/ic_flip.xml +15 -0
- package/android/src/main/res/drawable/ic_gallery.xml +10 -0
- package/android/src/main/res/drawable/ic_gif.xml +24 -0
- package/android/src/main/res/drawable/ic_lock.xml +19 -0
- package/android/src/main/res/drawable/ic_lock_open.xml +22 -0
- package/android/src/main/res/drawable/ic_marker.xml +10 -0
- package/android/src/main/res/drawable/ic_more_vert.xml +18 -0
- package/android/src/main/res/drawable/ic_overlay_close.xml +19 -0
- package/android/src/main/res/drawable/ic_overlay_resize.xml +18 -0
- package/android/src/main/res/drawable/ic_pause.xml +10 -0
- package/android/src/main/res/drawable/ic_photo_mode.xml +10 -0
- package/android/src/main/res/drawable/ic_play.xml +10 -0
- package/android/src/main/res/drawable/ic_redo.xml +10 -0
- package/android/src/main/res/drawable/ic_rotate.xml +9 -0
- package/android/src/main/res/drawable/ic_send.xml +10 -0
- package/android/src/main/res/drawable/ic_share.xml +10 -0
- package/android/src/main/res/drawable/ic_stat_upload.xml +10 -0
- package/android/src/main/res/drawable/ic_sticker.xml +24 -0
- package/android/src/main/res/drawable/ic_text.xml +10 -0
- package/android/src/main/res/drawable/ic_text_align_center.xml +11 -0
- package/android/src/main/res/drawable/ic_text_align_left.xml +11 -0
- package/android/src/main/res/drawable/ic_text_align_right.xml +11 -0
- package/android/src/main/res/drawable/ic_text_bg.xml +11 -0
- package/android/src/main/res/drawable/ic_trim.xml +23 -0
- package/android/src/main/res/drawable/ic_undo.xml +10 -0
- package/android/src/main/res/drawable/ic_video_mode.xml +10 -0
- package/android/src/main/res/drawable/ic_video_note.xml +13 -0
- package/android/src/main/res/drawable/ic_volume_off.xml +9 -0
- package/android/src/main/res/drawable/ic_volume_on.xml +9 -0
- package/android/src/main/res/drawable/sticker_heart.xml +9 -0
- package/android/src/main/res/drawable/sticker_smile.xml +9 -0
- package/android/src/main/res/drawable/sticker_star.xml +9 -0
- package/android/src/main/res/drawable/sticker_thumbsup.xml +9 -0
- package/android/src/main/res/values/colors.xml +34 -0
- package/android/src/main/res/values/ids.xml +15 -0
- package/android/src/main/res/values/strings.xml +15 -0
- package/android/src/main/res/values/styles.xml +20 -0
- package/android/src/main/res/xml/file_paths.xml +34 -0
- package/ios/CustomCamera.h +5 -0
- package/ios/CustomCamera.mm +214 -0
- package/lib/module/AudioPlayerContext.js +233 -0
- package/lib/module/AudioPlayerContext.js.map +1 -0
- package/lib/module/CameraPreview.js +304 -0
- package/lib/module/CameraPreview.js.map +1 -0
- package/lib/module/NativeAnimatedImageView.js +41 -0
- package/lib/module/NativeAnimatedImageView.js.map +1 -0
- package/lib/module/NativeAudioPlayerView.js +33 -0
- package/lib/module/NativeAudioPlayerView.js.map +1 -0
- package/lib/module/NativeBlurView.js +35 -0
- package/lib/module/NativeBlurView.js.map +1 -0
- package/lib/module/NativeCustomCamera.js +128 -0
- package/lib/module/NativeCustomCamera.js.map +1 -0
- package/lib/module/NativeCustomCamera.web.js +143 -0
- package/lib/module/NativeCustomCamera.web.js.map +1 -0
- package/lib/module/NativeCustomVideoView.js +5 -0
- package/lib/module/NativeCustomVideoView.js.map +1 -0
- package/lib/module/NativeDocumentPreviewView.js +156 -0
- package/lib/module/NativeDocumentPreviewView.js.map +1 -0
- package/lib/module/NativeMediaThumbnailView.js +110 -0
- package/lib/module/NativeMediaThumbnailView.js.map +1 -0
- package/lib/module/NativeSvgIcon.js +32 -0
- package/lib/module/NativeSvgIcon.js.map +1 -0
- package/lib/module/ResponsivePreviewContainer.js +171 -0
- package/lib/module/ResponsivePreviewContainer.js.map +1 -0
- package/lib/module/accessibility.js +61 -0
- package/lib/module/accessibility.js.map +1 -0
- package/lib/module/config.js +352 -0
- package/lib/module/config.js.map +1 -0
- package/lib/module/cpuOptimization.js +296 -0
- package/lib/module/cpuOptimization.js.map +1 -0
- package/lib/module/db/DatabaseManager.js +191 -0
- package/lib/module/db/DatabaseManager.js.map +1 -0
- package/lib/module/db/MediaMapper.js +284 -0
- package/lib/module/db/MediaMapper.js.map +1 -0
- package/lib/module/db/MediaRepository.js +242 -0
- package/lib/module/db/MediaRepository.js.map +1 -0
- package/lib/module/db/index.js +41 -0
- package/lib/module/db/index.js.map +1 -0
- package/lib/module/db/migrations.js +180 -0
- package/lib/module/db/migrations.js.map +1 -0
- package/lib/module/db/react-native-sqlcipher.d.js +2 -0
- package/lib/module/db/react-native-sqlcipher.d.js.map +1 -0
- package/lib/module/db/secureKey.js +87 -0
- package/lib/module/db/secureKey.js.map +1 -0
- package/lib/module/db/types.js +57 -0
- package/lib/module/db/types.js.map +1 -0
- package/lib/module/db/useMediaDatabase.js +123 -0
- package/lib/module/db/useMediaDatabase.js.map +1 -0
- package/lib/module/defaultIcons.js +2259 -0
- package/lib/module/defaultIcons.js.map +1 -0
- package/lib/module/deviceCapabilities.js +408 -0
- package/lib/module/deviceCapabilities.js.map +1 -0
- package/lib/module/errors.js +267 -0
- package/lib/module/errors.js.map +1 -0
- package/lib/module/iconConfig.js +796 -0
- package/lib/module/iconConfig.js.map +1 -0
- package/lib/module/icons.js +514 -0
- package/lib/module/icons.js.map +1 -0
- package/lib/module/index.js +251 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/jest-globals.d.js +2 -0
- package/lib/module/jest-globals.d.js.map +1 -0
- package/lib/module/library/MediaLibrary.js +107 -0
- package/lib/module/library/MediaLibrary.js.map +1 -0
- package/lib/module/library/MediaLibraryScreen.js +2597 -0
- package/lib/module/library/MediaLibraryScreen.js.map +1 -0
- package/lib/module/library/components/AudioPreview.js +74 -0
- package/lib/module/library/components/AudioPreview.js.map +1 -0
- package/lib/module/library/components/DocumentPreview.js +331 -0
- package/lib/module/library/components/DocumentPreview.js.map +1 -0
- package/lib/module/library/components/ExpandableFab.js +343 -0
- package/lib/module/library/components/ExpandableFab.js.map +1 -0
- package/lib/module/library/components/FileTiles.js +251 -0
- package/lib/module/library/components/FileTiles.js.map +1 -0
- package/lib/module/library/components/ImagePreview.js +70 -0
- package/lib/module/library/components/ImagePreview.js.map +1 -0
- package/lib/module/library/components/MediaMetadataHeader.js +175 -0
- package/lib/module/library/components/MediaMetadataHeader.js.map +1 -0
- package/lib/module/library/components/RecordAudioScreen.js +816 -0
- package/lib/module/library/components/RecordAudioScreen.js.map +1 -0
- package/lib/module/library/components/VideoPreview.js +453 -0
- package/lib/module/library/components/VideoPreview.js.map +1 -0
- package/lib/module/library/components/ViewerCounter.js +55 -0
- package/lib/module/library/components/ViewerCounter.js.map +1 -0
- package/lib/module/library/compressionEstimate.js +507 -0
- package/lib/module/library/compressionEstimate.js.map +1 -0
- package/lib/module/library/fileMetadata.js +196 -0
- package/lib/module/library/fileMetadata.js.map +1 -0
- package/lib/module/library/index.js +42 -0
- package/lib/module/library/index.js.map +1 -0
- package/lib/module/library/libraryIconRegistry.js +69 -0
- package/lib/module/library/libraryIconRegistry.js.map +1 -0
- package/lib/module/library/libraryIcons.js +858 -0
- package/lib/module/library/libraryIcons.js.map +1 -0
- package/lib/module/library/localizedFormat.js +181 -0
- package/lib/module/library/localizedFormat.js.map +1 -0
- package/lib/module/library/palette.js +225 -0
- package/lib/module/library/palette.js.map +1 -0
- package/lib/module/library/responsive.js +53 -0
- package/lib/module/library/responsive.js.map +1 -0
- package/lib/module/locales.js +416 -0
- package/lib/module/locales.js.map +1 -0
- package/lib/module/localization.js +1064 -0
- package/lib/module/localization.js.map +1 -0
- package/lib/module/logger.js +20 -0
- package/lib/module/logger.js.map +1 -0
- package/lib/module/lowMemoryCache.js +206 -0
- package/lib/module/lowMemoryCache.js.map +1 -0
- package/lib/module/mediaHistory.js +33 -0
- package/lib/module/mediaHistory.js.map +1 -0
- package/lib/module/mediaStorageService.js +402 -0
- package/lib/module/mediaStorageService.js.map +1 -0
- package/lib/module/memory.js +79 -0
- package/lib/module/memory.js.map +1 -0
- package/lib/module/nativeActions.js +307 -0
- package/lib/module/nativeActions.js.map +1 -0
- package/lib/module/nativeComponentSupport.js +61 -0
- package/lib/module/nativeComponentSupport.js.map +1 -0
- package/lib/module/networkPerformance.js +24 -0
- package/lib/module/networkPerformance.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/performance.js +104 -0
- package/lib/module/performance.js.map +1 -0
- package/lib/module/performanceMonitor.js +155 -0
- package/lib/module/performanceMonitor.js.map +1 -0
- package/lib/module/permissions.js +370 -0
- package/lib/module/permissions.js.map +1 -0
- package/lib/module/rendering.js +40 -0
- package/lib/module/rendering.js.map +1 -0
- package/lib/module/security.js +18 -0
- package/lib/module/security.js.map +1 -0
- package/lib/module/state.js +266 -0
- package/lib/module/state.js.map +1 -0
- package/lib/module/storage.js +400 -0
- package/lib/module/storage.js.map +1 -0
- package/lib/module/theme.js +390 -0
- package/lib/module/theme.js.map +1 -0
- package/lib/module/types.js +4 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils.js +115 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/module/validation.js +288 -0
- package/lib/module/validation.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/AudioPlayerContext.d.ts +27 -0
- package/lib/typescript/src/AudioPlayerContext.d.ts.map +1 -0
- package/lib/typescript/src/CameraPreview.d.ts +13 -0
- package/lib/typescript/src/CameraPreview.d.ts.map +1 -0
- package/lib/typescript/src/NativeAnimatedImageView.d.ts +33 -0
- package/lib/typescript/src/NativeAnimatedImageView.d.ts.map +1 -0
- package/lib/typescript/src/NativeAudioPlayerView.d.ts +12 -0
- package/lib/typescript/src/NativeAudioPlayerView.d.ts.map +1 -0
- package/lib/typescript/src/NativeBlurView.d.ts +12 -0
- package/lib/typescript/src/NativeBlurView.d.ts.map +1 -0
- package/lib/typescript/src/NativeCustomCamera.d.ts +167 -0
- package/lib/typescript/src/NativeCustomCamera.d.ts.map +1 -0
- package/lib/typescript/src/NativeCustomCamera.web.d.ts +47 -0
- package/lib/typescript/src/NativeCustomCamera.web.d.ts.map +1 -0
- package/lib/typescript/src/NativeCustomVideoView.d.ts +30 -0
- package/lib/typescript/src/NativeCustomVideoView.d.ts.map +1 -0
- package/lib/typescript/src/NativeDocumentPreviewView.d.ts +48 -0
- package/lib/typescript/src/NativeDocumentPreviewView.d.ts.map +1 -0
- package/lib/typescript/src/NativeMediaThumbnailView.d.ts +54 -0
- package/lib/typescript/src/NativeMediaThumbnailView.d.ts.map +1 -0
- package/lib/typescript/src/NativeSvgIcon.d.ts +25 -0
- package/lib/typescript/src/NativeSvgIcon.d.ts.map +1 -0
- package/lib/typescript/src/ResponsivePreviewContainer.d.ts +92 -0
- package/lib/typescript/src/ResponsivePreviewContainer.d.ts.map +1 -0
- package/lib/typescript/src/accessibility.d.ts +20 -0
- package/lib/typescript/src/accessibility.d.ts.map +1 -0
- package/lib/typescript/src/config.d.ts +145 -0
- package/lib/typescript/src/config.d.ts.map +1 -0
- package/lib/typescript/src/cpuOptimization.d.ts +63 -0
- package/lib/typescript/src/cpuOptimization.d.ts.map +1 -0
- package/lib/typescript/src/db/DatabaseManager.d.ts +48 -0
- package/lib/typescript/src/db/DatabaseManager.d.ts.map +1 -0
- package/lib/typescript/src/db/MediaMapper.d.ts +77 -0
- package/lib/typescript/src/db/MediaMapper.d.ts.map +1 -0
- package/lib/typescript/src/db/MediaRepository.d.ts +66 -0
- package/lib/typescript/src/db/MediaRepository.d.ts.map +1 -0
- package/lib/typescript/src/db/index.d.ts +23 -0
- package/lib/typescript/src/db/index.d.ts.map +1 -0
- package/lib/typescript/src/db/migrations.d.ts +31 -0
- package/lib/typescript/src/db/migrations.d.ts.map +1 -0
- package/lib/typescript/src/db/secureKey.d.ts +10 -0
- package/lib/typescript/src/db/secureKey.d.ts.map +1 -0
- package/lib/typescript/src/db/types.d.ts +115 -0
- package/lib/typescript/src/db/types.d.ts.map +1 -0
- package/lib/typescript/src/db/useMediaDatabase.d.ts +41 -0
- package/lib/typescript/src/db/useMediaDatabase.d.ts.map +1 -0
- package/lib/typescript/src/defaultIcons.d.ts +139 -0
- package/lib/typescript/src/defaultIcons.d.ts.map +1 -0
- package/lib/typescript/src/deviceCapabilities.d.ts +92 -0
- package/lib/typescript/src/deviceCapabilities.d.ts.map +1 -0
- package/lib/typescript/src/errors.d.ts +95 -0
- package/lib/typescript/src/errors.d.ts.map +1 -0
- package/lib/typescript/src/iconConfig.d.ts +176 -0
- package/lib/typescript/src/iconConfig.d.ts.map +1 -0
- package/lib/typescript/src/icons.d.ts +217 -0
- package/lib/typescript/src/icons.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +104 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/library/MediaLibrary.d.ts +57 -0
- package/lib/typescript/src/library/MediaLibrary.d.ts.map +1 -0
- package/lib/typescript/src/library/MediaLibraryScreen.d.ts +51 -0
- package/lib/typescript/src/library/MediaLibraryScreen.d.ts.map +1 -0
- package/lib/typescript/src/library/components/AudioPreview.d.ts +6 -0
- package/lib/typescript/src/library/components/AudioPreview.d.ts.map +1 -0
- package/lib/typescript/src/library/components/DocumentPreview.d.ts +10 -0
- package/lib/typescript/src/library/components/DocumentPreview.d.ts.map +1 -0
- package/lib/typescript/src/library/components/ExpandableFab.d.ts +39 -0
- package/lib/typescript/src/library/components/ExpandableFab.d.ts.map +1 -0
- package/lib/typescript/src/library/components/FileTiles.d.ts +8 -0
- package/lib/typescript/src/library/components/FileTiles.d.ts.map +1 -0
- package/lib/typescript/src/library/components/ImagePreview.d.ts +5 -0
- package/lib/typescript/src/library/components/ImagePreview.d.ts.map +1 -0
- package/lib/typescript/src/library/components/MediaMetadataHeader.d.ts +16 -0
- package/lib/typescript/src/library/components/MediaMetadataHeader.d.ts.map +1 -0
- package/lib/typescript/src/library/components/RecordAudioScreen.d.ts +8 -0
- package/lib/typescript/src/library/components/RecordAudioScreen.d.ts.map +1 -0
- package/lib/typescript/src/library/components/VideoPreview.d.ts +20 -0
- package/lib/typescript/src/library/components/VideoPreview.d.ts.map +1 -0
- package/lib/typescript/src/library/components/ViewerCounter.d.ts +13 -0
- package/lib/typescript/src/library/components/ViewerCounter.d.ts.map +1 -0
- package/lib/typescript/src/library/compressionEstimate.d.ts +313 -0
- package/lib/typescript/src/library/compressionEstimate.d.ts.map +1 -0
- package/lib/typescript/src/library/fileMetadata.d.ts +33 -0
- package/lib/typescript/src/library/fileMetadata.d.ts.map +1 -0
- package/lib/typescript/src/library/index.d.ts +40 -0
- package/lib/typescript/src/library/index.d.ts.map +1 -0
- package/lib/typescript/src/library/libraryIconRegistry.d.ts +35 -0
- package/lib/typescript/src/library/libraryIconRegistry.d.ts.map +1 -0
- package/lib/typescript/src/library/libraryIcons.d.ts +85 -0
- package/lib/typescript/src/library/libraryIcons.d.ts.map +1 -0
- package/lib/typescript/src/library/localizedFormat.d.ts +49 -0
- package/lib/typescript/src/library/localizedFormat.d.ts.map +1 -0
- package/lib/typescript/src/library/palette.d.ts +104 -0
- package/lib/typescript/src/library/palette.d.ts.map +1 -0
- package/lib/typescript/src/library/responsive.d.ts +15 -0
- package/lib/typescript/src/library/responsive.d.ts.map +1 -0
- package/lib/typescript/src/locales.d.ts +103 -0
- package/lib/typescript/src/locales.d.ts.map +1 -0
- package/lib/typescript/src/localization.d.ts +1051 -0
- package/lib/typescript/src/localization.d.ts.map +1 -0
- package/lib/typescript/src/logger.d.ts +4 -0
- package/lib/typescript/src/logger.d.ts.map +1 -0
- package/lib/typescript/src/lowMemoryCache.d.ts +64 -0
- package/lib/typescript/src/lowMemoryCache.d.ts.map +1 -0
- package/lib/typescript/src/mediaHistory.d.ts +3 -0
- package/lib/typescript/src/mediaHistory.d.ts.map +1 -0
- package/lib/typescript/src/mediaStorageService.d.ts +155 -0
- package/lib/typescript/src/mediaStorageService.d.ts.map +1 -0
- package/lib/typescript/src/memory.d.ts +21 -0
- package/lib/typescript/src/memory.d.ts.map +1 -0
- package/lib/typescript/src/nativeActions.d.ts +174 -0
- package/lib/typescript/src/nativeActions.d.ts.map +1 -0
- package/lib/typescript/src/nativeComponentSupport.d.ts +30 -0
- package/lib/typescript/src/nativeComponentSupport.d.ts.map +1 -0
- package/lib/typescript/src/networkPerformance.d.ts +12 -0
- package/lib/typescript/src/networkPerformance.d.ts.map +1 -0
- package/lib/typescript/src/performance.d.ts +32 -0
- package/lib/typescript/src/performance.d.ts.map +1 -0
- package/lib/typescript/src/performanceMonitor.d.ts +45 -0
- package/lib/typescript/src/performanceMonitor.d.ts.map +1 -0
- package/lib/typescript/src/permissions.d.ts +132 -0
- package/lib/typescript/src/permissions.d.ts.map +1 -0
- package/lib/typescript/src/rendering.d.ts +9 -0
- package/lib/typescript/src/rendering.d.ts.map +1 -0
- package/lib/typescript/src/security.d.ts +6 -0
- package/lib/typescript/src/security.d.ts.map +1 -0
- package/lib/typescript/src/state.d.ts +102 -0
- package/lib/typescript/src/state.d.ts.map +1 -0
- package/lib/typescript/src/storage.d.ts +117 -0
- package/lib/typescript/src/storage.d.ts.map +1 -0
- package/lib/typescript/src/theme.d.ts +15 -0
- package/lib/typescript/src/theme.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +802 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils.d.ts +50 -0
- package/lib/typescript/src/utils.d.ts.map +1 -0
- package/lib/typescript/src/validation.d.ts +52 -0
- package/lib/typescript/src/validation.d.ts.map +1 -0
- package/package.json +204 -0
- package/react-native.config.js +17 -0
- package/src/AudioPlayerContext.tsx +220 -0
- package/src/CameraPreview.tsx +352 -0
- package/src/NativeAnimatedImageView.tsx +71 -0
- package/src/NativeAudioPlayerView.tsx +39 -0
- package/src/NativeBlurView.tsx +40 -0
- package/src/NativeCustomCamera.ts +305 -0
- package/src/NativeCustomCamera.web.ts +192 -0
- package/src/NativeCustomVideoView.ts +30 -0
- package/src/NativeDocumentPreviewView.tsx +196 -0
- package/src/NativeMediaThumbnailView.tsx +167 -0
- package/src/NativeSvgIcon.tsx +46 -0
- package/src/ResponsivePreviewContainer.tsx +227 -0
- package/src/accessibility.ts +80 -0
- package/src/config.ts +406 -0
- package/src/cpuOptimization.ts +365 -0
- package/src/db/DatabaseManager.ts +212 -0
- package/src/db/MediaMapper.ts +377 -0
- package/src/db/MediaRepository.ts +313 -0
- package/src/db/index.ts +73 -0
- package/src/db/migrations.ts +222 -0
- package/src/db/react-native-sqlcipher.d.ts +76 -0
- package/src/db/secureKey.ts +100 -0
- package/src/db/types.ts +123 -0
- package/src/db/useMediaDatabase.ts +191 -0
- package/src/defaultIcons.tsx +2390 -0
- package/src/deviceCapabilities.ts +438 -0
- package/src/errors.ts +350 -0
- package/src/iconConfig.tsx +962 -0
- package/src/icons.tsx +788 -0
- package/src/index.tsx +763 -0
- package/src/jest-globals.d.ts +9 -0
- package/src/library/MediaLibrary.tsx +141 -0
- package/src/library/MediaLibraryScreen.tsx +3003 -0
- package/src/library/components/AudioPreview.tsx +73 -0
- package/src/library/components/DocumentPreview.tsx +361 -0
- package/src/library/components/ExpandableFab.tsx +342 -0
- package/src/library/components/FileTiles.tsx +252 -0
- package/src/library/components/ImagePreview.tsx +72 -0
- package/src/library/components/MediaMetadataHeader.tsx +208 -0
- package/src/library/components/RecordAudioScreen.tsx +845 -0
- package/src/library/components/VideoPreview.tsx +478 -0
- package/src/library/components/ViewerCounter.tsx +71 -0
- package/src/library/compressionEstimate.ts +662 -0
- package/src/library/fileMetadata.ts +212 -0
- package/src/library/index.ts +66 -0
- package/src/library/libraryIconRegistry.tsx +86 -0
- package/src/library/libraryIcons.tsx +928 -0
- package/src/library/localizedFormat.ts +207 -0
- package/src/library/palette.ts +281 -0
- package/src/library/responsive.ts +49 -0
- package/src/locales.ts +381 -0
- package/src/localization.ts +1947 -0
- package/src/logger.ts +20 -0
- package/src/lowMemoryCache.ts +218 -0
- package/src/mediaHistory.ts +42 -0
- package/src/mediaStorageService.ts +546 -0
- package/src/memory.ts +102 -0
- package/src/nativeActions.ts +422 -0
- package/src/nativeComponentSupport.ts +60 -0
- package/src/networkPerformance.ts +30 -0
- package/src/performance.ts +137 -0
- package/src/performanceMonitor.ts +219 -0
- package/src/permissions.ts +403 -0
- package/src/rendering.ts +47 -0
- package/src/security.ts +19 -0
- package/src/state.ts +333 -0
- package/src/storage.ts +453 -0
- package/src/theme.tsx +467 -0
- package/src/types.ts +946 -0
- package/src/utils.ts +177 -0
- package/src/validation.ts +372 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Comprehensive validation utilities for camera operations
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { CameraError, ERROR_CODES, validateUri } from "./errors.js";
|
|
8
|
+
import { LocalizationManager } from "./localization.js";
|
|
9
|
+
// Constants
|
|
10
|
+
const MAX_IMAGE_SIZE = 50 * 1024 * 1024; // 50MB
|
|
11
|
+
const MAX_VIDEO_SIZE = 500 * 1024 * 1024; // 500MB
|
|
12
|
+
const MAX_ALBUM_NAME_LENGTH = 100;
|
|
13
|
+
const MAX_CAPTION_LENGTH = 2000;
|
|
14
|
+
const MAX_BATCH_SIZE = 50;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Validate camera picker options
|
|
18
|
+
*/
|
|
19
|
+
export function validateCameraPickerOptions(options) {
|
|
20
|
+
if (options.selectionLimit !== undefined) {
|
|
21
|
+
if (!Number.isInteger(options.selectionLimit) || options.selectionLimit < 0) {
|
|
22
|
+
throw new CameraError(LocalizationManager.getString('validationSelectionLimitNonNegativeInteger'), ERROR_CODES.INVALID_PARAMETER, {
|
|
23
|
+
parameter: 'selectionLimit',
|
|
24
|
+
value: options.selectionLimit
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (options.initialCamera && !['back', 'front'].includes(options.initialCamera)) {
|
|
29
|
+
throw new CameraError(LocalizationManager.getString('validationInitialCameraInvalid'), ERROR_CODES.INVALID_PARAMETER, {
|
|
30
|
+
parameter: 'initialCamera',
|
|
31
|
+
value: options.initialCamera
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
if (options.mediaTypes && !['all', 'photo', 'video'].includes(options.mediaTypes)) {
|
|
35
|
+
throw new CameraError(LocalizationManager.getString('validationMediaTypesInvalid'), ERROR_CODES.INVALID_PARAMETER, {
|
|
36
|
+
parameter: 'mediaTypes',
|
|
37
|
+
value: options.mediaTypes
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Hold-to-record durations. The native side clamps these anyway, but a nonsense value is far
|
|
42
|
+
// easier to spot here than as a gesture that silently behaves nothing like the caller asked.
|
|
43
|
+
if (options.holdToRecordDelayMs !== undefined) {
|
|
44
|
+
if (!Number.isFinite(options.holdToRecordDelayMs) || options.holdToRecordDelayMs < 0) {
|
|
45
|
+
throw new CameraError(LocalizationManager.getString('validationHoldToRecordDelayInvalid'), ERROR_CODES.INVALID_PARAMETER, {
|
|
46
|
+
parameter: 'holdToRecordDelayMs',
|
|
47
|
+
value: options.holdToRecordDelayMs
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (options.minRecordDurationMs !== undefined) {
|
|
52
|
+
if (!Number.isFinite(options.minRecordDurationMs) || options.minRecordDurationMs < 0) {
|
|
53
|
+
throw new CameraError(LocalizationManager.getString('validationMinRecordDurationInvalid'), ERROR_CODES.INVALID_PARAMETER, {
|
|
54
|
+
parameter: 'minRecordDurationMs',
|
|
55
|
+
value: options.minRecordDurationMs
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Validate URIs array
|
|
63
|
+
*/
|
|
64
|
+
export function validateUrisArray(uris) {
|
|
65
|
+
if (!Array.isArray(uris)) {
|
|
66
|
+
throw new CameraError(LocalizationManager.getString('validationUrisMustBeArray'), ERROR_CODES.INVALID_PARAMETER, {
|
|
67
|
+
parameter: 'uris',
|
|
68
|
+
value: uris
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
if (uris.length === 0) {
|
|
72
|
+
throw new CameraError(LocalizationManager.getString('validationUrisCannotBeEmpty'), ERROR_CODES.INVALID_PARAMETER, {
|
|
73
|
+
parameter: 'uris',
|
|
74
|
+
value: uris
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
if (uris.length > MAX_BATCH_SIZE) {
|
|
78
|
+
throw new CameraError(LocalizationManager.getString('validationTooManyFiles', MAX_BATCH_SIZE), ERROR_CODES.INVALID_PARAMETER, {
|
|
79
|
+
parameter: 'uris',
|
|
80
|
+
value: uris,
|
|
81
|
+
maxAllowed: MAX_BATCH_SIZE
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
uris.forEach((uri, index) => {
|
|
85
|
+
if (!validateUri(uri)) {
|
|
86
|
+
throw new CameraError(LocalizationManager.getString('validationInvalidUriAtIndex', index, uri), ERROR_CODES.INVALID_URI, {
|
|
87
|
+
uri,
|
|
88
|
+
index
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Validate album name
|
|
96
|
+
*/
|
|
97
|
+
export function validateAlbumName(albumName) {
|
|
98
|
+
if (!albumName || typeof albumName !== 'string') {
|
|
99
|
+
throw new CameraError(LocalizationManager.getString('validationAlbumNameRequired'), ERROR_CODES.INVALID_PARAMETER, {
|
|
100
|
+
parameter: 'albumName',
|
|
101
|
+
value: albumName
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
if (albumName.length > MAX_ALBUM_NAME_LENGTH) {
|
|
105
|
+
throw new CameraError(LocalizationManager.getString('validationAlbumNameTooLong', MAX_ALBUM_NAME_LENGTH), ERROR_CODES.INVALID_PARAMETER, {
|
|
106
|
+
parameter: 'albumName',
|
|
107
|
+
value: albumName,
|
|
108
|
+
maxLength: MAX_ALBUM_NAME_LENGTH
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Check for invalid characters
|
|
113
|
+
const invalidChars = /[/:*?"<>|]/;
|
|
114
|
+
if (invalidChars.test(albumName)) {
|
|
115
|
+
throw new CameraError(LocalizationManager.getString('validationAlbumNameInvalidCharacters'), ERROR_CODES.INVALID_PARAMETER, {
|
|
116
|
+
parameter: 'albumName',
|
|
117
|
+
value: albumName
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Validate caption
|
|
124
|
+
*/
|
|
125
|
+
export function validateCaption(caption) {
|
|
126
|
+
if (caption === undefined || caption === null) return;
|
|
127
|
+
if (typeof caption !== 'string') {
|
|
128
|
+
throw new CameraError(LocalizationManager.getString('validationCaptionMustBeString'), ERROR_CODES.INVALID_PARAMETER, {
|
|
129
|
+
parameter: 'caption',
|
|
130
|
+
value: caption
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
if (caption.length > MAX_CAPTION_LENGTH) {
|
|
134
|
+
throw new CameraError(LocalizationManager.getString('validationCaptionTooLong', MAX_CAPTION_LENGTH), ERROR_CODES.INVALID_PARAMETER, {
|
|
135
|
+
parameter: 'caption',
|
|
136
|
+
value: caption,
|
|
137
|
+
maxLength: MAX_CAPTION_LENGTH
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Validate timer delay
|
|
144
|
+
*/
|
|
145
|
+
export function validateTimerDelay(delaySeconds) {
|
|
146
|
+
if (isNaN(delaySeconds) || !isFinite(delaySeconds)) {
|
|
147
|
+
throw new CameraError(LocalizationManager.getString('validationDelayMustBeNumber'), ERROR_CODES.INVALID_PARAMETER, {
|
|
148
|
+
parameter: 'delaySeconds',
|
|
149
|
+
value: delaySeconds
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
if (delaySeconds < 0) {
|
|
153
|
+
throw new CameraError(LocalizationManager.getString('validationDelayCannotBeNegative'), ERROR_CODES.INVALID_PARAMETER, {
|
|
154
|
+
parameter: 'delaySeconds',
|
|
155
|
+
value: delaySeconds
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
if (delaySeconds > 30) {
|
|
159
|
+
throw new CameraError(LocalizationManager.getString('validationDelayTooLong', 30), ERROR_CODES.INVALID_PARAMETER, {
|
|
160
|
+
parameter: 'delaySeconds',
|
|
161
|
+
value: delaySeconds,
|
|
162
|
+
maxAllowed: 30
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Validate video trim parameters
|
|
169
|
+
*/
|
|
170
|
+
export function validateVideoTrimParameters(startTime, endTime) {
|
|
171
|
+
if (isNaN(startTime) || !isFinite(startTime) || startTime < 0) {
|
|
172
|
+
throw new CameraError(LocalizationManager.getString('validationStartTimeInvalid'), ERROR_CODES.INVALID_PARAMETER, {
|
|
173
|
+
parameter: 'startTime',
|
|
174
|
+
value: startTime
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
if (isNaN(endTime) || !isFinite(endTime) || endTime < 0) {
|
|
178
|
+
throw new CameraError(LocalizationManager.getString('validationEndTimeInvalid'), ERROR_CODES.INVALID_PARAMETER, {
|
|
179
|
+
parameter: 'endTime',
|
|
180
|
+
value: endTime
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
if (startTime >= endTime) {
|
|
184
|
+
throw new CameraError(LocalizationManager.getString('validationStartBeforeEnd'), ERROR_CODES.INVALID_PARAMETER, {
|
|
185
|
+
startTime,
|
|
186
|
+
endTime
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
if (endTime - startTime > 600) {
|
|
190
|
+
// 10 minutes max
|
|
191
|
+
throw new CameraError(LocalizationManager.getString('validationTrimDurationTooLong', 600), ERROR_CODES.INVALID_PARAMETER, {
|
|
192
|
+
startTime,
|
|
193
|
+
endTime,
|
|
194
|
+
maxDuration: 600
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Validate upload URL
|
|
201
|
+
*/
|
|
202
|
+
export function validateUploadUrl(uploadUrl) {
|
|
203
|
+
if (!uploadUrl || typeof uploadUrl !== 'string') {
|
|
204
|
+
throw new CameraError(LocalizationManager.getString('validationUploadUrlRequired'), ERROR_CODES.INVALID_PARAMETER, {
|
|
205
|
+
parameter: 'uploadUrl',
|
|
206
|
+
value: uploadUrl
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
try {
|
|
210
|
+
// Basic URL validation
|
|
211
|
+
const parsedUrl = new URL(uploadUrl);
|
|
212
|
+
if (!parsedUrl.hostname) {
|
|
213
|
+
throw new Error('invalid URL');
|
|
214
|
+
}
|
|
215
|
+
} catch {
|
|
216
|
+
throw new CameraError(LocalizationManager.getString('validationUploadUrlInvalid'), ERROR_CODES.INVALID_PARAMETER, {
|
|
217
|
+
parameter: 'uploadUrl',
|
|
218
|
+
value: uploadUrl
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Check file size limits
|
|
225
|
+
*/
|
|
226
|
+
export function checkFileSize(uri, size, isVideo) {
|
|
227
|
+
const maxSize = isVideo ? MAX_VIDEO_SIZE : MAX_IMAGE_SIZE;
|
|
228
|
+
if (size > maxSize) {
|
|
229
|
+
const maxSizeMb = maxSize / (1024 * 1024);
|
|
230
|
+
const fileSizeMb = size / (1024 * 1024);
|
|
231
|
+
throw new CameraError(LocalizationManager.getString('validationFileTooLarge', isVideo ? LocalizationManager.getString('video', 'Video') : LocalizationManager.getString('image', 'Image'), fileSizeMb.toFixed(2), maxSizeMb), ERROR_CODES.FILE_TOO_LARGE, {
|
|
232
|
+
uri,
|
|
233
|
+
size,
|
|
234
|
+
maxSize,
|
|
235
|
+
isVideo
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Validate album ID
|
|
242
|
+
*/
|
|
243
|
+
export function validateAlbumId(albumId) {
|
|
244
|
+
if (!albumId || typeof albumId !== 'string') {
|
|
245
|
+
throw new CameraError(LocalizationManager.getString('validationAlbumIdRequired'), ERROR_CODES.INVALID_PARAMETER, {
|
|
246
|
+
parameter: 'albumId',
|
|
247
|
+
value: albumId
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
if (albumId.length > 100) {
|
|
251
|
+
throw new CameraError(LocalizationManager.getString('validationAlbumIdTooLong', 100), ERROR_CODES.INVALID_PARAMETER, {
|
|
252
|
+
parameter: 'albumId',
|
|
253
|
+
value: albumId
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Validate rotation degrees
|
|
260
|
+
*/
|
|
261
|
+
export function validateRotationDegrees(degrees) {
|
|
262
|
+
if (isNaN(degrees) || !isFinite(degrees)) {
|
|
263
|
+
throw new CameraError(LocalizationManager.getString('validationDegreesMustBeNumber'), ERROR_CODES.INVALID_PARAMETER, {
|
|
264
|
+
parameter: 'degrees',
|
|
265
|
+
value: degrees
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
// Normalize degrees to 0-360 range
|
|
270
|
+
const normalized = (degrees % 360 + 360) % 360;
|
|
271
|
+
if (normalized !== 0 && normalized !== 90 && normalized !== 180 && normalized !== 270) {
|
|
272
|
+
throw new CameraError(LocalizationManager.getString('validationDegreesInvalid'), ERROR_CODES.INVALID_PARAMETER, {
|
|
273
|
+
parameter: 'degrees',
|
|
274
|
+
value: degrees,
|
|
275
|
+
validOptions: [0, 90, 180, 270]
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
// Export constants for external use
|
|
281
|
+
export const VALIDATION_CONSTANTS = {
|
|
282
|
+
MAX_IMAGE_SIZE,
|
|
283
|
+
MAX_VIDEO_SIZE,
|
|
284
|
+
MAX_ALBUM_NAME_LENGTH,
|
|
285
|
+
MAX_CAPTION_LENGTH,
|
|
286
|
+
MAX_BATCH_SIZE
|
|
287
|
+
};
|
|
288
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CameraError","ERROR_CODES","validateUri","LocalizationManager","MAX_IMAGE_SIZE","MAX_VIDEO_SIZE","MAX_ALBUM_NAME_LENGTH","MAX_CAPTION_LENGTH","MAX_BATCH_SIZE","validateCameraPickerOptions","options","selectionLimit","undefined","Number","isInteger","getString","INVALID_PARAMETER","parameter","value","initialCamera","includes","mediaTypes","holdToRecordDelayMs","isFinite","minRecordDurationMs","validateUrisArray","uris","Array","isArray","length","maxAllowed","forEach","uri","index","INVALID_URI","validateAlbumName","albumName","maxLength","invalidChars","test","validateCaption","caption","validateTimerDelay","delaySeconds","isNaN","validateVideoTrimParameters","startTime","endTime","maxDuration","validateUploadUrl","uploadUrl","parsedUrl","URL","hostname","Error","checkFileSize","size","isVideo","maxSize","maxSizeMb","fileSizeMb","toFixed","FILE_TOO_LARGE","validateAlbumId","albumId","validateRotationDegrees","degrees","normalized","validOptions","VALIDATION_CONSTANTS"],"sourceRoot":"..\\..\\src","sources":["validation.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type FC, type ReactNode } from 'react';
|
|
2
|
+
interface AudioState {
|
|
3
|
+
isPlaying: boolean;
|
|
4
|
+
uri: string | null;
|
|
5
|
+
title: string;
|
|
6
|
+
position: number;
|
|
7
|
+
duration: number;
|
|
8
|
+
didComplete: boolean;
|
|
9
|
+
}
|
|
10
|
+
interface AudioPlayerContextType {
|
|
11
|
+
state: AudioState;
|
|
12
|
+
play: (uri: string, title: string) => Promise<void>;
|
|
13
|
+
pause: () => Promise<void>;
|
|
14
|
+
resume: () => Promise<void>;
|
|
15
|
+
seek: (ms: number) => Promise<void>;
|
|
16
|
+
stop: () => Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export declare const useGlobalAudioPlayer: () => AudioPlayerContextType;
|
|
19
|
+
export interface GlobalAudioPlayerProviderProps {
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
}
|
|
22
|
+
export declare const GlobalAudioPlayerProvider: FC<GlobalAudioPlayerProviderProps>;
|
|
23
|
+
export declare const GlobalMiniAudioPlayer: FC<{
|
|
24
|
+
onExpandPlayer?: (uri: string) => void;
|
|
25
|
+
}>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=AudioPlayerContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioPlayerContext.d.ts","sourceRoot":"","sources":["../../../src/AudioPlayerContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA2D,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAQzG,UAAU,UAAU;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,sBAAsB;IAC9B,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAoBD,eAAO,MAAM,oBAAoB,8BAAuC,CAAC;AAEzE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,8BAA8B,CA6DxE,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC;IAAE,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,CAoDhF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { CameraAsset } from './types';
|
|
3
|
+
interface CameraPreviewProps {
|
|
4
|
+
onCapture: (assets: CameraAsset[]) => void;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
/** Override aspect ratio; defaults to WhatsApp-like 720:1165 */
|
|
7
|
+
aspectRatio?: number;
|
|
8
|
+
/** Maximum number of items that can be selected. 0 or undefined = unlimited. */
|
|
9
|
+
selectionLimit?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const CameraPreview: React.FC<CameraPreviewProps>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=CameraPreview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CameraPreview.d.ts","sourceRoot":"","sources":["../../../src/CameraPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAW9D,OAAO,KAAK,EAAE,WAAW,EAAqB,MAAM,SAAS,CAAC;AAS9D,UAAU,kBAAkB;IAC1B,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAWD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2MtD,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import { type ImageStyle, type StyleProp, type ViewProps } from 'react-native';
|
|
3
|
+
export interface NativeAnimatedImageViewProps extends Omit<ViewProps, 'style'> {
|
|
4
|
+
/** Image source uri (content://, file:// or a plain path). */
|
|
5
|
+
src?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Whether this view is the currently-visible page in a paging viewer. Only the active page
|
|
8
|
+
* animates; deactivating stops the animation on its current frame so an off-screen or
|
|
9
|
+
* recycled cell never burns CPU animating something the user cannot see.
|
|
10
|
+
*
|
|
11
|
+
* Optional — defaults to true natively, so a single-image consumer that never sets it just
|
|
12
|
+
* animates.
|
|
13
|
+
*/
|
|
14
|
+
active?: boolean;
|
|
15
|
+
/** How the frame is scaled into the view. Defaults to `contain`. */
|
|
16
|
+
resizeMode?: 'contain' | 'cover';
|
|
17
|
+
/**
|
|
18
|
+
* Typed as an image style rather than a view style: both the native view and the `<Image>`
|
|
19
|
+
* fallback render image content, and the fallback would not accept a plain ViewStyle.
|
|
20
|
+
*/
|
|
21
|
+
style?: StyleProp<ImageStyle>;
|
|
22
|
+
}
|
|
23
|
+
/** True when native animated-image playback is available on this platform/build. */
|
|
24
|
+
export declare const isNativeAnimatedImageAvailable: () => boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Renders an animated image (GIF), animating where the platform supports it.
|
|
27
|
+
*
|
|
28
|
+
* The fallback is a plain `<Image>` rather than an empty view: iOS animates GIFs through
|
|
29
|
+
* `<Image>` natively, and on any other target the still frame is the correct degraded result.
|
|
30
|
+
* Either way the underlying file is only ever read, never rewritten.
|
|
31
|
+
*/
|
|
32
|
+
export declare const NativeAnimatedImageView: FC<NativeAnimatedImageViewProps>;
|
|
33
|
+
//# sourceMappingURL=NativeAnimatedImageView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeAnimatedImageView.d.ts","sourceRoot":"","sources":["../../../src/NativeAnimatedImageView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAMtB,MAAM,WAAW,4BAA6B,SAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5E,8DAA8D;IAC9D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;CAC/B;AAUD,oFAAoF;AACpF,eAAO,MAAM,8BAA8B,QAAO,OACX,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CAkBpE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import { type ViewProps } from 'react-native';
|
|
3
|
+
export interface NativeAudioPlayerViewProps extends ViewProps {
|
|
4
|
+
/** Audio source uri (content:// or file://). */
|
|
5
|
+
src?: string;
|
|
6
|
+
/** False while the audio page is off-screen — force-pauses playback. */
|
|
7
|
+
active?: boolean;
|
|
8
|
+
/** Accent color for the play button and scrubber, e.g. "#4A56FF". */
|
|
9
|
+
tintColor?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const NativeAudioPlayerView: FC<NativeAudioPlayerViewProps>;
|
|
12
|
+
//# sourceMappingURL=NativeAudioPlayerView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeAudioPlayerView.d.ts","sourceRoot":"","sources":["../../../src/NativeAudioPlayerView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,EAAE,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,0BAA2B,SAAQ,SAAS;IAC3D,gDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,eAAO,MAAM,qBAAqB,EAAE,EAAE,CAAC,0BAA0B,CAMhE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import { type ViewProps } from 'react-native';
|
|
3
|
+
export interface NativeBlurViewProps extends ViewProps {
|
|
4
|
+
/** When true, snapshots + blurs the content behind it; when false, clears. */
|
|
5
|
+
active?: boolean;
|
|
6
|
+
/** Box-blur radius applied to the down-sampled snapshot (1–25). */
|
|
7
|
+
blurRadius?: number;
|
|
8
|
+
/** Snapshot down-sample divisor — higher is softer and cheaper (1–16). */
|
|
9
|
+
downsampleFactor?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const NativeBlurView: FC<NativeBlurViewProps>;
|
|
12
|
+
//# sourceMappingURL=NativeBlurView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeBlurView.d.ts","sourceRoot":"","sources":["../../../src/NativeBlurView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,EAAE,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAiBD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAOlD,CAAC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { type TurboModule } from 'react-native';
|
|
2
|
+
export interface Spec extends TurboModule {
|
|
3
|
+
openCamera(): Promise<string>;
|
|
4
|
+
openCameraPicker(options: Object): Promise<Object>;
|
|
5
|
+
openDocumentPicker(options: Object): Promise<Object>;
|
|
6
|
+
openAudioPicker(options: Object): Promise<Object>;
|
|
7
|
+
/** Opens the system image/video picker via SAF (ACTION_OPEN_DOCUMENT). */
|
|
8
|
+
openImageVideoPicker(options: Object): Promise<Object>;
|
|
9
|
+
/**
|
|
10
|
+
* Opens an existing photo/video (e.g. one just picked from the gallery) on the camera's own
|
|
11
|
+
* preview/editor screen — the same screen, controller and tools a capture lands on. Resolves
|
|
12
|
+
* with the same `{ cancelled, assets }` shape as {@link openCameraPicker}.
|
|
13
|
+
*/
|
|
14
|
+
openMediaEditor(options: Object): Promise<Object>;
|
|
15
|
+
/** Opens a document uri in an external viewer via ACTION_VIEW. Resolves true if launched. */
|
|
16
|
+
openDocument(uri: string, mimeType: string): Promise<boolean>;
|
|
17
|
+
startUpload(uris: string[], uploadUrl: string): Promise<void>;
|
|
18
|
+
getUploadState(): Promise<string>;
|
|
19
|
+
getNotificationHistory(): Promise<string>;
|
|
20
|
+
clearNotificationHistory(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Real device-memory facts (ActivityManager on Android): isLowRamDevice,
|
|
23
|
+
* memoryClassMb, totalRamMb, availableRamMb, isCurrentlyLowMemory, cpuCores.
|
|
24
|
+
*/
|
|
25
|
+
getDeviceCapabilities(): Promise<Object>;
|
|
26
|
+
cropImage(uri: string, options: Object): Promise<string>;
|
|
27
|
+
rotateImage(uri: string, degrees: number): Promise<string>;
|
|
28
|
+
applyFilter(uri: string, filterType: string): Promise<string>;
|
|
29
|
+
createAlbum(albumName: string): Promise<boolean>;
|
|
30
|
+
moveMediaToAlbum(uris: string[], albumId: string): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Deletes media files. On Android each file's bytes are securely overwritten
|
|
33
|
+
* with encrypted cryptographically secure random data before the file is
|
|
34
|
+
* unlinked, and cached copies / derived variants are swept too.
|
|
35
|
+
*
|
|
36
|
+
* Resolves `true` when at least one file was removed. It CANNOT express
|
|
37
|
+
* whether the overwrite succeeded — use {@link secureDeleteMedia} when the
|
|
38
|
+
* security verdict matters (e.g. before telling a user the media is gone).
|
|
39
|
+
*/
|
|
40
|
+
deleteMedia(uris: string[]): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Securely deletes ONE media item and reports exactly what was achieved.
|
|
43
|
+
*
|
|
44
|
+
* The file's exact size is measured, it is overwritten with encrypted CSPRNG
|
|
45
|
+
* garbage 2 MiB longer than that size (chunked, so nothing is held in RAM at
|
|
46
|
+
* file scale), the write is flushed to storage, and only then is the file
|
|
47
|
+
* unlinked — after which thumbnails, cached copies, derived variants and
|
|
48
|
+
* native metadata references are removed.
|
|
49
|
+
*
|
|
50
|
+
* `options` accepts `{ assetId, fileName, coverUri }`. Passing `assetId` is
|
|
51
|
+
* strongly preferred: compressed/exported/edited variants and video cover
|
|
52
|
+
* frames are named after it, and without it those copies of the same media
|
|
53
|
+
* are not found.
|
|
54
|
+
*
|
|
55
|
+
* Resolves `{ deleted, securelyOverwritten, fullySecure, originalBytes,
|
|
56
|
+
* overwrittenBytes, derivedFilesErased, derivedFilesFailed, error? }`. Only
|
|
57
|
+
* `fullySecure` justifies reporting a secure deletion to the user.
|
|
58
|
+
*/
|
|
59
|
+
secureDeleteMedia(uri: string, options: Object): Promise<Object>;
|
|
60
|
+
deleteStoredMedia(mediaId: string): Promise<boolean>;
|
|
61
|
+
/**
|
|
62
|
+
* Share one or more media uris through the native Android share sheet using
|
|
63
|
+
* Intent.ACTION_SEND (single item) or Intent.ACTION_SEND_MULTIPLE (multiple
|
|
64
|
+
* items), with the correct MIME type. `file://` paths are wrapped in a
|
|
65
|
+
* FileProvider content uri so no raw file path leaks to another process.
|
|
66
|
+
* Resolves `true` when the share chooser was launched, `false` otherwise.
|
|
67
|
+
*/
|
|
68
|
+
shareMedia(uris: string[], mimeType: string): Promise<boolean>;
|
|
69
|
+
setCameraFlash(mode: string): Promise<void>;
|
|
70
|
+
setCameraTimer(delaySeconds: number): Promise<void>;
|
|
71
|
+
enableCameraGrid(enabled: boolean): Promise<void>;
|
|
72
|
+
setMediaCaption(uri: string, caption: string): Promise<boolean>;
|
|
73
|
+
getMediaMetadata(uri: string): Promise<Object>;
|
|
74
|
+
/**
|
|
75
|
+
* The byte length of the exact clip the recording process finalized under `mediaId`, or 0 when
|
|
76
|
+
* none is remembered. Lets a preview quote the recorded size (matching the recording counter and
|
|
77
|
+
* the native editor's "Original" row) instead of the smaller background-cropped file on disk.
|
|
78
|
+
*/
|
|
79
|
+
getRecordedOriginalSize(mediaId: string): Promise<number>;
|
|
80
|
+
trimVideo(uri: string, startTime: number, endTime: number): Promise<string>;
|
|
81
|
+
compressVideo(uri: string, qualityOrOption: string): Promise<string>;
|
|
82
|
+
compressImage(uri: string, qualityOrOption: string): Promise<string>;
|
|
83
|
+
scanQRCode(): Promise<string>;
|
|
84
|
+
enableFaceDetection(enabled: boolean): Promise<void>;
|
|
85
|
+
setFaceEffect(effectType: string): Promise<void>;
|
|
86
|
+
setCameraTheme(theme: string): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Push the full serialized white-label config (theme + icons + animations +
|
|
89
|
+
* dimensions + notifications) to native. Stored in SharedPreferences and read
|
|
90
|
+
* by the camera Activity/editor on next launch.
|
|
91
|
+
*/
|
|
92
|
+
setCameraConfig(configJson: string): Promise<void>;
|
|
93
|
+
initializeMediaStorage(): Promise<Object>;
|
|
94
|
+
publishMedia(mediaId: string, moveMode: boolean): Promise<Object>;
|
|
95
|
+
publishBatch(mediaIds: string[], moveMode: boolean): Promise<Object>;
|
|
96
|
+
getCachedMedia(): Promise<Object[]>;
|
|
97
|
+
getPublishedMedia(): Promise<Object[]>;
|
|
98
|
+
getStorageStats(): Promise<Object>;
|
|
99
|
+
cleanupOldCache(olderThanDays: number): Promise<Object>;
|
|
100
|
+
getFailedTransfers(): Promise<Object[]>;
|
|
101
|
+
retryFailedTransfers(): Promise<Object[]>;
|
|
102
|
+
playAudio(uri: string, title: string): Promise<void>;
|
|
103
|
+
pauseAudio(): Promise<void>;
|
|
104
|
+
resumeAudio(): Promise<void>;
|
|
105
|
+
seekAudio(positionMs: number): Promise<void>;
|
|
106
|
+
stopAudio(): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Start recording audio via native MediaRecorder.
|
|
109
|
+
* Resolves with `{ filePath, mimeType }`.
|
|
110
|
+
*
|
|
111
|
+
* Options (all optional):
|
|
112
|
+
* - `outputFormat`: 'mpeg4' | 'aac_adts' | 'amr_nb' | 'amr_wb' | 'three_gpp'
|
|
113
|
+
* - `audioEncoder`: 'aac' | 'amr_nb' | 'amr_wb' | 'he_aac'
|
|
114
|
+
* - `audioSource`: 'mic' | 'camcorder' | 'voice_recognition' | 'voice_communication'
|
|
115
|
+
* - `bitRate`: number (default 128000)
|
|
116
|
+
* - `sampleRate`: number (default 44100)
|
|
117
|
+
* - `meteringIntervalMs`: number (0 = disabled; >0 fires `onAudioAmplitude` events)
|
|
118
|
+
*/
|
|
119
|
+
startAudioRecording(options: Object): Promise<Object>;
|
|
120
|
+
/**
|
|
121
|
+
* Stop the active recording.
|
|
122
|
+
* Resolves with `{ filePath, durationMs, fileSizeBytes, mimeType }`.
|
|
123
|
+
*/
|
|
124
|
+
stopAudioRecording(): Promise<Object>;
|
|
125
|
+
/**
|
|
126
|
+
* Cancel the active recording and delete the temporary file.
|
|
127
|
+
* Resolves with `{ deleted: boolean }`.
|
|
128
|
+
*/
|
|
129
|
+
cancelAudioRecording(): Promise<Object>;
|
|
130
|
+
/**
|
|
131
|
+
* Stop the active recording, validate the file, move it to the Documents
|
|
132
|
+
* directory, and return the finalized audio asset.
|
|
133
|
+
*
|
|
134
|
+
* Resolves with an asset map: `{ id, uri, documentUri, type, fileName,
|
|
135
|
+
* mimeType, size, duration, dateTaken }`.
|
|
136
|
+
*/
|
|
137
|
+
stopAndPublishAudioRecording(): Promise<Object>;
|
|
138
|
+
/**
|
|
139
|
+
* Pause the current recording (requires API 24+).
|
|
140
|
+
*/
|
|
141
|
+
pauseAudioRecording(): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* Resume a paused recording (requires API 24+).
|
|
144
|
+
*/
|
|
145
|
+
resumeAudioRecording(): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* Get the current recording state.
|
|
148
|
+
* Resolves with `{ state, filePath, durationMs, isPauseSupported }`.
|
|
149
|
+
*/
|
|
150
|
+
getAudioRecordingState(): Promise<Object>;
|
|
151
|
+
/**
|
|
152
|
+
* Get the current max amplitude from the active MediaRecorder.
|
|
153
|
+
* Returns an integer (0 = silence, higher = louder).
|
|
154
|
+
*/
|
|
155
|
+
getAudioAmplitude(): Promise<number>;
|
|
156
|
+
/**
|
|
157
|
+
* Pushes the host app's strings, text direction and active language to the
|
|
158
|
+
* native camera. `locale` is a BCP-47 tag ('fr', 'zh-Hans', 'ar') or '' when
|
|
159
|
+
* the host has not set one, in which case native formatting uses the device
|
|
160
|
+
* locale. Prefer `setCameraLocalization` / `setCameraLanguage` over calling
|
|
161
|
+
* this directly.
|
|
162
|
+
*/
|
|
163
|
+
setLocalization(translations: Object, isRtl: boolean, locale: string): void;
|
|
164
|
+
}
|
|
165
|
+
declare const nativeModule: Spec;
|
|
166
|
+
export default nativeModule;
|
|
167
|
+
//# sourceMappingURL=NativeCustomCamera.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeCustomCamera.d.ts","sourceRoot":"","sources":["../../../src/NativeCustomCamera.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
declare const CustomCamera: {
|
|
2
|
+
openCamera(): Promise<string>;
|
|
3
|
+
openCameraPicker(_options: Object): Promise<Object>;
|
|
4
|
+
openDocumentPicker(_options: Object): Promise<Object>;
|
|
5
|
+
openAudioPicker(_options: Object): Promise<Object>;
|
|
6
|
+
openImageVideoPicker(_options: Object): Promise<Object>;
|
|
7
|
+
openMediaEditor(_options: Object): Promise<Object>;
|
|
8
|
+
openDocument(_uri: string, _mimeType: string): Promise<boolean>;
|
|
9
|
+
startUpload(_uris: string[], _uploadUrl: string): Promise<void>;
|
|
10
|
+
getUploadState(): Promise<string>;
|
|
11
|
+
getNotificationHistory(): Promise<string>;
|
|
12
|
+
clearNotificationHistory(): Promise<void>;
|
|
13
|
+
getDeviceCapabilities(): Promise<Object>;
|
|
14
|
+
cropImage(_uri: string, _options: Object): Promise<string>;
|
|
15
|
+
rotateImage(_uri: string, _degrees: number): Promise<string>;
|
|
16
|
+
applyFilter(_uri: string, _filterType: string): Promise<string>;
|
|
17
|
+
createAlbum(_albumName: string): Promise<boolean>;
|
|
18
|
+
moveMediaToAlbum(_uris: string[], _albumId: string): Promise<boolean>;
|
|
19
|
+
deleteMedia(_uris: string[]): Promise<boolean>;
|
|
20
|
+
secureDeleteMedia(_uri: string, _options: Object): Promise<Object>;
|
|
21
|
+
shareMedia(_uris: string[], _mimeType: string): Promise<boolean>;
|
|
22
|
+
setCameraFlash(_mode: string): Promise<void>;
|
|
23
|
+
setCameraTimer(_delaySeconds: number): Promise<void>;
|
|
24
|
+
enableCameraGrid(_enabled: boolean): Promise<void>;
|
|
25
|
+
setMediaCaption(_uri: string, _caption: string): Promise<boolean>;
|
|
26
|
+
getMediaMetadata(_uri: string): Promise<Object>;
|
|
27
|
+
getRecordedOriginalSize(_mediaId: string): Promise<number>;
|
|
28
|
+
trimVideo(_uri: string, _startTime: number, _endTime: number): Promise<string>;
|
|
29
|
+
compressVideo(uri: string, _qualityOrOption: string): Promise<string>;
|
|
30
|
+
compressImage(uri: string, _qualityOrOption: string): Promise<string>;
|
|
31
|
+
scanQRCode(): Promise<string>;
|
|
32
|
+
enableFaceDetection(_enabled: boolean): Promise<void>;
|
|
33
|
+
setFaceEffect(_effectType: string): Promise<void>;
|
|
34
|
+
setCameraTheme(_theme: string): Promise<void>;
|
|
35
|
+
setCameraConfig(_configJson: string): Promise<void>;
|
|
36
|
+
setLocalization(_translations: Object, _isRtl: boolean, _locale: string): void;
|
|
37
|
+
startAudioRecording(_options: Object): Promise<Object>;
|
|
38
|
+
stopAudioRecording(): Promise<Object>;
|
|
39
|
+
cancelAudioRecording(): Promise<Object>;
|
|
40
|
+
stopAndPublishAudioRecording(): Promise<Object>;
|
|
41
|
+
pauseAudioRecording(): Promise<void>;
|
|
42
|
+
resumeAudioRecording(): Promise<void>;
|
|
43
|
+
getAudioRecordingState(): Promise<Object>;
|
|
44
|
+
getAudioAmplitude(): Promise<number>;
|
|
45
|
+
};
|
|
46
|
+
export default CustomCamera;
|
|
47
|
+
//# sourceMappingURL=NativeCustomCamera.web.d.ts.map
|