@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.
Files changed (373) hide show
  1. package/README.md +280 -8
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/margelo/nitro/crumbsdk/reactnative/CrumbReactNative.kt +121 -3
  4. package/app.plugin.js +52 -0
  5. package/ios/CrumbReactNative.swift +135 -3
  6. package/lib/module/NativeCrumbReactNative.web.js +5 -1
  7. package/lib/module/NativeCrumbReactNative.web.js.map +1 -1
  8. package/lib/module/build-release.js +19 -0
  9. package/lib/module/build-release.js.map +1 -0
  10. package/lib/module/index.js +94 -2
  11. package/lib/module/index.js.map +1 -1
  12. package/lib/module/javascript-crash-capture.js +497 -0
  13. package/lib/module/javascript-crash-capture.js.map +1 -0
  14. package/lib/module/log-buffer.js +22 -2
  15. package/lib/module/log-buffer.js.map +1 -1
  16. package/lib/module/screen-context.js +127 -0
  17. package/lib/module/screen-context.js.map +1 -0
  18. package/lib/typescript/src/CrumbReactNative.nitro.d.ts +5 -1
  19. package/lib/typescript/src/CrumbReactNative.nitro.d.ts.map +1 -1
  20. package/lib/typescript/src/NativeCrumbReactNative.web.d.ts.map +1 -1
  21. package/lib/typescript/src/build-release.d.ts +6 -0
  22. package/lib/typescript/src/build-release.d.ts.map +1 -0
  23. package/lib/typescript/src/index.d.ts +8 -2
  24. package/lib/typescript/src/index.d.ts.map +1 -1
  25. package/lib/typescript/src/javascript-crash-capture.d.ts +74 -0
  26. package/lib/typescript/src/javascript-crash-capture.d.ts.map +1 -0
  27. package/lib/typescript/src/log-buffer.d.ts +1 -0
  28. package/lib/typescript/src/log-buffer.d.ts.map +1 -1
  29. package/lib/typescript/src/screen-context.d.ts +19 -0
  30. package/lib/typescript/src/screen-context.d.ts.map +1 -0
  31. package/lib/typescript/src/types.d.ts +38 -0
  32. package/lib/typescript/src/types.d.ts.map +1 -1
  33. package/metro.cjs +35 -0
  34. package/metro.d.cts +2 -0
  35. package/native/ios/CrumbSDKCore.podspec +28 -0
  36. package/native/ios/CrumbSDKUI.podspec +38 -0
  37. package/native/ios/LICENSE +201 -0
  38. package/native/ios/PLCrashReporter/CrashReporter.xcframework/Info.plist +96 -0
  39. package/native/ios/PLCrashReporter/CrashReporter.xcframework/PrivacyInfo.xcprivacy +39 -0
  40. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/CrashReporter +0 -0
  41. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/CrashReporter.h +366 -0
  42. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashFeatureConfig.h +108 -0
  43. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashMacros.h +143 -0
  44. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashNamespace.h +320 -0
  45. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReport.h +193 -0
  46. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportApplicationInfo.h +52 -0
  47. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportBinaryImageInfo.h +76 -0
  48. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportExceptionInfo.h +59 -0
  49. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportFormatter.h +55 -0
  50. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportMachExceptionInfo.h +41 -0
  51. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportMachineInfo.h +64 -0
  52. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportProcessInfo.h +80 -0
  53. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportProcessorInfo.h +64 -0
  54. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportRegisterInfo.h +45 -0
  55. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportSignalInfo.h +50 -0
  56. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportStackFrameInfo.h +50 -0
  57. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportSymbolInfo.h +51 -0
  58. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportSystemInfo.h +158 -0
  59. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportTextFormatter.h +59 -0
  60. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReportThreadInfo.h +75 -0
  61. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReporter.h +131 -0
  62. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Headers/PLCrashReporterConfig.h +193 -0
  63. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Info.plist +0 -0
  64. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/Modules/module.modulemap +8 -0
  65. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_arm64e/CrashReporter.framework/PrivacyInfo.xcprivacy +39 -0
  66. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/CrashReporter +0 -0
  67. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/CrashReporter.h +366 -0
  68. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashFeatureConfig.h +108 -0
  69. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashMacros.h +143 -0
  70. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashNamespace.h +320 -0
  71. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReport.h +193 -0
  72. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportApplicationInfo.h +52 -0
  73. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportBinaryImageInfo.h +76 -0
  74. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportExceptionInfo.h +59 -0
  75. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportFormatter.h +55 -0
  76. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportMachExceptionInfo.h +41 -0
  77. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportMachineInfo.h +64 -0
  78. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportProcessInfo.h +80 -0
  79. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportProcessorInfo.h +64 -0
  80. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportRegisterInfo.h +45 -0
  81. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportSignalInfo.h +50 -0
  82. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportStackFrameInfo.h +50 -0
  83. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportSymbolInfo.h +51 -0
  84. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportSystemInfo.h +158 -0
  85. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportTextFormatter.h +59 -0
  86. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReportThreadInfo.h +75 -0
  87. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReporter.h +131 -0
  88. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Headers/PLCrashReporterConfig.h +193 -0
  89. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Modules/module.modulemap +8 -0
  90. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Resources/Info.plist +52 -0
  91. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Resources/PrivacyInfo.xcprivacy +39 -0
  92. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/CrashReporter +0 -0
  93. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/CrashReporter.h +366 -0
  94. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashFeatureConfig.h +108 -0
  95. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashMacros.h +143 -0
  96. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashNamespace.h +320 -0
  97. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReport.h +193 -0
  98. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportApplicationInfo.h +52 -0
  99. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportBinaryImageInfo.h +76 -0
  100. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportExceptionInfo.h +59 -0
  101. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportFormatter.h +55 -0
  102. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachExceptionInfo.h +41 -0
  103. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachineInfo.h +64 -0
  104. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessInfo.h +80 -0
  105. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessorInfo.h +64 -0
  106. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportRegisterInfo.h +45 -0
  107. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportSignalInfo.h +50 -0
  108. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportStackFrameInfo.h +50 -0
  109. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportSymbolInfo.h +51 -0
  110. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportSystemInfo.h +158 -0
  111. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportTextFormatter.h +59 -0
  112. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReportThreadInfo.h +75 -0
  113. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReporter.h +131 -0
  114. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Headers/PLCrashReporterConfig.h +193 -0
  115. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Modules/module.modulemap +8 -0
  116. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Resources/Info.plist +52 -0
  117. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/A/Resources/PrivacyInfo.xcprivacy +39 -0
  118. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/CrashReporter +0 -0
  119. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/CrashReporter.h +366 -0
  120. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashFeatureConfig.h +108 -0
  121. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashMacros.h +143 -0
  122. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashNamespace.h +320 -0
  123. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReport.h +193 -0
  124. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportApplicationInfo.h +52 -0
  125. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportBinaryImageInfo.h +76 -0
  126. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportExceptionInfo.h +59 -0
  127. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportFormatter.h +55 -0
  128. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportMachExceptionInfo.h +41 -0
  129. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportMachineInfo.h +64 -0
  130. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportProcessInfo.h +80 -0
  131. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportProcessorInfo.h +64 -0
  132. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportRegisterInfo.h +45 -0
  133. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportSignalInfo.h +50 -0
  134. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportStackFrameInfo.h +50 -0
  135. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportSymbolInfo.h +51 -0
  136. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportSystemInfo.h +158 -0
  137. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportTextFormatter.h +59 -0
  138. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReportThreadInfo.h +75 -0
  139. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReporter.h +131 -0
  140. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Headers/PLCrashReporterConfig.h +193 -0
  141. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Modules/module.modulemap +8 -0
  142. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Resources/Info.plist +52 -0
  143. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-maccatalyst/CrashReporter.framework/Versions/Current/Resources/PrivacyInfo.xcprivacy +39 -0
  144. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/CrashReporter +0 -0
  145. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/CrashReporter.h +366 -0
  146. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashFeatureConfig.h +108 -0
  147. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashMacros.h +143 -0
  148. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashNamespace.h +320 -0
  149. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReport.h +193 -0
  150. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportApplicationInfo.h +52 -0
  151. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportBinaryImageInfo.h +76 -0
  152. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportExceptionInfo.h +59 -0
  153. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportFormatter.h +55 -0
  154. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportMachExceptionInfo.h +41 -0
  155. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportMachineInfo.h +64 -0
  156. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportProcessInfo.h +80 -0
  157. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportProcessorInfo.h +64 -0
  158. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportRegisterInfo.h +45 -0
  159. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportSignalInfo.h +50 -0
  160. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportStackFrameInfo.h +50 -0
  161. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportSymbolInfo.h +51 -0
  162. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportSystemInfo.h +158 -0
  163. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportTextFormatter.h +59 -0
  164. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportThreadInfo.h +75 -0
  165. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReporter.h +131 -0
  166. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReporterConfig.h +193 -0
  167. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Info.plist +0 -0
  168. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/Modules/module.modulemap +8 -0
  169. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/PrivacyInfo.xcprivacy +39 -0
  170. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeDirectory +0 -0
  171. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeRequirements +0 -0
  172. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeRequirements-1 +0 -0
  173. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeResources +462 -0
  174. package/native/ios/PLCrashReporter/CrashReporter.xcframework/ios-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeSignature +0 -0
  175. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/CrashReporter +0 -0
  176. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/CrashReporter.h +366 -0
  177. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashFeatureConfig.h +108 -0
  178. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashMacros.h +143 -0
  179. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashNamespace.h +320 -0
  180. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReport.h +193 -0
  181. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportApplicationInfo.h +52 -0
  182. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportBinaryImageInfo.h +76 -0
  183. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportExceptionInfo.h +59 -0
  184. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportFormatter.h +55 -0
  185. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportMachExceptionInfo.h +41 -0
  186. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportMachineInfo.h +64 -0
  187. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportProcessInfo.h +80 -0
  188. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportProcessorInfo.h +64 -0
  189. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportRegisterInfo.h +45 -0
  190. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportSignalInfo.h +50 -0
  191. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportStackFrameInfo.h +50 -0
  192. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportSymbolInfo.h +51 -0
  193. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportSystemInfo.h +158 -0
  194. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportTextFormatter.h +59 -0
  195. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReportThreadInfo.h +75 -0
  196. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReporter.h +131 -0
  197. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Headers/PLCrashReporterConfig.h +193 -0
  198. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Modules/module.modulemap +8 -0
  199. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Resources/Info.plist +48 -0
  200. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Resources/PrivacyInfo.xcprivacy +39 -0
  201. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/CrashReporter +0 -0
  202. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/CrashReporter.h +366 -0
  203. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashFeatureConfig.h +108 -0
  204. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashMacros.h +143 -0
  205. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashNamespace.h +320 -0
  206. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReport.h +193 -0
  207. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportApplicationInfo.h +52 -0
  208. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportBinaryImageInfo.h +76 -0
  209. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportExceptionInfo.h +59 -0
  210. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportFormatter.h +55 -0
  211. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachExceptionInfo.h +41 -0
  212. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachineInfo.h +64 -0
  213. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessInfo.h +80 -0
  214. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessorInfo.h +64 -0
  215. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportRegisterInfo.h +45 -0
  216. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportSignalInfo.h +50 -0
  217. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportStackFrameInfo.h +50 -0
  218. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportSymbolInfo.h +51 -0
  219. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportSystemInfo.h +158 -0
  220. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportTextFormatter.h +59 -0
  221. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReportThreadInfo.h +75 -0
  222. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReporter.h +131 -0
  223. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Headers/PLCrashReporterConfig.h +193 -0
  224. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Modules/module.modulemap +8 -0
  225. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Resources/Info.plist +48 -0
  226. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/A/Resources/PrivacyInfo.xcprivacy +39 -0
  227. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/CrashReporter +0 -0
  228. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/CrashReporter.h +366 -0
  229. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashFeatureConfig.h +108 -0
  230. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashMacros.h +143 -0
  231. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashNamespace.h +320 -0
  232. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReport.h +193 -0
  233. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportApplicationInfo.h +52 -0
  234. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportBinaryImageInfo.h +76 -0
  235. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportExceptionInfo.h +59 -0
  236. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportFormatter.h +55 -0
  237. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportMachExceptionInfo.h +41 -0
  238. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportMachineInfo.h +64 -0
  239. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportProcessInfo.h +80 -0
  240. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportProcessorInfo.h +64 -0
  241. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportRegisterInfo.h +45 -0
  242. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportSignalInfo.h +50 -0
  243. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportStackFrameInfo.h +50 -0
  244. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportSymbolInfo.h +51 -0
  245. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportSystemInfo.h +158 -0
  246. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportTextFormatter.h +59 -0
  247. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReportThreadInfo.h +75 -0
  248. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReporter.h +131 -0
  249. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Headers/PLCrashReporterConfig.h +193 -0
  250. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Modules/module.modulemap +8 -0
  251. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Resources/Info.plist +48 -0
  252. package/native/ios/PLCrashReporter/CrashReporter.xcframework/macos-arm64_x86_64/CrashReporter.framework/Versions/Current/Resources/PrivacyInfo.xcprivacy +39 -0
  253. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/CrashReporter +0 -0
  254. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/CrashReporter.h +366 -0
  255. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashFeatureConfig.h +108 -0
  256. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashMacros.h +143 -0
  257. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashNamespace.h +320 -0
  258. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReport.h +193 -0
  259. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportApplicationInfo.h +52 -0
  260. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportBinaryImageInfo.h +76 -0
  261. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportExceptionInfo.h +59 -0
  262. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportFormatter.h +55 -0
  263. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportMachExceptionInfo.h +41 -0
  264. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportMachineInfo.h +64 -0
  265. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportProcessInfo.h +80 -0
  266. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportProcessorInfo.h +64 -0
  267. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportRegisterInfo.h +45 -0
  268. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportSignalInfo.h +50 -0
  269. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportStackFrameInfo.h +50 -0
  270. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportSymbolInfo.h +51 -0
  271. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportSystemInfo.h +158 -0
  272. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportTextFormatter.h +59 -0
  273. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReportThreadInfo.h +75 -0
  274. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReporter.h +131 -0
  275. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Headers/PLCrashReporterConfig.h +193 -0
  276. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Info.plist +0 -0
  277. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/Modules/module.modulemap +8 -0
  278. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64/CrashReporter.framework/PrivacyInfo.xcprivacy +39 -0
  279. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/CrashReporter +0 -0
  280. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/CrashReporter.h +366 -0
  281. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashFeatureConfig.h +108 -0
  282. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashMacros.h +143 -0
  283. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashNamespace.h +320 -0
  284. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReport.h +193 -0
  285. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportApplicationInfo.h +52 -0
  286. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportBinaryImageInfo.h +76 -0
  287. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportExceptionInfo.h +59 -0
  288. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportFormatter.h +55 -0
  289. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportMachExceptionInfo.h +41 -0
  290. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportMachineInfo.h +64 -0
  291. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportProcessInfo.h +80 -0
  292. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportProcessorInfo.h +64 -0
  293. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportRegisterInfo.h +45 -0
  294. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportSignalInfo.h +50 -0
  295. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportStackFrameInfo.h +50 -0
  296. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportSymbolInfo.h +51 -0
  297. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportSystemInfo.h +158 -0
  298. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportTextFormatter.h +59 -0
  299. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReportThreadInfo.h +75 -0
  300. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReporter.h +131 -0
  301. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Headers/PLCrashReporterConfig.h +193 -0
  302. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Info.plist +0 -0
  303. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/Modules/module.modulemap +8 -0
  304. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/PrivacyInfo.xcprivacy +39 -0
  305. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeDirectory +0 -0
  306. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeRequirements +0 -0
  307. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeRequirements-1 +0 -0
  308. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeResources +462 -0
  309. package/native/ios/PLCrashReporter/CrashReporter.xcframework/tvos-arm64_x86_64-simulator/CrashReporter.framework/_CodeSignature/CodeSignature +0 -0
  310. package/native/ios/PLCrashReporter/LICENSE.txt +54 -0
  311. package/native/ios/PLCrashReporter/PLCrashReporter.podspec +19 -0
  312. package/native/ios/VERSION +1 -0
  313. package/native/ios/packages/ios/Sources/CrumbCore/Crumb.swift +108 -0
  314. package/native/ios/packages/ios/Sources/CrumbCore/CrumbConfiguration.swift +212 -0
  315. package/native/ios/packages/ios/Sources/CrumbCore/CrumbDiagnostics.swift +158 -0
  316. package/native/ios/packages/ios/Sources/CrumbCore/CrumbFailureStacks.swift +94 -0
  317. package/native/ios/packages/ios/Sources/CrumbCore/CrumbInfrastructureHealthProbe.swift +110 -0
  318. package/native/ios/packages/ios/Sources/CrumbCore/CrumbJavaScriptCrashRecovery.swift +136 -0
  319. package/native/ios/packages/ios/Sources/CrumbCore/CrumbJavaScriptCrashStore.swift +508 -0
  320. package/native/ios/packages/ios/Sources/CrumbCore/CrumbJavaScriptFailureContext.swift +166 -0
  321. package/native/ios/packages/ios/Sources/CrumbCore/CrumbLogs.swift +138 -0
  322. package/native/ios/packages/ios/Sources/CrumbCore/CrumbPolicy.swift +336 -0
  323. package/native/ios/packages/ios/Sources/CrumbCore/CrumbRendering.swift +68 -0
  324. package/native/ios/packages/ios/Sources/CrumbCore/CrumbReportEnvelope.swift +666 -0
  325. package/native/ios/packages/ios/Sources/CrumbCore/CrumbReportQueue.swift +543 -0
  326. package/native/ios/packages/ios/Sources/CrumbCore/CrumbReportUploader.swift +304 -0
  327. package/native/ios/packages/ios/Sources/CrumbCore/CrumbRuntime.swift +306 -0
  328. package/native/ios/packages/ios/Sources/CrumbCore/CrumbSDKVersion.swift +5 -0
  329. package/native/ios/packages/ios/Sources/CrumbCore/CrumbScreenContext.swift +29 -0
  330. package/native/ios/packages/ios/Sources/CrumbUI/CrumbDesign.swift +151 -0
  331. package/native/ios/packages/ios/Sources/CrumbUI/CrumbLocalization.swift +23 -0
  332. package/native/ios/packages/ios/Sources/CrumbUI/CrumbQualityInstrumentation.swift +30 -0
  333. package/native/ios/packages/ios/Sources/CrumbUI/CrumbRenderingMonitor.swift +40 -0
  334. package/native/ios/packages/ios/Sources/CrumbUI/CrumbReporter.swift +1705 -0
  335. package/native/ios/packages/ios/Sources/CrumbUI/CrumbReporterLifecycle.swift +119 -0
  336. package/native/ios/packages/ios/Sources/CrumbUI/CrumbScreenshotArtifact.swift +186 -0
  337. package/native/ios/packages/ios/Sources/CrumbUI/CrumbShakeGestureRecognizer.swift +62 -0
  338. package/native/ios/packages/ios/Sources/CrumbUI/CrumbUploadCoordinator.swift +113 -0
  339. package/native/ios/packages/ios/Sources/CrumbUI/CrumbWorkspacePolicyCoordinator.swift +86 -0
  340. package/native/ios/packages/ios/Sources/CrumbUI/OnDemandDiagnosticsCollector.swift +269 -0
  341. package/native/ios/packages/ios/Sources/CrumbUI/OnDemandLogCollector.swift +213 -0
  342. package/native/ios/packages/ios/Sources/CrumbUI/Resources/en.lproj/Localizable.strings +75 -0
  343. package/native/ios/provenance.json +8 -0
  344. package/nitrogen/generated/android/c++/JHybridCrumbReactNativeSpec.cpp +32 -3
  345. package/nitrogen/generated/android/c++/JHybridCrumbReactNativeSpec.hpp +5 -1
  346. package/nitrogen/generated/android/kotlin/com/margelo/nitro/crumbsdk/reactnative/HybridCrumbReactNativeSpec.kt +17 -1
  347. package/nitrogen/generated/ios/CrumbReactNative-Swift-Cxx-Bridge.hpp +9 -0
  348. package/nitrogen/generated/ios/c++/HybridCrumbReactNativeSpecSwift.hpp +30 -2
  349. package/nitrogen/generated/ios/swift/HybridCrumbReactNativeSpec.swift +5 -1
  350. package/nitrogen/generated/ios/swift/HybridCrumbReactNativeSpec_cxx.swift +55 -2
  351. package/nitrogen/generated/shared/c++/HybridCrumbReactNativeSpec.cpp +4 -0
  352. package/nitrogen/generated/shared/c++/HybridCrumbReactNativeSpec.hpp +5 -1
  353. package/package.json +29 -5
  354. package/plugin/build-hooks.cjs +52 -0
  355. package/plugin/podfile.cjs +21 -0
  356. package/scripts/ios.rb +23 -0
  357. package/src/CrumbReactNative.nitro.ts +5 -1
  358. package/src/NativeCrumbReactNative.web.ts +4 -0
  359. package/src/build-release.ts +30 -0
  360. package/src/index.ts +221 -2
  361. package/src/javascript-crash-capture.ts +774 -0
  362. package/src/log-buffer.ts +27 -2
  363. package/src/screen-context.ts +154 -0
  364. package/src/types.ts +53 -0
  365. package/tools/cli.cjs +116 -0
  366. package/tools/config.cjs +72 -0
  367. package/tools/crumb.gradle +63 -0
  368. package/tools/expo-export.cjs +122 -0
  369. package/tools/ios.cjs +93 -0
  370. package/tools/node.cjs +21 -0
  371. package/tools/release.cjs +65 -0
  372. package/tools/setup.cjs +291 -0
  373. package/tools/upload.cjs +137 -0
@@ -0,0 +1,166 @@
1
+ import Foundation
2
+ #if canImport(Darwin)
3
+ import Darwin
4
+ #endif
5
+ #if canImport(Network)
6
+ import Network
7
+ #endif
8
+
9
+ /// Local persistence only. Native stack evidence uses envelope 1.1.
10
+ package struct CrumbJavaScriptFailureContext: Codable, Equatable, Sendable {
11
+ package var screenContext: CrumbScreenContext? = nil
12
+ package var rendering: CrumbRenderingSnapshot? = nil
13
+ package var stacks: CrumbFailureStacks? = nil
14
+ package let capturedAt: Date
15
+ package let processName: String
16
+ package let processID: Int32
17
+ package let cpuUsagePercent: Double?
18
+ package let residentMemoryBytes: UInt64?
19
+ package let physicalFootprintBytes: UInt64?
20
+ package let threadCount: Int?
21
+ package let thermalState: String
22
+ package let networkStatus: String
23
+ package let networkTransport: String
24
+ package let networkExpensive: Bool
25
+ package let networkConstrained: Bool
26
+
27
+ package func validated() -> Self? {
28
+ guard capturedAt.timeIntervalSince1970.isFinite,
29
+ capturedAt.timeIntervalSince1970 > 0, processID > 0,
30
+ !processName.isEmpty, processName.utf8.count <= 128,
31
+ cpuUsagePercent.map({ $0.isFinite && $0 >= 0 && $0 <= 100_000 }) ?? true,
32
+ threadCount.map({ $0 >= 0 && $0 <= 10_000 }) ?? true,
33
+ ["nominal", "fair", "serious", "critical", "unknown", "unavailable"].contains(thermalState),
34
+ ["reachable", "unreachable", "unknown"].contains(networkStatus),
35
+ ["wifi", "cellular", "ethernet", "other", "none", "unknown"].contains(networkTransport)
36
+ else { return nil }
37
+ var result = self
38
+ result.stacks = stacks?.validated()
39
+ result.rendering = rendering?.validated()
40
+ result.screenContext = screenContext?.validated()
41
+ return result
42
+ }
43
+
44
+ package func diagnostics() -> CrumbDiagnosticsSnapshot {
45
+ CrumbDiagnosticsSnapshot(
46
+ capturedAt: capturedAt, location: "react_native_javascript_failure",
47
+ processName: CrumbLogSanitizer.sanitize(processName), processID: processID,
48
+ cpuUsagePercent: cpuUsagePercent, residentMemoryBytes: residentMemoryBytes,
49
+ physicalFootprintBytes: physicalFootprintBytes, thermalState: thermalState,
50
+ threadCount: threadCount ?? 0, busiestThreads: [], gpuStatus: "unavailable_on_demand",
51
+ network: CrumbNetworkDiagnostic(status: networkStatus, transport: networkTransport,
52
+ cellularGeneration: nil, isExpensive: networkExpensive,
53
+ isConstrained: networkConstrained, healthCheck: nil),
54
+ logs: CrumbLogDiagnostic(status: .unavailable, sources: [], entries: [],
55
+ truncated: false, droppedEntryCount: 0, failures: []),
56
+ stackTraces: stacks?.diagnostic ?? CrumbStackTraceDiagnostic(status: .unavailable, scope: "none",
57
+ threads: [], truncated: false, unavailableReason: "native_stacks_not_captured_during_javascript_failure"), rendering: rendering, screenContext: screenContext
58
+ )
59
+ }
60
+
61
+ /// Only invoked for an opted-in JavaScript handoff. No provider callbacks or HTTP probes.
62
+ package static func capture(settings: CrumbReportSettings) -> Self {
63
+ let capturedAt = Date()
64
+ let rendering = CrumbRenderingBuffer.capture(settings: settings)
65
+ let performance = settings.evidence.contains(.performance)
66
+ let memory = performance ? memorySnapshot() : nil
67
+ let threads = performance ? threadSnapshot() : (nil, nil)
68
+ let network = settings.evidence.contains(.network) ? networkSnapshot() : nil
69
+ return Self(screenContext: settings.screenContext, rendering: rendering, stacks: settings.evidence.contains(.threadStacks) ? CrumbFailureStacks.capture() : nil, capturedAt: capturedAt,
70
+ processName: String(CrumbLogSanitizer.sanitize(ProcessInfo.processInfo.processName).prefix(128)),
71
+ processID: ProcessInfo.processInfo.processIdentifier,
72
+ cpuUsagePercent: threads.1, residentMemoryBytes: memory?.0,
73
+ physicalFootprintBytes: memory?.1, threadCount: threads.0,
74
+ thermalState: performance ? thermalSnapshot() : "unavailable",
75
+ networkStatus: network?.0 ?? "unknown", networkTransport: network?.1 ?? "unknown",
76
+ networkExpensive: network?.2 ?? false, networkConstrained: network?.3 ?? false)
77
+ }
78
+
79
+ private static func memorySnapshot() -> (UInt64, UInt64)? {
80
+ #if canImport(Darwin)
81
+ var info = task_vm_info_data_t()
82
+ var count = mach_msg_type_number_t(MemoryLayout<task_vm_info_data_t>.size / MemoryLayout<natural_t>.size)
83
+ let result = withUnsafeMutablePointer(to: &info) { pointer in
84
+ pointer.withMemoryRebound(to: integer_t.self, capacity: Int(count)) {
85
+ task_info(mach_task_self_, task_flavor_t(TASK_VM_INFO), $0, &count)
86
+ }
87
+ }
88
+ return result == KERN_SUCCESS ? (UInt64(info.resident_size), UInt64(info.phys_footprint)) : nil
89
+ #else
90
+ return nil
91
+ #endif
92
+ }
93
+
94
+ private static func threadSnapshot() -> (Int?, Double?) {
95
+ #if canImport(Darwin)
96
+ var list: thread_act_array_t?
97
+ var count: mach_msg_type_number_t = 0
98
+ guard task_threads(mach_task_self_, &list, &count) == KERN_SUCCESS, let list else { return (nil, nil) }
99
+ defer {
100
+ for index in 0..<Int(count) { mach_port_deallocate(mach_task_self_, list[index]) }
101
+ vm_deallocate(mach_task_self_, vm_address_t(UInt(bitPattern: list)),
102
+ vm_size_t(Int(count) * MemoryLayout<thread_t>.stride))
103
+ }
104
+ // Count all threads, but never perform an unbounded per-thread diagnostic walk.
105
+ guard count <= 256 else { return (Int(count), nil) }
106
+ var cpu = 0.0
107
+ for index in 0..<Int(count) {
108
+ var info = thread_basic_info_data_t()
109
+ var infoCount = mach_msg_type_number_t(MemoryLayout<thread_basic_info_data_t>.size / MemoryLayout<integer_t>.size)
110
+ let result = withUnsafeMutablePointer(to: &info) { pointer in
111
+ pointer.withMemoryRebound(to: integer_t.self, capacity: Int(infoCount)) {
112
+ thread_info(list[index], thread_flavor_t(THREAD_BASIC_INFO), $0, &infoCount)
113
+ }
114
+ }
115
+ guard result == KERN_SUCCESS else { return (Int(count), nil) }
116
+ if info.flags & TH_FLAGS_IDLE == 0 { cpu += Double(info.cpu_usage) / Double(TH_USAGE_SCALE) * 100 }
117
+ }
118
+ return (Int(count), cpu)
119
+ #else
120
+ return (nil, nil)
121
+ #endif
122
+ }
123
+
124
+ private static func thermalSnapshot() -> String {
125
+ #if canImport(Darwin)
126
+ switch ProcessInfo.processInfo.thermalState {
127
+ case .nominal: return "nominal"
128
+ case .fair: return "fair"
129
+ case .serious: return "serious"
130
+ case .critical: return "critical"
131
+ @unknown default: return "unknown"
132
+ }
133
+ #else
134
+ return "unavailable"
135
+ #endif
136
+ }
137
+
138
+ private static func networkSnapshot() -> (String, String, Bool, Bool)? {
139
+ #if canImport(Network)
140
+ let monitor = NWPathMonitor()
141
+ let result = FailurePathBox()
142
+ let ready = DispatchSemaphore(value: 0)
143
+ monitor.pathUpdateHandler = { path in result.set(path); ready.signal() }
144
+ monitor.start(queue: DispatchQueue(label: "dev.crumb.failure-connectivity"))
145
+ defer { monitor.cancel() }
146
+ // A local connectivity observation only; no network requests and no long wait on failure.
147
+ guard ready.wait(timeout: .now() + .milliseconds(30)) == .success, let path = result.get() else { return nil }
148
+ let transport = path.usesInterfaceType(.wifi) ? "wifi" :
149
+ path.usesInterfaceType(.cellular) ? "cellular" :
150
+ path.usesInterfaceType(.wiredEthernet) ? "ethernet" :
151
+ path.status == .satisfied ? "other" : "none"
152
+ return (path.status == .satisfied ? "reachable" : "unreachable", transport, path.isExpensive, path.isConstrained)
153
+ #else
154
+ return nil
155
+ #endif
156
+ }
157
+ }
158
+
159
+ #if canImport(Network)
160
+ private final class FailurePathBox: @unchecked Sendable {
161
+ private let lock = NSLock()
162
+ private var value: NWPath?
163
+ func set(_ path: NWPath) { lock.lock(); defer { lock.unlock() }; value = path }
164
+ func get() -> NWPath? { lock.lock(); defer { lock.unlock() }; return value }
165
+ }
166
+ #endif
@@ -0,0 +1,138 @@
1
+ import Foundation
2
+
3
+ public enum CrumbLogLevel: String, Equatable, Sendable {
4
+ case debug
5
+ case info
6
+ case notice
7
+ case warning
8
+ case error
9
+ case fault
10
+ }
11
+
12
+ public struct CrumbLogEntry: Equatable, Sendable {
13
+ public let timestamp: Date
14
+ public let level: CrumbLogLevel
15
+ public let source: String
16
+ public let category: String
17
+ public let message: String
18
+
19
+ public init(
20
+ timestamp: Date,
21
+ level: CrumbLogLevel,
22
+ source: String = "application",
23
+ category: String,
24
+ message: String
25
+ ) {
26
+ self.timestamp = timestamp
27
+ self.level = level
28
+ self.source = source
29
+ self.category = category
30
+ self.message = message
31
+ }
32
+ }
33
+
34
+ /// Supplies already-buffered application logs when a report is explicitly opened.
35
+ /// Implementations must be thread-safe and return promptly from an in-memory snapshot.
36
+ public protocol CrumbLogProvider: AnyObject, Sendable {
37
+ func recentLogs() throws -> [CrumbLogEntry]
38
+ }
39
+
40
+ public struct CrumbLogOptions: Equatable, Sendable {
41
+ public let enabled: Bool
42
+ public let lookback: TimeInterval
43
+ public let maximumEntries: Int
44
+ public let maximumBytes: Int
45
+ public let provider: (any CrumbLogProvider)?
46
+
47
+ public init(
48
+ enabled: Bool = true,
49
+ lookback: TimeInterval = 60,
50
+ maximumEntries: Int = 200,
51
+ maximumBytes: Int = 65_536,
52
+ provider: (any CrumbLogProvider)? = nil
53
+ ) {
54
+ self.enabled = enabled
55
+ self.lookback = lookback
56
+ self.maximumEntries = maximumEntries
57
+ self.maximumBytes = maximumBytes
58
+ self.provider = provider
59
+ }
60
+
61
+ public static func == (lhs: Self, rhs: Self) -> Bool {
62
+ let sameProvider: Bool
63
+ switch (lhs.provider, rhs.provider) {
64
+ case (nil, nil):
65
+ sameProvider = true
66
+ case let (lhsProvider?, rhsProvider?):
67
+ sameProvider = lhsProvider === rhsProvider
68
+ default:
69
+ sameProvider = false
70
+ }
71
+
72
+ return lhs.enabled == rhs.enabled
73
+ && lhs.lookback == rhs.lookback
74
+ && lhs.maximumEntries == rhs.maximumEntries
75
+ && lhs.maximumBytes == rhs.maximumBytes
76
+ && sameProvider
77
+ }
78
+ }
79
+
80
+ public enum CrumbLogCaptureStatus: String, Equatable, Sendable {
81
+ case captured
82
+ case empty
83
+ case unavailable
84
+ case disabled
85
+ case disabledByPolicy = "disabled_by_policy"
86
+ }
87
+
88
+ public struct CrumbLogDiagnostic: Equatable, Sendable {
89
+ public let status: CrumbLogCaptureStatus
90
+ public let sources: [String]
91
+ public let entries: [CrumbLogEntry]
92
+ public let truncated: Bool
93
+ public let droppedEntryCount: Int
94
+ public let failures: [String]
95
+
96
+ public init(
97
+ status: CrumbLogCaptureStatus,
98
+ sources: [String],
99
+ entries: [CrumbLogEntry],
100
+ truncated: Bool,
101
+ droppedEntryCount: Int,
102
+ failures: [String]
103
+ ) {
104
+ self.status = status
105
+ self.sources = sources
106
+ self.entries = entries
107
+ self.truncated = truncated
108
+ self.droppedEntryCount = droppedEntryCount
109
+ self.failures = failures
110
+ }
111
+ }
112
+
113
+ package enum CrumbLogSanitizer {
114
+ package static func sanitize(_ value: String) -> String {
115
+ var sanitized = value
116
+ let replacements = [
117
+ (#"(?i)(https?://)[^/\s:@]+:[^/@\s]+@"#, "$1[REDACTED]@"),
118
+ (#"(?i)\bBearer\s+[A-Za-z0-9._~+/=-]+"#, "Bearer [REDACTED]"),
119
+ (
120
+ #"(?i)\b(authorization|cookie|set-cookie|password|passwd|secret|token|api[_-]?key)\s*[:=]\s*(\"[^\"]*\"|'[^']*'|[^\s,;]+)"#,
121
+ "$1=[REDACTED]"
122
+ ),
123
+ (#"(?i)\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b"#, "[REDACTED_EMAIL]"),
124
+ (#"\b(?:\d[ -]*?){13,19}\b"#, "[REDACTED_NUMBER]"),
125
+ (#"([?&][A-Za-z0-9._~-]+)=([^&#\s]*)"#, "$1=[REDACTED]"),
126
+ (#"[\u0000-\u001F\u007F]"#, " ")
127
+ ]
128
+
129
+ for (pattern, replacement) in replacements {
130
+ sanitized = sanitized.replacingOccurrences(
131
+ of: pattern,
132
+ with: replacement,
133
+ options: .regularExpression
134
+ )
135
+ }
136
+ return sanitized
137
+ }
138
+ }
@@ -0,0 +1,336 @@
1
+ import CryptoKit
2
+ import Foundation
3
+
4
+ /// Version for the public, host-owned configuration contract. It is separate
5
+ /// from the report-envelope schema version.
6
+ public enum CrumbConfigurationContract {
7
+ public static let version = "1.0"
8
+ }
9
+
10
+ public enum CrumbPolicyStatus: String, Codable, Equatable, Sendable {
11
+ case notConfigured = "not_configured"
12
+ case notFetched = "not_fetched"
13
+ case fetching
14
+ case fresh
15
+ case cached
16
+ case unavailable
17
+ case expired
18
+ }
19
+
20
+ package enum CrumbPolicySource {
21
+ case fresh
22
+ case cached
23
+ }
24
+
25
+ public enum CrumbWorkspacePolicyError: Error, Equatable {
26
+ case invalid
27
+ case unsupportedSchema
28
+ case expired
29
+ }
30
+
31
+ /// The only remote control surface in v1. A policy can remove locally enabled
32
+ /// evidence, hide the optional category field, and further narrow the host's
33
+ /// custom-context allowlist. It has no fields that can enable collection,
34
+ /// change reporter layout, or replace Crumb copy and branding.
35
+ public struct CrumbWorkspacePolicy: Equatable, Sendable {
36
+ public static let schemaVersion = "1.0"
37
+
38
+ public let version: Int
39
+ public let expiresAt: Date
40
+ public let disabledEvidence: Set<CrumbEvidenceCategory>
41
+ public let hiddenReporterFields: Set<CrumbReporterField>
42
+ public let allowedContextKeys: Set<String>
43
+
44
+ public init(
45
+ version: Int,
46
+ expiresAt: Date,
47
+ disabledEvidence: Set<CrumbEvidenceCategory> = [],
48
+ hiddenReporterFields: Set<CrumbReporterField> = [],
49
+ allowedContextKeys: Set<String> = []
50
+ ) {
51
+ self.version = version
52
+ self.expiresAt = expiresAt
53
+ self.disabledEvidence = disabledEvidence
54
+ self.hiddenReporterFields = hiddenReporterFields
55
+ self.allowedContextKeys = allowedContextKeys
56
+ }
57
+
58
+ public static func decode(
59
+ _ data: Data,
60
+ now: Date = Date()
61
+ ) throws -> CrumbWorkspacePolicy {
62
+ guard data.count <= 65_536,
63
+ let object = try? JSONSerialization.jsonObject(with: data),
64
+ let dictionary = object as? [String: Any]
65
+ else {
66
+ throw CrumbWorkspacePolicyError.invalid
67
+ }
68
+
69
+ let expectedKeys: Set<String> = [
70
+ "schema_version",
71
+ "version",
72
+ "expires_at",
73
+ "disabled_evidence",
74
+ "hidden_reporter_fields",
75
+ "allowed_context_keys"
76
+ ]
77
+ guard Set(dictionary.keys) == expectedKeys else {
78
+ throw CrumbWorkspacePolicyError.invalid
79
+ }
80
+ guard dictionary["schema_version"] as? String == schemaVersion else {
81
+ throw CrumbWorkspacePolicyError.unsupportedSchema
82
+ }
83
+ guard let version = dictionary["version"] as? Int, (1...Int.max).contains(version),
84
+ let expiresText = dictionary["expires_at"] as? String,
85
+ let expiresAt = parseISO8601(expiresText)
86
+ else {
87
+ throw CrumbWorkspacePolicyError.invalid
88
+ }
89
+ guard expiresAt > now else {
90
+ throw CrumbWorkspacePolicyError.expired
91
+ }
92
+
93
+ let disabledEvidence = try parseEnumSet(
94
+ dictionary["disabled_evidence"],
95
+ as: CrumbEvidenceCategory.self,
96
+ maximum: CrumbEvidenceCategory.allCases.count
97
+ )
98
+ let hiddenReporterFields = try parseEnumSet(
99
+ dictionary["hidden_reporter_fields"],
100
+ as: CrumbReporterField.self,
101
+ maximum: CrumbReporterField.allCases.count
102
+ )
103
+ guard !hiddenReporterFields.contains(.description) else {
104
+ // The description is the required text report and may not be
105
+ // removed by a workspace policy.
106
+ throw CrumbWorkspacePolicyError.invalid
107
+ }
108
+ let allowedContextKeys = try parseStringSet(
109
+ dictionary["allowed_context_keys"],
110
+ maximum: 16,
111
+ maximumLength: 64
112
+ )
113
+ return CrumbWorkspacePolicy(
114
+ version: version,
115
+ expiresAt: expiresAt,
116
+ disabledEvidence: disabledEvidence,
117
+ hiddenReporterFields: hiddenReporterFields,
118
+ allowedContextKeys: allowedContextKeys
119
+ )
120
+ }
121
+
122
+ private static func parseISO8601(_ value: String) -> Date? {
123
+ let formatter = ISO8601DateFormatter()
124
+ formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds]
125
+ if let date = formatter.date(from: value) { return date }
126
+ formatter.formatOptions = [.withInternetDateTime]
127
+ return formatter.date(from: value)
128
+ }
129
+
130
+ private static func parseEnumSet<Enum: RawRepresentable & Hashable>(
131
+ _ value: Any?,
132
+ as type: Enum.Type,
133
+ maximum: Int
134
+ ) throws -> Set<Enum> where Enum.RawValue == String {
135
+ guard let values = value as? [String],
136
+ values.count <= maximum,
137
+ Set(values).count == values.count,
138
+ values.allSatisfy({ type.init(rawValue: $0) != nil })
139
+ else {
140
+ throw CrumbWorkspacePolicyError.invalid
141
+ }
142
+ return Set(values.compactMap(type.init(rawValue:)))
143
+ }
144
+
145
+ private static func parseStringSet(
146
+ _ value: Any?,
147
+ maximum: Int,
148
+ maximumLength: Int
149
+ ) throws -> Set<String> {
150
+ guard let values = value as? [String],
151
+ values.count <= maximum,
152
+ Set(values).count == values.count,
153
+ values.allSatisfy({ CrumbCustomContextSanitizer.isValidKey($0, maximum: maximumLength) })
154
+ else {
155
+ throw CrumbWorkspacePolicyError.invalid
156
+ }
157
+ return Set(values)
158
+ }
159
+
160
+ package func isValid(at now: Date) -> Bool {
161
+ version > 0 &&
162
+ expiresAt > now &&
163
+ disabledEvidence.count <= CrumbEvidenceCategory.allCases.count &&
164
+ hiddenReporterFields.count <= CrumbReporterField.allCases.count &&
165
+ !hiddenReporterFields.contains(.description) &&
166
+ allowedContextKeys.count <= CrumbCustomContextSanitizer.maximumKeys &&
167
+ allowedContextKeys.allSatisfy({ CrumbCustomContextSanitizer.isValidKey($0) })
168
+ }
169
+ }
170
+
171
+ public struct CrumbEffectivePolicy: Equatable, Sendable {
172
+ public let evidence: Set<CrumbEvidenceCategory>
173
+ public let reporterFields: Set<CrumbReporterField>
174
+ public let customContext: [String: String]
175
+ public let status: CrumbPolicyStatus
176
+ public let workspacePolicyVersion: Int?
177
+
178
+ public var hasValidWorkspacePolicy: Bool {
179
+ status == .fresh || status == .cached
180
+ }
181
+ }
182
+
183
+ public enum CrumbPolicyEvaluator {
184
+ public static func localEvidence(for configuration: CrumbConfiguration) -> Set<CrumbEvidenceCategory> {
185
+ var evidence = configuration.evidence
186
+ if !configuration.capture.screenshot {
187
+ evidence.remove(.screenshot)
188
+ }
189
+ if !configuration.diagnostics.logs.enabled {
190
+ evidence.remove(.logs)
191
+ }
192
+ if configuration.diagnostics.healthCheckURL == nil {
193
+ evidence.remove(.healthCheck)
194
+ }
195
+ return evidence
196
+ }
197
+
198
+ public static func effective(
199
+ for configuration: CrumbConfiguration,
200
+ workspacePolicy: CrumbWorkspacePolicy?,
201
+ status: CrumbPolicyStatus,
202
+ now: Date = Date()
203
+ ) -> CrumbEffectivePolicy {
204
+ let localEvidence = localEvidence(for: configuration)
205
+ let localContext = localEvidence.contains(.customContext)
206
+ ? CrumbCustomContextSanitizer.sanitize(configuration.customContext)
207
+ : [:]
208
+ let requiresWorkspacePolicy = configuration.workspacePolicy.url != nil
209
+ let policyIsValid = requiresWorkspacePolicy
210
+ && workspacePolicy?.isValid(at: now) == true
211
+ && (status == .fresh || status == .cached)
212
+
213
+ if !requiresWorkspacePolicy {
214
+ return CrumbEffectivePolicy(
215
+ evidence: localEvidence,
216
+ reporterFields: configuration.reporter.visibleFields,
217
+ customContext: localContext,
218
+ status: .notConfigured,
219
+ workspacePolicyVersion: nil
220
+ )
221
+ }
222
+
223
+ guard policyIsValid, let workspacePolicy else {
224
+ return CrumbEffectivePolicy(
225
+ evidence: [],
226
+ reporterFields: configuration.reporter.visibleFields.intersection([.description]),
227
+ customContext: [:],
228
+ status: status == .expired ? .expired : status,
229
+ workspacePolicyVersion: nil
230
+ )
231
+ }
232
+
233
+ var evidence = localEvidence
234
+ evidence.subtract(workspacePolicy.disabledEvidence)
235
+ var reporterFields = configuration.reporter.visibleFields
236
+ reporterFields.subtract(workspacePolicy.hiddenReporterFields)
237
+ reporterFields.insert(.description)
238
+ let customContext = evidence.contains(.customContext)
239
+ ? CrumbCustomContextSanitizer.sanitize(
240
+ configuration.customContext,
241
+ allowedByPolicy: workspacePolicy.allowedContextKeys
242
+ )
243
+ : [:]
244
+ return CrumbEffectivePolicy(
245
+ evidence: evidence,
246
+ reporterFields: reporterFields,
247
+ customContext: customContext,
248
+ status: status,
249
+ workspacePolicyVersion: workspacePolicy.version
250
+ )
251
+ }
252
+
253
+ }
254
+
255
+ public enum CrumbCustomContextSanitizer {
256
+ public static let maximumKeys = 16
257
+ public static let maximumKeyLength = 64
258
+ public static let maximumValueBytes = 512
259
+ public static let maximumTotalBytes = 8_192
260
+
261
+ public static func sanitize(
262
+ _ options: CrumbCustomContextOptions,
263
+ allowedByPolicy: Set<String>? = nil
264
+ ) -> [String: String] {
265
+ let policyKeys = allowedByPolicy ?? options.allowedKeys
266
+ let allowedKeys = options.allowedKeys.intersection(policyKeys)
267
+ .filter { isValidKey($0, maximum: maximumKeyLength) }
268
+ .sorted()
269
+ var result: [String: String] = [:]
270
+ var totalBytes = 0
271
+
272
+ for key in allowedKeys.prefix(maximumKeys) {
273
+ guard let supplied = options.values[key] else { continue }
274
+ guard !isSensitiveKey(key) else { continue }
275
+ let sanitized = CrumbLogSanitizer.sanitize(supplied)
276
+ .trimmingCharacters(in: .whitespacesAndNewlines)
277
+ guard !sanitized.isEmpty else { continue }
278
+ let value = truncateUTF8(sanitized, maximumBytes: maximumValueBytes)
279
+ let entryBytes = key.utf8.count + value.utf8.count
280
+ guard totalBytes + entryBytes <= maximumTotalBytes else { break }
281
+ result[key] = value
282
+ totalBytes += entryBytes
283
+ }
284
+ return result
285
+ }
286
+
287
+ package static func isValidKey(_ value: String, maximum: Int = maximumKeyLength) -> Bool {
288
+ guard value.unicodeScalars.count <= maximum else { return false }
289
+ return value.range(of: #"^[A-Za-z][A-Za-z0-9_.-]*$"#, options: .regularExpression) != nil
290
+ }
291
+
292
+ private static func isSensitiveKey(_ key: String) -> Bool {
293
+ let lowered = key.lowercased()
294
+ return [
295
+ "password", "passwd", "secret", "token", "authorization", "cookie",
296
+ "api_key", "apikey", "access_key", "private_key", "card", "cvv", "cvc",
297
+ "ssn", "email", "phone", "address"
298
+ ].contains { lowered.contains($0) }
299
+ }
300
+
301
+ private static func truncateUTF8(_ value: String, maximumBytes: Int) -> String {
302
+ guard value.utf8.count > maximumBytes else { return value }
303
+ var result = ""
304
+ result.reserveCapacity(value.count)
305
+ for character in value {
306
+ let candidate = result + String(character)
307
+ guard candidate.utf8.count <= maximumBytes - 3 else { break }
308
+ result = candidate
309
+ }
310
+ return result + "…"
311
+ }
312
+ }
313
+
314
+ package struct CrumbPolicyFetchSettings: Sendable {
315
+ package let projectKey: String
316
+ package let url: URL
317
+ package let timeout: TimeInterval
318
+
319
+ package init(projectKey: String, url: URL, timeout: TimeInterval) {
320
+ self.projectKey = projectKey
321
+ self.url = url
322
+ self.timeout = timeout
323
+ }
324
+ }
325
+
326
+ package enum CrumbPolicyCache {
327
+ package static let maximumBytes = 65_536
328
+
329
+ package static func load(
330
+ data: Data?,
331
+ now: Date = Date()
332
+ ) -> CrumbWorkspacePolicy? {
333
+ guard let data, data.count <= maximumBytes else { return nil }
334
+ return try? CrumbWorkspacePolicy.decode(data, now: now)
335
+ }
336
+ }