@crumbsdk/react-native 0.0.1-rc.3 → 0.0.1-rc.5
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/README.md +280 -8
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/margelo/nitro/crumbsdk/reactnative/CrumbReactNative.kt +121 -3
- package/app.plugin.js +52 -0
- package/ios/CrumbReactNative.swift +135 -3
- package/lib/module/NativeCrumbReactNative.web.js +5 -1
- package/lib/module/NativeCrumbReactNative.web.js.map +1 -1
- package/lib/module/build-release.js +19 -0
- package/lib/module/build-release.js.map +1 -0
- package/lib/module/index.js +94 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/javascript-crash-capture.js +497 -0
- package/lib/module/javascript-crash-capture.js.map +1 -0
- package/lib/module/log-buffer.js +22 -2
- package/lib/module/log-buffer.js.map +1 -1
- package/lib/module/screen-context.js +127 -0
- package/lib/module/screen-context.js.map +1 -0
- package/lib/typescript/src/CrumbReactNative.nitro.d.ts +5 -1
- package/lib/typescript/src/CrumbReactNative.nitro.d.ts.map +1 -1
- package/lib/typescript/src/NativeCrumbReactNative.web.d.ts.map +1 -1
- package/lib/typescript/src/build-release.d.ts +6 -0
- package/lib/typescript/src/build-release.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +8 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/javascript-crash-capture.d.ts +74 -0
- package/lib/typescript/src/javascript-crash-capture.d.ts.map +1 -0
- package/lib/typescript/src/log-buffer.d.ts +1 -0
- package/lib/typescript/src/log-buffer.d.ts.map +1 -1
- package/lib/typescript/src/screen-context.d.ts +19 -0
- package/lib/typescript/src/screen-context.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +38 -0
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/metro.cjs +35 -0
- package/metro.d.cts +2 -0
- package/native/ios/CrumbSDKCore.podspec +28 -0
- package/native/ios/CrumbSDKUI.podspec +38 -0
- package/native/ios/LICENSE +201 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/Info.plist +96 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/PrivacyInfo.xcprivacy +39 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/CrashReporter +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/CrashReporter.h +366 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashFeatureConfig.h +108 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashMacros.h +143 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashNamespace.h +320 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReport.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportApplicationInfo.h +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportBinaryImageInfo.h +76 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportExceptionInfo.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportFormatter.h +55 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportMachExceptionInfo.h +41 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportMachineInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportProcessInfo.h +80 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportProcessorInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportRegisterInfo.h +45 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportSignalInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportStackFrameInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportSymbolInfo.h +51 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportSystemInfo.h +158 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportTextFormatter.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportThreadInfo.h +75 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReporter.h +131 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReporterConfig.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Info.plist +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Modules/module.modulemap +8 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/PrivacyInfo.xcprivacy +39 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/CrashReporter +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/CrashReporter.h +366 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashFeatureConfig.h +108 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashMacros.h +143 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashNamespace.h +320 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReport.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportApplicationInfo.h +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportBinaryImageInfo.h +76 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportExceptionInfo.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportFormatter.h +55 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportMachExceptionInfo.h +41 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportMachineInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportProcessInfo.h +80 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportProcessorInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportRegisterInfo.h +45 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportSignalInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportStackFrameInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportSymbolInfo.h +51 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportSystemInfo.h +158 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportTextFormatter.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportThreadInfo.h +75 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReporter.h +131 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReporterConfig.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Modules/module.modulemap +8 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Resources/Info.plist +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Resources/PrivacyInfo.xcprivacy +39 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/CrashReporter +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/CrashReporter.h +366 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashFeatureConfig.h +108 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashMacros.h +143 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashNamespace.h +320 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReport.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportApplicationInfo.h +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportBinaryImageInfo.h +76 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportExceptionInfo.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportFormatter.h +55 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachExceptionInfo.h +41 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachineInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessInfo.h +80 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessorInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportRegisterInfo.h +45 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportSignalInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportStackFrameInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportSymbolInfo.h +51 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportSystemInfo.h +158 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportTextFormatter.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportThreadInfo.h +75 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReporter.h +131 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReporterConfig.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Modules/module.modulemap +8 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Resources/Info.plist +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Resources/PrivacyInfo.xcprivacy +39 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/CrashReporter +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/CrashReporter.h +366 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashFeatureConfig.h +108 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashMacros.h +143 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashNamespace.h +320 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReport.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportApplicationInfo.h +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportBinaryImageInfo.h +76 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportExceptionInfo.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportFormatter.h +55 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportMachExceptionInfo.h +41 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportMachineInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportProcessInfo.h +80 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportProcessorInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportRegisterInfo.h +45 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportSignalInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportStackFrameInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportSymbolInfo.h +51 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportSystemInfo.h +158 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportTextFormatter.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportThreadInfo.h +75 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReporter.h +131 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReporterConfig.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Modules/module.modulemap +8 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Resources/Info.plist +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Resources/PrivacyInfo.xcprivacy +39 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/CrashReporter +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/CrashReporter.h +366 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashFeatureConfig.h +108 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashMacros.h +143 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashNamespace.h +320 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReport.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportApplicationInfo.h +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportBinaryImageInfo.h +76 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportExceptionInfo.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportFormatter.h +55 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportMachExceptionInfo.h +41 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportMachineInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportProcessInfo.h +80 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportProcessorInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportRegisterInfo.h +45 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportSignalInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportStackFrameInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportSymbolInfo.h +51 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportSystemInfo.h +158 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportTextFormatter.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportThreadInfo.h +75 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReporter.h +131 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReporterConfig.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Info.plist +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Modules/module.modulemap +8 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/PrivacyInfo.xcprivacy +39 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeDirectory +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeRequirements +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeRequirements-1 +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeResources +462 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeSignature +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/CrashReporter +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/CrashReporter.h +366 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashFeatureConfig.h +108 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashMacros.h +143 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashNamespace.h +320 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReport.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportApplicationInfo.h +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportBinaryImageInfo.h +76 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportExceptionInfo.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportFormatter.h +55 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportMachExceptionInfo.h +41 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportMachineInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportProcessInfo.h +80 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportProcessorInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportRegisterInfo.h +45 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportSignalInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportStackFrameInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportSymbolInfo.h +51 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportSystemInfo.h +158 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportTextFormatter.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportThreadInfo.h +75 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReporter.h +131 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReporterConfig.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Modules/module.modulemap +8 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Resources/Info.plist +48 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Resources/PrivacyInfo.xcprivacy +39 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/CrashReporter +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/CrashReporter.h +366 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashFeatureConfig.h +108 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashMacros.h +143 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashNamespace.h +320 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReport.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportApplicationInfo.h +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportBinaryImageInfo.h +76 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportExceptionInfo.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportFormatter.h +55 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachExceptionInfo.h +41 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachineInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessInfo.h +80 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessorInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportRegisterInfo.h +45 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportSignalInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportStackFrameInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportSymbolInfo.h +51 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportSystemInfo.h +158 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportTextFormatter.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportThreadInfo.h +75 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReporter.h +131 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReporterConfig.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Modules/module.modulemap +8 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Resources/Info.plist +48 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Resources/PrivacyInfo.xcprivacy +39 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/CrashReporter +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/CrashReporter.h +366 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashFeatureConfig.h +108 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashMacros.h +143 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashNamespace.h +320 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReport.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportApplicationInfo.h +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportBinaryImageInfo.h +76 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportExceptionInfo.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportFormatter.h +55 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportMachExceptionInfo.h +41 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportMachineInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportProcessInfo.h +80 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportProcessorInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportRegisterInfo.h +45 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportSignalInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportStackFrameInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportSymbolInfo.h +51 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportSystemInfo.h +158 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportTextFormatter.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportThreadInfo.h +75 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReporter.h +131 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReporterConfig.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Modules/module.modulemap +8 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Resources/Info.plist +48 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Resources/PrivacyInfo.xcprivacy +39 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/CrashReporter +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/CrashReporter.h +366 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashFeatureConfig.h +108 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashMacros.h +143 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashNamespace.h +320 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReport.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportApplicationInfo.h +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportBinaryImageInfo.h +76 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportExceptionInfo.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportFormatter.h +55 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportMachExceptionInfo.h +41 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportMachineInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportProcessInfo.h +80 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportProcessorInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportRegisterInfo.h +45 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportSignalInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportStackFrameInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportSymbolInfo.h +51 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportSystemInfo.h +158 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportTextFormatter.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportThreadInfo.h +75 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReporter.h +131 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReporterConfig.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Info.plist +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Modules/module.modulemap +8 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/PrivacyInfo.xcprivacy +39 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/CrashReporter +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/CrashReporter.h +366 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashFeatureConfig.h +108 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashMacros.h +143 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashNamespace.h +320 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReport.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportApplicationInfo.h +52 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportBinaryImageInfo.h +76 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportExceptionInfo.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportFormatter.h +55 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportMachExceptionInfo.h +41 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportMachineInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportProcessInfo.h +80 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportProcessorInfo.h +64 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportRegisterInfo.h +45 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportSignalInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportStackFrameInfo.h +50 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportSymbolInfo.h +51 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportSystemInfo.h +158 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportTextFormatter.h +59 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportThreadInfo.h +75 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReporter.h +131 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReporterConfig.h +193 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Info.plist +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Modules/module.modulemap +8 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/PrivacyInfo.xcprivacy +39 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeDirectory +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeRequirements +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeRequirements-1 +0 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeResources +462 -0
- package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeSignature +0 -0
- package/native/ios/PLCrashReporter/LICENSE.txt +54 -0
- package/native/ios/PLCrashReporter/PLCrashReporter.podspec +19 -0
- package/native/ios/VERSION +1 -0
- package/native/ios/packages/ios/Sources/CrumbCore/Crumb.swift +108 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbConfiguration.swift +212 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbDiagnostics.swift +158 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbFailureStacks.swift +94 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbInfrastructureHealthProbe.swift +110 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbJavaScriptCrashRecovery.swift +136 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbJavaScriptCrashStore.swift +508 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbJavaScriptFailureContext.swift +166 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbLogs.swift +138 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbPolicy.swift +336 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbRendering.swift +68 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbReportEnvelope.swift +666 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbReportQueue.swift +543 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbReportUploader.swift +304 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbRuntime.swift +306 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbSDKVersion.swift +5 -0
- package/native/ios/packages/ios/Sources/CrumbCore/CrumbScreenContext.swift +29 -0
- package/native/ios/packages/ios/Sources/CrumbUI/CrumbDesign.swift +151 -0
- package/native/ios/packages/ios/Sources/CrumbUI/CrumbLocalization.swift +23 -0
- package/native/ios/packages/ios/Sources/CrumbUI/CrumbQualityInstrumentation.swift +30 -0
- package/native/ios/packages/ios/Sources/CrumbUI/CrumbRenderingMonitor.swift +40 -0
- package/native/ios/packages/ios/Sources/CrumbUI/CrumbReporter.swift +1705 -0
- package/native/ios/packages/ios/Sources/CrumbUI/CrumbReporterLifecycle.swift +119 -0
- package/native/ios/packages/ios/Sources/CrumbUI/CrumbScreenshotArtifact.swift +186 -0
- package/native/ios/packages/ios/Sources/CrumbUI/CrumbShakeGestureRecognizer.swift +62 -0
- package/native/ios/packages/ios/Sources/CrumbUI/CrumbUploadCoordinator.swift +113 -0
- package/native/ios/packages/ios/Sources/CrumbUI/CrumbWorkspacePolicyCoordinator.swift +86 -0
- package/native/ios/packages/ios/Sources/CrumbUI/OnDemandDiagnosticsCollector.swift +269 -0
- package/native/ios/packages/ios/Sources/CrumbUI/OnDemandLogCollector.swift +213 -0
- package/native/ios/packages/ios/Sources/CrumbUI/Resources/en.lproj/Localizable.strings +75 -0
- package/native/ios/provenance.json +8 -0
- package/nitrogen/generated/android/c++/JHybridCrumbReactNativeSpec.cpp +32 -3
- package/nitrogen/generated/android/c++/JHybridCrumbReactNativeSpec.hpp +5 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/crumbsdk/reactnative/HybridCrumbReactNativeSpec.kt +17 -1
- package/nitrogen/generated/ios/CrumbReactNative-Swift-Cxx-Bridge.hpp +9 -0
- package/nitrogen/generated/ios/c++/HybridCrumbReactNativeSpecSwift.hpp +30 -2
- package/nitrogen/generated/ios/swift/HybridCrumbReactNativeSpec.swift +5 -1
- package/nitrogen/generated/ios/swift/HybridCrumbReactNativeSpec_cxx.swift +55 -2
- package/nitrogen/generated/shared/c++/HybridCrumbReactNativeSpec.cpp +4 -0
- package/nitrogen/generated/shared/c++/HybridCrumbReactNativeSpec.hpp +5 -1
- package/package.json +29 -5
- package/plugin/build-hooks.cjs +52 -0
- package/plugin/podfile.cjs +21 -0
- package/scripts/ios.rb +23 -0
- package/src/CrumbReactNative.nitro.ts +5 -1
- package/src/NativeCrumbReactNative.web.ts +4 -0
- package/src/build-release.ts +30 -0
- package/src/index.ts +221 -2
- package/src/javascript-crash-capture.ts +774 -0
- package/src/log-buffer.ts +27 -2
- package/src/screen-context.ts +154 -0
- package/src/types.ts +53 -0
- package/tools/cli.cjs +116 -0
- package/tools/config.cjs +72 -0
- package/tools/crumb.gradle +63 -0
- package/tools/expo-export.cjs +122 -0
- package/tools/ios.cjs +93 -0
- package/tools/node.cjs +21 -0
- package/tools/release.cjs +65 -0
- package/tools/setup.cjs +291 -0
- package/tools/upload.cjs +137 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import CrumbCore
|
|
2
|
+
#if canImport(UIKit) && canImport(CoreMotion)
|
|
3
|
+
import CoreMotion
|
|
4
|
+
import UIKit
|
|
5
|
+
|
|
6
|
+
public extension Crumb {
|
|
7
|
+
/// Installs foreground-only automatic reporter invocation. Call once after `start`.
|
|
8
|
+
@MainActor
|
|
9
|
+
@discardableResult
|
|
10
|
+
static func installReporter() -> Bool {
|
|
11
|
+
CrumbReporterLifecycle.shared.install()
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@MainActor
|
|
16
|
+
final class CrumbReporterLifecycle: NSObject {
|
|
17
|
+
static let shared = CrumbReporterLifecycle()
|
|
18
|
+
|
|
19
|
+
private let motionManager = CMMotionManager()
|
|
20
|
+
private var recognizer = CrumbShakeGestureRecognizer()
|
|
21
|
+
private var sampleTimer: Timer?
|
|
22
|
+
private var isInstalled = false
|
|
23
|
+
|
|
24
|
+
func install() -> Bool {
|
|
25
|
+
guard (try? Crumb.reportSettings()) != nil else { return false }
|
|
26
|
+
guard !isInstalled else {
|
|
27
|
+
startShakeMonitoringIfNeeded()
|
|
28
|
+
return true
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
isInstalled = true
|
|
32
|
+
CrumbRenderingMonitor.shared.install()
|
|
33
|
+
NotificationCenter.default.addObserver(
|
|
34
|
+
self,
|
|
35
|
+
selector: #selector(applicationDidBecomeActive),
|
|
36
|
+
name: UIApplication.didBecomeActiveNotification,
|
|
37
|
+
object: nil
|
|
38
|
+
)
|
|
39
|
+
NotificationCenter.default.addObserver(
|
|
40
|
+
self,
|
|
41
|
+
selector: #selector(applicationWillResignActive),
|
|
42
|
+
name: UIApplication.willResignActiveNotification,
|
|
43
|
+
object: nil
|
|
44
|
+
)
|
|
45
|
+
Task {
|
|
46
|
+
try? await CrumbReportQueue.shared.recoverInterruptedUploads()
|
|
47
|
+
}
|
|
48
|
+
CrumbWorkspacePolicyCoordinator.shared.install()
|
|
49
|
+
CrumbUploadCoordinator.shared.resume()
|
|
50
|
+
startShakeMonitoringIfNeeded()
|
|
51
|
+
return true
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
func reporterPresentationDidBegin() {
|
|
55
|
+
stopShakeMonitoring()
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
func reporterPresentationDidEnd() {
|
|
59
|
+
startShakeMonitoringIfNeeded()
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
func reportDidQueue() {
|
|
63
|
+
CrumbUploadCoordinator.shared.reportDidQueue()
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@objc private func applicationDidBecomeActive() {
|
|
67
|
+
CrumbWorkspacePolicyCoordinator.shared.refresh()
|
|
68
|
+
CrumbUploadCoordinator.shared.resume()
|
|
69
|
+
startShakeMonitoringIfNeeded()
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
@objc private func applicationWillResignActive() {
|
|
73
|
+
CrumbUploadCoordinator.shared.pause()
|
|
74
|
+
stopShakeMonitoring()
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
private func startShakeMonitoringIfNeeded() {
|
|
78
|
+
guard isInstalled,
|
|
79
|
+
UIApplication.shared.applicationState == .active,
|
|
80
|
+
let settings = try? Crumb.reportSettings(),
|
|
81
|
+
settings.invocation.contains(.shake),
|
|
82
|
+
motionManager.isAccelerometerAvailable,
|
|
83
|
+
sampleTimer == nil else {
|
|
84
|
+
return
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
recognizer.reset()
|
|
88
|
+
motionManager.accelerometerUpdateInterval = 0.1
|
|
89
|
+
motionManager.startAccelerometerUpdates()
|
|
90
|
+
let timer = Timer(timeInterval: 0.1, repeats: true) { [weak self] _ in
|
|
91
|
+
MainActor.assumeIsolated {
|
|
92
|
+
self?.sampleMotion()
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
RunLoop.main.add(timer, forMode: .common)
|
|
96
|
+
sampleTimer = timer
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
private func stopShakeMonitoring() {
|
|
100
|
+
sampleTimer?.invalidate()
|
|
101
|
+
sampleTimer = nil
|
|
102
|
+
motionManager.stopAccelerometerUpdates()
|
|
103
|
+
recognizer.reset()
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
private func sampleMotion() {
|
|
107
|
+
guard let acceleration = motionManager.accelerometerData?.acceleration else { return }
|
|
108
|
+
let didShake = recognizer.record(
|
|
109
|
+
accelerationX: acceleration.x,
|
|
110
|
+
y: acceleration.y,
|
|
111
|
+
z: acceleration.z,
|
|
112
|
+
at: ProcessInfo.processInfo.systemUptime
|
|
113
|
+
)
|
|
114
|
+
if didShake {
|
|
115
|
+
Crumb.show(trigger: .shake)
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
#endif
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import CrumbCore
|
|
2
|
+
#if canImport(UIKit)
|
|
3
|
+
import CryptoKit
|
|
4
|
+
import ObjectiveC
|
|
5
|
+
import UIKit
|
|
6
|
+
|
|
7
|
+
private enum CrumbScreenshotMaskAssociation {
|
|
8
|
+
nonisolated(unsafe) static var key: UInt8 = 0
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
public extension UIView {
|
|
12
|
+
/// Marks this view's visible bounds as an opaque region in Crumb screenshots.
|
|
13
|
+
var crumbMaskInScreenshots: Bool {
|
|
14
|
+
get {
|
|
15
|
+
(objc_getAssociatedObject(self, &CrumbScreenshotMaskAssociation.key) as? Bool) == true
|
|
16
|
+
}
|
|
17
|
+
set {
|
|
18
|
+
objc_setAssociatedObject(
|
|
19
|
+
self,
|
|
20
|
+
&CrumbScreenshotMaskAssociation.key,
|
|
21
|
+
newValue,
|
|
22
|
+
.OBJC_ASSOCIATION_RETAIN_NONATOMIC
|
|
23
|
+
)
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
package struct CrumbScreenshotArtifact {
|
|
29
|
+
package let preview: UIImage
|
|
30
|
+
package let encodedData: Data
|
|
31
|
+
package let manifest: CrumbArtifactManifest
|
|
32
|
+
package let maskingState: CrumbScreenshotMaskingState
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@MainActor
|
|
36
|
+
package enum CrumbScreenshotArtifactPipeline {
|
|
37
|
+
package static func capture(
|
|
38
|
+
window: UIWindow,
|
|
39
|
+
capture: CrumbCaptureOptions,
|
|
40
|
+
privacy: CrumbPrivacyOptions
|
|
41
|
+
) -> CrumbScreenshotArtifact? {
|
|
42
|
+
guard window.bounds.width > 0, window.bounds.height > 0 else { return nil }
|
|
43
|
+
|
|
44
|
+
let maskViews = sensitiveViews(
|
|
45
|
+
in: window,
|
|
46
|
+
includeTextInputs: privacy.maskAllTextInputs
|
|
47
|
+
)
|
|
48
|
+
let maskingConfigured = privacy.maskScreenshotsBeforeUpload
|
|
49
|
+
|| privacy.maskAllTextInputs
|
|
50
|
+
|| !maskViews.isEmpty
|
|
51
|
+
|
|
52
|
+
let format = UIGraphicsImageRendererFormat()
|
|
53
|
+
format.scale = window.screen.scale
|
|
54
|
+
format.opaque = true
|
|
55
|
+
let rendered = UIGraphicsImageRenderer(bounds: window.bounds, format: format).image { renderer in
|
|
56
|
+
window.layer.render(in: renderer.cgContext)
|
|
57
|
+
renderer.cgContext.setFillColor(UIColor.black.cgColor)
|
|
58
|
+
for view in maskViews where isVisible(view) {
|
|
59
|
+
let frame = view.convert(view.bounds, to: window)
|
|
60
|
+
.insetBy(dx: -3, dy: -3)
|
|
61
|
+
.intersection(window.bounds)
|
|
62
|
+
guard !frame.isNull, !frame.isEmpty else { continue }
|
|
63
|
+
renderer.cgContext.fill(frame)
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
guard let encoded = encode(
|
|
68
|
+
rendered,
|
|
69
|
+
maximumDimension: capture.maximumScreenshotDimension,
|
|
70
|
+
maximumBytes: capture.maximumScreenshotBytes
|
|
71
|
+
) else { return nil }
|
|
72
|
+
|
|
73
|
+
let digest = SHA256.hash(data: encoded.data).map { String(format: "%02x", $0) }.joined()
|
|
74
|
+
let token = UUID().uuidString.replacingOccurrences(of: "-", with: "")
|
|
75
|
+
let maskingState: CrumbScreenshotMaskingState = maskingConfigured ? .applied : .notApplicable
|
|
76
|
+
return CrumbScreenshotArtifact(
|
|
77
|
+
preview: encoded.image,
|
|
78
|
+
encodedData: encoded.data,
|
|
79
|
+
manifest: CrumbArtifactManifest(
|
|
80
|
+
id: "art_\(token)",
|
|
81
|
+
kind: "screenshot",
|
|
82
|
+
mimeType: "image/png",
|
|
83
|
+
byteSize: encoded.data.count,
|
|
84
|
+
sha256: digest,
|
|
85
|
+
redactionState: maskingConfigured ? "masked" : "not_applicable",
|
|
86
|
+
uploadID: "upl_\(token)"
|
|
87
|
+
),
|
|
88
|
+
maskingState: maskingState
|
|
89
|
+
)
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
private static func sensitiveViews(
|
|
93
|
+
in view: UIView,
|
|
94
|
+
includeTextInputs: Bool
|
|
95
|
+
) -> [UIView] {
|
|
96
|
+
var matches: [UIView] = []
|
|
97
|
+
if view.crumbMaskInScreenshots
|
|
98
|
+
|| (includeTextInputs && (view is UITextField || view is UITextView)) {
|
|
99
|
+
matches.append(view)
|
|
100
|
+
}
|
|
101
|
+
for child in view.subviews {
|
|
102
|
+
matches.append(contentsOf: sensitiveViews(in: child, includeTextInputs: includeTextInputs))
|
|
103
|
+
}
|
|
104
|
+
return matches
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
private static func isVisible(_ view: UIView) -> Bool {
|
|
108
|
+
!view.isHidden && view.alpha > 0 && view.window != nil && view.bounds.width > 0 && view.bounds.height > 0
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
private static func encode(
|
|
112
|
+
_ image: UIImage,
|
|
113
|
+
maximumDimension: Int,
|
|
114
|
+
maximumBytes: Int
|
|
115
|
+
) -> (image: UIImage, data: Data)? {
|
|
116
|
+
var current = resized(image, maximumDimension: maximumDimension)
|
|
117
|
+
for _ in 0..<10 {
|
|
118
|
+
guard let data = current.pngData() else { return nil }
|
|
119
|
+
if data.count <= maximumBytes {
|
|
120
|
+
return (current, data)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
let pixelSize = pixels(of: current)
|
|
124
|
+
guard pixelSize.width > 160, pixelSize.height > 160 else { return nil }
|
|
125
|
+
let ratio = sqrt(Double(maximumBytes) / Double(data.count)) * 0.9
|
|
126
|
+
let nextMaximum = max(160, Int(max(pixelSize.width, pixelSize.height) * min(0.9, ratio)))
|
|
127
|
+
guard nextMaximum < Int(max(pixelSize.width, pixelSize.height)) else { return nil }
|
|
128
|
+
current = resized(current, maximumDimension: nextMaximum)
|
|
129
|
+
}
|
|
130
|
+
return nil
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
private static func resized(_ image: UIImage, maximumDimension: Int) -> UIImage {
|
|
134
|
+
let pixelSize = pixels(of: image)
|
|
135
|
+
let longest = max(pixelSize.width, pixelSize.height)
|
|
136
|
+
guard longest > CGFloat(maximumDimension) else { return image }
|
|
137
|
+
|
|
138
|
+
let scale = CGFloat(maximumDimension) / longest
|
|
139
|
+
let target = CGSize(
|
|
140
|
+
width: max(1, floor(pixelSize.width * scale)),
|
|
141
|
+
height: max(1, floor(pixelSize.height * scale))
|
|
142
|
+
)
|
|
143
|
+
let format = UIGraphicsImageRendererFormat()
|
|
144
|
+
format.scale = 1
|
|
145
|
+
format.opaque = true
|
|
146
|
+
return UIGraphicsImageRenderer(size: target, format: format).image { _ in
|
|
147
|
+
image.draw(in: CGRect(origin: .zero, size: target))
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
private static func pixels(of image: UIImage) -> CGSize {
|
|
152
|
+
if let cgImage = image.cgImage {
|
|
153
|
+
return CGSize(width: cgImage.width, height: cgImage.height)
|
|
154
|
+
}
|
|
155
|
+
return CGSize(width: image.size.width * image.scale, height: image.size.height * image.scale)
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
#if canImport(SwiftUI)
|
|
160
|
+
import SwiftUI
|
|
161
|
+
|
|
162
|
+
public extension SwiftUI.View {
|
|
163
|
+
/// Marks this SwiftUI view's rendered bounds as an opaque region in Crumb screenshots.
|
|
164
|
+
func crumbMaskInScreenshots(_ masked: Bool = true) -> some SwiftUI.View {
|
|
165
|
+
overlay(CrumbScreenshotMaskRegion(masked: masked).allowsHitTesting(false))
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
private struct CrumbScreenshotMaskRegion: UIViewRepresentable {
|
|
170
|
+
let masked: Bool
|
|
171
|
+
|
|
172
|
+
func makeUIView(context: Context) -> UIView {
|
|
173
|
+
let view = UIView(frame: .zero)
|
|
174
|
+
view.backgroundColor = .clear
|
|
175
|
+
view.isAccessibilityElement = false
|
|
176
|
+
view.isUserInteractionEnabled = false
|
|
177
|
+
view.crumbMaskInScreenshots = masked
|
|
178
|
+
return view
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
func updateUIView(_ uiView: UIView, context: Context) {
|
|
182
|
+
uiView.crumbMaskInScreenshots = masked
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
#endif
|
|
186
|
+
#endif
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import Foundation
|
|
2
|
+
|
|
3
|
+
struct CrumbShakeGestureRecognizer {
|
|
4
|
+
private let thresholdG: Double
|
|
5
|
+
private let requiredHits: Int
|
|
6
|
+
private let hitWindow: TimeInterval
|
|
7
|
+
private let cooldown: TimeInterval
|
|
8
|
+
|
|
9
|
+
private var gravity = [Double](repeating: 0, count: 3)
|
|
10
|
+
private var hitTimes: [TimeInterval] = []
|
|
11
|
+
private var lastTriggerAt: TimeInterval?
|
|
12
|
+
|
|
13
|
+
init(
|
|
14
|
+
thresholdG: Double = 2.2,
|
|
15
|
+
requiredHits: Int = 2,
|
|
16
|
+
hitWindow: TimeInterval = 0.6,
|
|
17
|
+
cooldown: TimeInterval = 1.5
|
|
18
|
+
) {
|
|
19
|
+
self.thresholdG = thresholdG
|
|
20
|
+
self.requiredHits = requiredHits
|
|
21
|
+
self.hitWindow = hitWindow
|
|
22
|
+
self.cooldown = cooldown
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
mutating func record(
|
|
26
|
+
accelerationX: Double,
|
|
27
|
+
y: Double,
|
|
28
|
+
z: Double,
|
|
29
|
+
at timestamp: TimeInterval
|
|
30
|
+
) -> Bool {
|
|
31
|
+
let values = [accelerationX, y, z]
|
|
32
|
+
var magnitudeSquared = 0.0
|
|
33
|
+
for index in values.indices {
|
|
34
|
+
gravity[index] = 0.8 * gravity[index] + 0.2 * values[index]
|
|
35
|
+
let linear = values[index] - gravity[index]
|
|
36
|
+
magnitudeSquared += linear * linear
|
|
37
|
+
}
|
|
38
|
+
return record(linearMagnitudeG: magnitudeSquared.squareRoot(), at: timestamp)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
mutating func record(linearMagnitudeG: Double, at timestamp: TimeInterval) -> Bool {
|
|
42
|
+
guard linearMagnitudeG >= thresholdG else { return false }
|
|
43
|
+
hitTimes.append(timestamp)
|
|
44
|
+
hitTimes.removeAll { timestamp - $0 > hitWindow }
|
|
45
|
+
|
|
46
|
+
guard hitTimes.count >= requiredHits else { return false }
|
|
47
|
+
guard lastTriggerAt.map({ timestamp - $0 >= cooldown }) ?? true else {
|
|
48
|
+
hitTimes.removeAll()
|
|
49
|
+
return false
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
lastTriggerAt = timestamp
|
|
53
|
+
hitTimes.removeAll()
|
|
54
|
+
return true
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
mutating func reset() {
|
|
58
|
+
gravity = [Double](repeating: 0, count: 3)
|
|
59
|
+
hitTimes.removeAll()
|
|
60
|
+
lastTriggerAt = nil
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import CrumbCore
|
|
2
|
+
#if canImport(UIKit) && canImport(Network)
|
|
3
|
+
import Network
|
|
4
|
+
import UIKit
|
|
5
|
+
|
|
6
|
+
@MainActor
|
|
7
|
+
final class CrumbUploadCoordinator {
|
|
8
|
+
static let shared = CrumbUploadCoordinator()
|
|
9
|
+
|
|
10
|
+
private let monitorQueue = DispatchQueue(label: "dev.crumb.upload-connectivity")
|
|
11
|
+
private var worker: CrumbReportUploadWorker?
|
|
12
|
+
private var uploadTask: Task<Void, Never>?
|
|
13
|
+
private var retryTask: Task<Void, Never>?
|
|
14
|
+
private var pathMonitor: NWPathMonitor?
|
|
15
|
+
private var retryStep = 0
|
|
16
|
+
private var isForeground = false
|
|
17
|
+
|
|
18
|
+
private init() {}
|
|
19
|
+
|
|
20
|
+
func resume() {
|
|
21
|
+
isForeground = true
|
|
22
|
+
wake()
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
func pause() {
|
|
26
|
+
isForeground = false
|
|
27
|
+
retryTask?.cancel()
|
|
28
|
+
retryTask = nil
|
|
29
|
+
uploadTask?.cancel()
|
|
30
|
+
stopConnectivityMonitoring()
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
func reportDidQueue() {
|
|
34
|
+
wake()
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
private func wake() {
|
|
38
|
+
guard isForeground else { return }
|
|
39
|
+
if worker == nil {
|
|
40
|
+
guard let settings = try? Crumb.uploadSettings() else { return }
|
|
41
|
+
worker = CrumbReportUploadWorker(settings: settings)
|
|
42
|
+
}
|
|
43
|
+
guard let worker else { return }
|
|
44
|
+
|
|
45
|
+
startConnectivityMonitoring()
|
|
46
|
+
guard uploadTask == nil else { return }
|
|
47
|
+
retryTask?.cancel()
|
|
48
|
+
retryTask = nil
|
|
49
|
+
uploadTask = Task { [weak self] in
|
|
50
|
+
let result = await worker.runPass()
|
|
51
|
+
guard let self else { return }
|
|
52
|
+
self.uploadTask = nil
|
|
53
|
+
self.handle(result)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
private func handle(_ result: CrumbUploadPassResult) {
|
|
58
|
+
if result.remainingReportCount == 0 {
|
|
59
|
+
retryStep = 0
|
|
60
|
+
stopConnectivityMonitoring()
|
|
61
|
+
return
|
|
62
|
+
}
|
|
63
|
+
guard isForeground else { return }
|
|
64
|
+
if result.wasCancelled {
|
|
65
|
+
wake()
|
|
66
|
+
} else if result.shouldRetry {
|
|
67
|
+
scheduleRetry()
|
|
68
|
+
} else {
|
|
69
|
+
// Permanent failures remain durable, but do not consume battery in a retry loop.
|
|
70
|
+
stopConnectivityMonitoring()
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
private func scheduleRetry() {
|
|
75
|
+
let delays: [UInt64] = [1, 2, 4, 8, 16, 32, 60]
|
|
76
|
+
let seconds = delays[min(retryStep, delays.count - 1)]
|
|
77
|
+
retryStep = min(retryStep + 1, delays.count - 1)
|
|
78
|
+
retryTask?.cancel()
|
|
79
|
+
retryTask = Task { [weak self] in
|
|
80
|
+
do {
|
|
81
|
+
try await Task.sleep(nanoseconds: seconds * 1_000_000_000)
|
|
82
|
+
} catch {
|
|
83
|
+
return
|
|
84
|
+
}
|
|
85
|
+
guard let self else { return }
|
|
86
|
+
self.retryTask = nil
|
|
87
|
+
self.wake()
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
private func startConnectivityMonitoring() {
|
|
92
|
+
guard pathMonitor == nil else { return }
|
|
93
|
+
let monitor = NWPathMonitor()
|
|
94
|
+
monitor.pathUpdateHandler = { [weak self] path in
|
|
95
|
+
guard path.status == .satisfied else { return }
|
|
96
|
+
Task { @MainActor [weak self] in
|
|
97
|
+
guard let self, self.isForeground else { return }
|
|
98
|
+
self.retryStep = 0
|
|
99
|
+
self.retryTask?.cancel()
|
|
100
|
+
self.retryTask = nil
|
|
101
|
+
self.wake()
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
pathMonitor = monitor
|
|
105
|
+
monitor.start(queue: monitorQueue)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
private func stopConnectivityMonitoring() {
|
|
109
|
+
pathMonitor?.cancel()
|
|
110
|
+
pathMonitor = nil
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
#endif
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import CrumbCore
|
|
2
|
+
#if canImport(UIKit)
|
|
3
|
+
import Foundation
|
|
4
|
+
import UIKit
|
|
5
|
+
|
|
6
|
+
/// Loads only the small, versioned privacy policy document. The request is
|
|
7
|
+
/// best-effort and never delays reporter presentation or local report saving.
|
|
8
|
+
@MainActor
|
|
9
|
+
final class CrumbWorkspacePolicyCoordinator {
|
|
10
|
+
static let shared = CrumbWorkspacePolicyCoordinator()
|
|
11
|
+
|
|
12
|
+
private var isInstalled = false
|
|
13
|
+
private var fetchTask: Task<Void, Never>?
|
|
14
|
+
|
|
15
|
+
private init() {}
|
|
16
|
+
|
|
17
|
+
func install() {
|
|
18
|
+
guard !isInstalled else {
|
|
19
|
+
refresh()
|
|
20
|
+
return
|
|
21
|
+
}
|
|
22
|
+
isInstalled = true
|
|
23
|
+
loadCachedPolicy()
|
|
24
|
+
refresh()
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
func refresh() {
|
|
28
|
+
guard fetchTask == nil,
|
|
29
|
+
let settings = try? Crumb.workspacePolicyFetchSettings() else {
|
|
30
|
+
return
|
|
31
|
+
}
|
|
32
|
+
Crumb.beginWorkspacePolicyFetch()
|
|
33
|
+
fetchTask = Task { [weak self] in
|
|
34
|
+
await self?.fetch(settings)
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
private func loadCachedPolicy() {
|
|
39
|
+
guard let key = try? Crumb.workspacePolicyCacheKey(),
|
|
40
|
+
let data = UserDefaults.standard.data(forKey: key) else {
|
|
41
|
+
Crumb.markWorkspacePolicyUnavailable()
|
|
42
|
+
return
|
|
43
|
+
}
|
|
44
|
+
guard let policy = CrumbPolicyCache.load(data: data) else {
|
|
45
|
+
UserDefaults.standard.removeObject(forKey: key)
|
|
46
|
+
Crumb.markWorkspacePolicyUnavailable()
|
|
47
|
+
return
|
|
48
|
+
}
|
|
49
|
+
Crumb.applyWorkspacePolicy(policy, source: .cached)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
private func fetch(_ settings: CrumbPolicyFetchSettings) async {
|
|
53
|
+
defer { fetchTask = nil }
|
|
54
|
+
var request = URLRequest(
|
|
55
|
+
url: settings.url,
|
|
56
|
+
cachePolicy: .reloadIgnoringLocalCacheData,
|
|
57
|
+
timeoutInterval: settings.timeout
|
|
58
|
+
)
|
|
59
|
+
request.httpMethod = "GET"
|
|
60
|
+
request.setValue("Bearer \(settings.projectKey)", forHTTPHeaderField: "Authorization")
|
|
61
|
+
request.setValue("application/json", forHTTPHeaderField: "Accept")
|
|
62
|
+
|
|
63
|
+
do {
|
|
64
|
+
let (data, response) = try await URLSession.shared.data(for: request)
|
|
65
|
+
guard data.count <= CrumbPolicyCache.maximumBytes,
|
|
66
|
+
let response = response as? HTTPURLResponse,
|
|
67
|
+
(200..<300).contains(response.statusCode) else {
|
|
68
|
+
throw PolicyFetchError.invalidResponse
|
|
69
|
+
}
|
|
70
|
+
let policy = try CrumbWorkspacePolicy.decode(data)
|
|
71
|
+
let accepted = Crumb.applyWorkspacePolicy(policy, source: .fresh)
|
|
72
|
+
if accepted, let key = try? Crumb.workspacePolicyCacheKey() {
|
|
73
|
+
UserDefaults.standard.set(data, forKey: key)
|
|
74
|
+
}
|
|
75
|
+
} catch is CancellationError {
|
|
76
|
+
return
|
|
77
|
+
} catch {
|
|
78
|
+
Crumb.markWorkspacePolicyUnavailable()
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
private enum PolicyFetchError: Error {
|
|
84
|
+
case invalidResponse
|
|
85
|
+
}
|
|
86
|
+
#endif
|