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,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permission utilities for the camera plugin.
|
|
3
|
+
*
|
|
4
|
+
* PERMISSIONS ARE REQUESTED JUST-IN-TIME — by the feature that needs them, at the
|
|
5
|
+
* moment it is first used, never as an up-front batch:
|
|
6
|
+
*
|
|
7
|
+
* - CAMERA → when the camera opens (openCamera / openCameraPicker).
|
|
8
|
+
* - Gallery/media → when the user opens the gallery inside the camera (the
|
|
9
|
+
* bottom-left thumbnail or the swipe-up gesture).
|
|
10
|
+
* - RECORD_AUDIO → when the first video recording starts, and when the in-app
|
|
11
|
+
* audio recorder opens.
|
|
12
|
+
* - POST_NOTIFICATIONS → when an upload with visible progress starts.
|
|
13
|
+
*
|
|
14
|
+
* CustomCameraActivity drives all of the in-camera ones itself, so an app does not
|
|
15
|
+
* need to pre-request anything. The functions below exist for apps that want to
|
|
16
|
+
* CHECK state ahead of time, or to request a single permission before the feature
|
|
17
|
+
* that owns it runs — request only what the next action actually needs.
|
|
18
|
+
*
|
|
19
|
+
* On Android, permissions persist across app restarts and device reboots.
|
|
20
|
+
* The app should only re-request permissions when:
|
|
21
|
+
* - The user has explicitly revoked them from device Settings
|
|
22
|
+
* - The user selected "Don't ask again" on a previous denial
|
|
23
|
+
*
|
|
24
|
+
* On iOS, permissions can be checked but must be requested through the native UI.
|
|
25
|
+
*/
|
|
26
|
+
import type { Permission, Rationale } from 'react-native';
|
|
27
|
+
export type PermissionStatus = 'granted' | 'denied' | 'never_ask_again' | 'unavailable';
|
|
28
|
+
/**
|
|
29
|
+
* Check if the device supports camera.
|
|
30
|
+
* Returns false if there's no camera hardware.
|
|
31
|
+
*/
|
|
32
|
+
export declare function checkCameraPermission(): Promise<boolean>;
|
|
33
|
+
/**
|
|
34
|
+
* Get detailed camera permission status.
|
|
35
|
+
*/
|
|
36
|
+
export declare function checkCameraPermissionStatus(): Promise<PermissionStatus>;
|
|
37
|
+
/**
|
|
38
|
+
* Request camera permission.
|
|
39
|
+
* If the user previously selected "Don't ask again", returns 'never_ask_again'
|
|
40
|
+
* and you should direct them to device Settings.
|
|
41
|
+
*/
|
|
42
|
+
export declare function requestCameraPermission(rationale?: Rationale): Promise<PermissionStatus>;
|
|
43
|
+
/**
|
|
44
|
+
* Check if storage/media permissions are granted.
|
|
45
|
+
* For Android 13+, this checks READ_MEDIA_IMAGES and READ_MEDIA_VIDEO.
|
|
46
|
+
* For earlier versions, this checks READ_EXTERNAL_STORAGE.
|
|
47
|
+
*/
|
|
48
|
+
export declare function checkStoragePermission(): Promise<boolean>;
|
|
49
|
+
/**
|
|
50
|
+
* Get detailed storage permission status.
|
|
51
|
+
*/
|
|
52
|
+
export declare function checkStoragePermissionStatus(): Promise<{
|
|
53
|
+
images: PermissionStatus;
|
|
54
|
+
videos: PermissionStatus;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Request gallery (storage/media) permissions.
|
|
58
|
+
* For Android 13+, requests READ_MEDIA_IMAGES and READ_MEDIA_VIDEO.
|
|
59
|
+
* For earlier versions, requests READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE.
|
|
60
|
+
*
|
|
61
|
+
* Call this only when the user reaches for their media — the camera itself does not
|
|
62
|
+
* need it, and CustomCameraActivity asks for it on its own when the in-camera gallery
|
|
63
|
+
* is opened.
|
|
64
|
+
*
|
|
65
|
+
* `rationale` is accepted for API compatibility but is not shown: the whole set is
|
|
66
|
+
* requested in one grouped system flow (see [requestPermissions]), and Android's
|
|
67
|
+
* multi-permission API has no per-permission rationale dialog. Show your own
|
|
68
|
+
* explanation before calling if you need one.
|
|
69
|
+
*/
|
|
70
|
+
export declare function requestStoragePermission(_rationale?: Rationale): Promise<PermissionStatus>;
|
|
71
|
+
/**
|
|
72
|
+
* Check microphone permission (for video recording).
|
|
73
|
+
*/
|
|
74
|
+
export declare function checkMicrophonePermission(): Promise<boolean>;
|
|
75
|
+
/**
|
|
76
|
+
* Get detailed microphone permission status.
|
|
77
|
+
*/
|
|
78
|
+
export declare function checkMicrophonePermissionStatus(): Promise<PermissionStatus>;
|
|
79
|
+
/**
|
|
80
|
+
* Request microphone permission.
|
|
81
|
+
*/
|
|
82
|
+
export declare function requestMicrophonePermission(rationale?: Rationale): Promise<PermissionStatus>;
|
|
83
|
+
/**
|
|
84
|
+
* Check all permissions required to OPEN the camera — that is the camera permission
|
|
85
|
+
* and nothing else. Media/storage and microphone access are not required to open the
|
|
86
|
+
* camera; they belong to the gallery and to video recording, which request them
|
|
87
|
+
* themselves when first used.
|
|
88
|
+
*/
|
|
89
|
+
export declare function checkAllPermissions(): Promise<boolean>;
|
|
90
|
+
/**
|
|
91
|
+
* Request the permissions needed to OPEN the camera: the camera permission, only.
|
|
92
|
+
*
|
|
93
|
+
* This deliberately does NOT request gallery or microphone access. Those are asked
|
|
94
|
+
* for by the feature that needs them — the in-camera gallery and the first video
|
|
95
|
+
* recording — so the user is never prompted for access they have not reached for yet.
|
|
96
|
+
*/
|
|
97
|
+
export declare function requestAllPermissions(rationale?: Rationale): Promise<{
|
|
98
|
+
camera: PermissionStatus;
|
|
99
|
+
}>;
|
|
100
|
+
/**
|
|
101
|
+
* Check if the app should show a rationale for a permission.
|
|
102
|
+
* A rationale should be shown when the user has previously denied the permission
|
|
103
|
+
* but hasn't selected "Don't ask again" yet.
|
|
104
|
+
*/
|
|
105
|
+
export declare function shouldShowRationale(_permission: Permission): Promise<boolean>;
|
|
106
|
+
/**
|
|
107
|
+
* Open the device's app settings page.
|
|
108
|
+
* Use this when the user has permanently denied a permission ("Don't ask again").
|
|
109
|
+
*/
|
|
110
|
+
export declare function openSettings(): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Default rationale messages for permission requests, read through the plugin's
|
|
113
|
+
* centralized translation registry so they follow the host app's current
|
|
114
|
+
* language (live, on switch) and fall back to English when untranslated.
|
|
115
|
+
*/
|
|
116
|
+
export type PermissionFeature = 'camera' | 'storage' | 'microphone';
|
|
117
|
+
/**
|
|
118
|
+
* Build the currently-localized default rationale for a single permission.
|
|
119
|
+
*
|
|
120
|
+
* Text comes from the `permissionRationale*` / `permissionGrant` /
|
|
121
|
+
* `permissionDeny` translation keys, so whatever language the host app is
|
|
122
|
+
* currently using is what the system dialog shows — and a mid-session language
|
|
123
|
+
* switch is picked up automatically.
|
|
124
|
+
*/
|
|
125
|
+
export declare function getDefaultPermissionRationale(feature: PermissionFeature): Rationale;
|
|
126
|
+
/**
|
|
127
|
+
* Static English rationale snapshots, kept for callers that need a fixed object
|
|
128
|
+
* shape (e.g. memoized). For live, language-aware copies use
|
|
129
|
+
* {@link getDefaultPermissionRationale} instead.
|
|
130
|
+
*/
|
|
131
|
+
export declare const DEFAULT_RATIONALE: Record<PermissionFeature, Rationale>;
|
|
132
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM1D,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAqExF;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG9D;AAED;;GAEG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAE7E;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAK3B;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAgB/D;AAED;;GAEG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC;IAC5D,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC,CAcD;AAmDD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,CAAC,EAAE,SAAS,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAmB3B;AAED;;GAEG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,CAGlE;AAED;;GAEG;AACH,wBAAsB,+BAA+B,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAKjF;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAQ3B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5D;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAGvC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,UAAU,GACtB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CASlD;AAED;;;;GAIG;AAEH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;AAcpE;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,iBAAiB,GACzB,SAAS,CAOX;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,SAAS,CAIlE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function runAfterInteractions(callback: () => void): void;
|
|
2
|
+
export declare function createOptimizedListData<T>(items: T[]): T[];
|
|
3
|
+
export declare function createMemoizer<T extends (...args: unknown[]) => unknown>(fn: T): T;
|
|
4
|
+
export declare function createThrottledRenderer<T extends (...args: unknown[]) => unknown>(fn: T, wait?: number): T;
|
|
5
|
+
export declare function optimizeListRenderItem<T>(item: T): T;
|
|
6
|
+
export declare function createOptimizedImageSource(uri: string): {
|
|
7
|
+
uri: string;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=rendering.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rendering.d.ts","sourceRoot":"","sources":["../../../src/rendering.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAE/D;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAE1D;AAED,wBAAgB,cAAc,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACtE,EAAE,EAAE,CAAC,GACJ,CAAC,CAcH;AAED,wBAAgB,uBAAuB,CACrC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACzC,EAAE,EAAE,CAAC,EAAE,IAAI,SAAI,GAAG,CAAC,CAUpB;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAEpD;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAEvE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function validateSecureUri(uri: string): boolean;
|
|
2
|
+
export declare function sanitizeFileName(name: string): string;
|
|
3
|
+
export declare function validateFileContentType(type?: string): boolean;
|
|
4
|
+
export declare function validateSecureFileSize(size?: number): boolean;
|
|
5
|
+
export declare function validateBatchOperation(items: unknown[]): boolean;
|
|
6
|
+
//# sourceMappingURL=security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/security.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAEhE"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* State management utilities for camera operations
|
|
3
|
+
*/
|
|
4
|
+
import { CameraError } from './errors';
|
|
5
|
+
/**
|
|
6
|
+
* Operation status types
|
|
7
|
+
*/
|
|
8
|
+
export type OperationStatus = 'idle' | 'loading' | 'success' | 'error' | 'cancelled';
|
|
9
|
+
/**
|
|
10
|
+
* Operation result interface
|
|
11
|
+
*/
|
|
12
|
+
export interface OperationResult<T> {
|
|
13
|
+
status: OperationStatus;
|
|
14
|
+
data?: T;
|
|
15
|
+
error?: CameraError;
|
|
16
|
+
progress?: number;
|
|
17
|
+
timestamp: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Create initial operation state
|
|
21
|
+
*/
|
|
22
|
+
export declare function createInitialOperationState<T>(): OperationResult<T>;
|
|
23
|
+
/**
|
|
24
|
+
* Create loading state
|
|
25
|
+
*/
|
|
26
|
+
export declare function createLoadingState<T>(progress?: number): OperationResult<T>;
|
|
27
|
+
/**
|
|
28
|
+
* Create success state
|
|
29
|
+
*/
|
|
30
|
+
export declare function createSuccessState<T>(data: T): OperationResult<T>;
|
|
31
|
+
/**
|
|
32
|
+
* Create error state
|
|
33
|
+
*/
|
|
34
|
+
export declare function createErrorState<T>(error: CameraError | Error | string): OperationResult<T>;
|
|
35
|
+
/**
|
|
36
|
+
* Create cancelled state
|
|
37
|
+
*/
|
|
38
|
+
export declare function createCancelledState<T>(): OperationResult<T>;
|
|
39
|
+
/**
|
|
40
|
+
* Check if operation is in progress
|
|
41
|
+
*/
|
|
42
|
+
export declare function isOperationInProgress<T>(result: OperationResult<T>): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Check if operation was successful
|
|
45
|
+
*/
|
|
46
|
+
export declare function isOperationSuccessful<T>(result: OperationResult<T>): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Check if operation failed
|
|
49
|
+
*/
|
|
50
|
+
export declare function isOperationFailed<T>(result: OperationResult<T>): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Check if operation was cancelled
|
|
53
|
+
*/
|
|
54
|
+
export declare function isOperationCancelled<T>(result: OperationResult<T>): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Get user-friendly status message
|
|
57
|
+
*/
|
|
58
|
+
export declare function getStatusMessage<T>(result: OperationResult<T>): string;
|
|
59
|
+
/**
|
|
60
|
+
* Operation queue management
|
|
61
|
+
*/
|
|
62
|
+
export declare class OperationQueue {
|
|
63
|
+
private queue;
|
|
64
|
+
private isProcessing;
|
|
65
|
+
private maxConcurrent;
|
|
66
|
+
private generation;
|
|
67
|
+
constructor(maxConcurrent?: number);
|
|
68
|
+
/**
|
|
69
|
+
* Add operation to queue
|
|
70
|
+
*/
|
|
71
|
+
enqueue(operation: () => Promise<void>): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Process queue
|
|
74
|
+
*/
|
|
75
|
+
private processQueue;
|
|
76
|
+
/**
|
|
77
|
+
* Clear queue
|
|
78
|
+
*/
|
|
79
|
+
clear(): void;
|
|
80
|
+
/**
|
|
81
|
+
* Get queue size
|
|
82
|
+
*/
|
|
83
|
+
size(): number;
|
|
84
|
+
/**
|
|
85
|
+
* Check if queue is processing
|
|
86
|
+
*/
|
|
87
|
+
isProcessingQueue(): boolean;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Batch operation helper
|
|
91
|
+
*/
|
|
92
|
+
export declare function processInBatches<T, R>(items: T[], batchSize: number, processor: (item: T, batchIndex: number, itemIndex: number) => Promise<R>, onProgress?: (progress: number, current: number, total: number) => void): Promise<R[]>;
|
|
93
|
+
/**
|
|
94
|
+
* Retry operation with exponential backoff
|
|
95
|
+
*/
|
|
96
|
+
export declare function retryWithBackoff<T>(operation: () => Promise<T>, maxRetries?: number, initialDelay?: number, backoffFactor?: number): Promise<T>;
|
|
97
|
+
/**
|
|
98
|
+
* Timeout wrapper for operations
|
|
99
|
+
*/
|
|
100
|
+
export declare function withTimeout<T>(operation: () => Promise<T>, timeoutMs: number, timeoutMessage?: string): Promise<T>;
|
|
101
|
+
export { getUserFriendlyErrorMessage } from './errors';
|
|
102
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media Storage Module - Bridges React Native with native media storage workflow
|
|
3
|
+
*
|
|
4
|
+
* Provides a complete API for managing media lifecycle:
|
|
5
|
+
* 1. Capture/select media -> stored in cache
|
|
6
|
+
* 2. User sends/publishes -> moved to documents
|
|
7
|
+
* 3. Persistent metadata tracking
|
|
8
|
+
* 4. Automatic cleanup and duplicate detection
|
|
9
|
+
*/
|
|
10
|
+
import type { StoredMediaMetadata, MediaPublishResult, CleanupResult, StorageStats } from './types';
|
|
11
|
+
/**
|
|
12
|
+
* Media Storage Manager - High-level API for media storage operations
|
|
13
|
+
*/
|
|
14
|
+
declare class MediaStorageManager {
|
|
15
|
+
private initialized;
|
|
16
|
+
/**
|
|
17
|
+
* Initialize the media storage workflow
|
|
18
|
+
* Call this once when the app starts
|
|
19
|
+
*/
|
|
20
|
+
initialize(): Promise<{
|
|
21
|
+
success: boolean;
|
|
22
|
+
message?: string;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* Publish media from cache to document directory
|
|
26
|
+
* Moves file if moveMode=true, copies if false
|
|
27
|
+
*/
|
|
28
|
+
publishMedia(mediaId: string, options?: {
|
|
29
|
+
moveMode?: boolean;
|
|
30
|
+
}): Promise<MediaPublishResult>;
|
|
31
|
+
/**
|
|
32
|
+
* Publish multiple media files in batch
|
|
33
|
+
*/
|
|
34
|
+
publishBatch(mediaIds: string[], options?: {
|
|
35
|
+
moveMode?: boolean;
|
|
36
|
+
}): Promise<{
|
|
37
|
+
totalCount: number;
|
|
38
|
+
successCount: number;
|
|
39
|
+
failureCount: number;
|
|
40
|
+
results: MediaPublishResult[];
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Get all cached media (not yet published)
|
|
44
|
+
*/
|
|
45
|
+
getCachedMedia(): Promise<StoredMediaMetadata[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Get all published media
|
|
48
|
+
*/
|
|
49
|
+
getPublishedMedia(): Promise<StoredMediaMetadata[]>;
|
|
50
|
+
/**
|
|
51
|
+
* Get storage statistics
|
|
52
|
+
*/
|
|
53
|
+
getStorageStats(): Promise<StorageStats>;
|
|
54
|
+
/**
|
|
55
|
+
* Cleanup old cache files
|
|
56
|
+
*/
|
|
57
|
+
cleanupOldCache(olderThanDays?: number): Promise<CleanupResult>;
|
|
58
|
+
/**
|
|
59
|
+
* Delete a specific media
|
|
60
|
+
*/
|
|
61
|
+
deleteMedia(mediaId: string): Promise<boolean>;
|
|
62
|
+
/**
|
|
63
|
+
* Get failed transfers that can be retried
|
|
64
|
+
*/
|
|
65
|
+
getFailedTransfers(): Promise<Array<{
|
|
66
|
+
mediaId: string;
|
|
67
|
+
error: string;
|
|
68
|
+
retryCount: number;
|
|
69
|
+
}>>;
|
|
70
|
+
/**
|
|
71
|
+
* Retry failed transfers
|
|
72
|
+
*/
|
|
73
|
+
retryFailedTransfers(): Promise<MediaPublishResult[]>;
|
|
74
|
+
/**
|
|
75
|
+
* Get media cache size in MB
|
|
76
|
+
*/
|
|
77
|
+
getCacheSizeMB(): Promise<number>;
|
|
78
|
+
/**
|
|
79
|
+
* Check if cache is almost full
|
|
80
|
+
*/
|
|
81
|
+
isCacheAlmostFull(threshold?: number): Promise<boolean>;
|
|
82
|
+
/**
|
|
83
|
+
* Request cleanup if cache exceeds threshold
|
|
84
|
+
*/
|
|
85
|
+
requestCleanupIfNeeded(maxCacheMB?: number): Promise<boolean>;
|
|
86
|
+
/**
|
|
87
|
+
* Get a summary of storage status
|
|
88
|
+
*/
|
|
89
|
+
getStorageSummary(): Promise<{
|
|
90
|
+
totalCached: number;
|
|
91
|
+
totalPublished: number;
|
|
92
|
+
cacheUsageMB: number;
|
|
93
|
+
cachePercentageFull: number;
|
|
94
|
+
needsCleanup: boolean;
|
|
95
|
+
duplicatesCount: number;
|
|
96
|
+
}>;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get the media storage manager instance
|
|
100
|
+
*/
|
|
101
|
+
export declare function getMediaStorageManager(): MediaStorageManager;
|
|
102
|
+
/**
|
|
103
|
+
* Quick access functions for common operations
|
|
104
|
+
*/
|
|
105
|
+
export declare function initializeMediaStorage(): Promise<void>;
|
|
106
|
+
export declare function publishCachedMedia(mediaId: string, moveMode?: boolean): Promise<MediaPublishResult>;
|
|
107
|
+
export declare function getCacheInfo(): Promise<{
|
|
108
|
+
items: number;
|
|
109
|
+
sizeMB: number;
|
|
110
|
+
percentageFull: number;
|
|
111
|
+
}>;
|
|
112
|
+
export declare function cleanupExpiredCache(): Promise<{
|
|
113
|
+
filesRemoved: number;
|
|
114
|
+
spaceFreedMB: number;
|
|
115
|
+
}>;
|
|
116
|
+
export { MediaStorageManager };
|
|
117
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACb,YAAY,EAEb,MAAM,SAAS,CAAC;AAIjB;;GAEG;AACH,cAAM,mBAAmB;IACvB,OAAO,CAAC,WAAW,CAAS;IAE5B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAenE;;;OAGG;IACG,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,GACA,OAAO,CAAC,kBAAkB,CAAC;IAmC9B;;OAEG;IACG,YAAY,CAChB,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,GACA,OAAO,CAAC;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,kBAAkB,EAAE,CAAC;KAC/B,CAAC;IAwBF;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAyBtD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA2BzD;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC;IA4B9C;;OAEG;IACG,eAAe,CAAC,aAAa,GAAE,MAAU,GAAG,OAAO,CAAC,aAAa,CAAC;IAsBxE;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASpD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CACjC,KAAK,CAAC;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC,CACH;IAUD;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAqB3D;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAUvC;;OAEG;IACG,iBAAiB,CAAC,SAAS,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAajE;;OAEG;IACG,sBAAsB,CAAC,UAAU,GAAE,MAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAexE;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC;QACjC,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CA2BH;AAKD;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,mBAAmB,CAK5D;AAED;;GAEG;AAEH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM5D;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,QAAQ,UAAO,GACd,OAAO,CAAC,kBAAkB,CAAC,CAO7B;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC,CAeD;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CAOD;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type FC, type ReactNode } from 'react';
|
|
2
|
+
import type { CameraThemeConfig, CameraThemeInput } from './types';
|
|
3
|
+
export declare const DEFAULT_CAMERA_THEME_CONFIG: CameraThemeConfig;
|
|
4
|
+
export declare function createCameraTheme(overrides?: Partial<CameraThemeConfig>): CameraThemeConfig;
|
|
5
|
+
export declare function resolveCameraTheme(theme?: CameraThemeInput): CameraThemeConfig;
|
|
6
|
+
export declare function setGlobalCameraTheme(theme: CameraThemeInput): CameraThemeConfig;
|
|
7
|
+
export declare function getCurrentCameraTheme(): CameraThemeConfig;
|
|
8
|
+
export declare function subscribeToCameraTheme(listener: (theme: CameraThemeConfig) => void): () => void;
|
|
9
|
+
export interface CameraThemeProviderProps {
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
theme?: CameraThemeInput;
|
|
12
|
+
}
|
|
13
|
+
export declare const CameraThemeProvider: FC<CameraThemeProviderProps>;
|
|
14
|
+
export declare function useCameraTheme(): CameraThemeConfig;
|
|
15
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/theme.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,EAAE,EACP,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAQjB,MAAM,SAAS,CAAC;AAqVjB,eAAO,MAAM,2BAA2B,EAAE,iBAGtC,CAAC;AAEL,wBAAgB,iBAAiB,CAC/B,SAAS,GAAE,OAAO,CAAC,iBAAiB,CAAM,GACzC,iBAAiB,CAEnB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,CAAC,EAAE,gBAAgB,GACvB,iBAAiB,CAcnB;AAOD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,CAK/E;AAED,wBAAgB,qBAAqB,IAAI,iBAAiB,CAEzD;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAC3C,MAAM,IAAI,CAKZ;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CA8B5D,CAAC;AAEF,wBAAgB,cAAc,IAAI,iBAAiB,CAalD"}
|