@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
package/src/log-buffer.ts CHANGED
@@ -48,25 +48,39 @@ export function configureLogBuffer(options: CrumbLogOptions | undefined): void {
48
48
  export function markNativeStarted(): void {
49
49
  nativeStarted = true;
50
50
  NativeCrumbReactNative.clearLogs();
51
+ if (!canCollectLogs()) {
52
+ clearBufferedEntries();
53
+ return;
54
+ }
51
55
  for (const entry of entries) {
52
56
  NativeCrumbReactNative.addLog(JSON.stringify(entry));
53
57
  }
54
58
  }
55
59
 
56
60
  export function clearLogs(): void {
57
- entries = [];
58
- usedBytes = 0;
61
+ clearBufferedEntries();
59
62
  if (nativeStarted) {
60
63
  NativeCrumbReactNative.clearLogs();
61
64
  }
62
65
  }
63
66
 
67
+ export function snapshotLogEntries(): readonly CrumbLogEntry[] {
68
+ if (!canCollectLogs()) {
69
+ clearBufferedEntries();
70
+ return [];
71
+ }
72
+ prune(Date.now());
73
+ return entries.slice();
74
+ }
75
+
64
76
  export function writeLog(
65
77
  level: CrumbLogLevel,
66
78
  message: string,
67
79
  metadata?: CrumbLogMetadata,
68
80
  category: CrumbLogEntry['category'] = 'javascript'
69
81
  ): void {
82
+ if (!canCollectLogs()) return;
83
+
70
84
  const timestampMs = Date.now();
71
85
  const metadataText = metadata ? serializeMetadata(metadata) : undefined;
72
86
  const entry: CrumbLogEntry = {
@@ -121,6 +135,8 @@ export function disableConsoleCapture(): void {
121
135
  }
122
136
 
123
137
  function writeConsoleLog(level: 'warning' | 'error', data: unknown[]): void {
138
+ if (!canCollectLogs()) return;
139
+
124
140
  const suppliedError = data.find(
125
141
  (value): value is Error => value instanceof Error
126
142
  );
@@ -130,6 +146,15 @@ function writeConsoleLog(level: 'warning' | 'error', data: unknown[]): void {
130
146
  writeLog(level, message, undefined, 'console');
131
147
  }
132
148
 
149
+ function canCollectLogs(): boolean {
150
+ return !nativeStarted || NativeCrumbReactNative.canCollectLogs();
151
+ }
152
+
153
+ function clearBufferedEntries(): void {
154
+ entries = [];
155
+ usedBytes = 0;
156
+ }
157
+
133
158
  function renderConsoleValue(value: unknown): string {
134
159
  if (value instanceof Error) return value.stack ?? value.message;
135
160
  if (typeof value === 'string') return value;
@@ -0,0 +1,154 @@
1
+ import { useEffect } from 'react';
2
+ import NativeCrumbReactNative from './NativeCrumbReactNative';
3
+
4
+ export interface CrumbScreenOptions {
5
+ /** Static names from root to focused screen, never route parameters. Maximum eight. */
6
+ readonly route?: readonly string[];
7
+ }
8
+
9
+ interface ScreenContext {
10
+ readonly name: string;
11
+ readonly route: readonly string[];
12
+ readonly source: 'manual' | 'react_navigation' | 'expo_router';
13
+ }
14
+
15
+ /** Compatible with a React Navigation container ref; no navigation dependency required. */
16
+ export interface CrumbNavigationRef {
17
+ isReady(): boolean;
18
+ getRootState(): unknown;
19
+ addListener(event: 'ready' | 'state', listener: () => void): () => void;
20
+ }
21
+
22
+ let owner: object | null = null;
23
+ let screenJson = 'null';
24
+
25
+ /** Snapshot before crossing the async native UI dispatch boundary. */
26
+ export function currentScreenJson(): string {
27
+ return screenJson;
28
+ }
29
+
30
+ function validLabel(value: unknown): value is string {
31
+ // UTF-8 bytes, including surrogate pairs, without requiring TextEncoder in Hermes.
32
+ if (
33
+ typeof value !== 'string' ||
34
+ !value.trim() ||
35
+ value.length > 128 ||
36
+ // Reject control characters in untrusted screen labels.
37
+ // eslint-disable-next-line no-control-regex
38
+ /[\u0000-\u001f\u007f-\u009f?#]|:\/\//.test(value)
39
+ )
40
+ return false;
41
+ let bytes = 0;
42
+ for (const char of value) {
43
+ const point = char.codePointAt(0) ?? 0;
44
+ bytes += point <= 0x7f ? 1 : point <= 0x7ff ? 2 : point <= 0xffff ? 3 : 4;
45
+ }
46
+ return bytes <= 128;
47
+ }
48
+
49
+ function publish(context: ScreenContext | null, token: object): void {
50
+ owner = token;
51
+ screenJson = JSON.stringify(context);
52
+ NativeCrumbReactNative.setScreenContext(screenJson);
53
+ }
54
+
55
+ function release(token: object): void {
56
+ if (owner === token) publish(null, token);
57
+ }
58
+
59
+ /** Supply a static screen name. Call with null when the app no longer has an active screen. */
60
+ export function setScreen(
61
+ name: string | null,
62
+ options?: CrumbScreenOptions
63
+ ): void {
64
+ const token = {};
65
+ if (name === null) {
66
+ publish(null, token);
67
+ return;
68
+ }
69
+ const route = options?.route ?? [name];
70
+ if (
71
+ !validLabel(name) ||
72
+ route.length < 1 ||
73
+ route.length > 8 ||
74
+ !route.every(validLabel)
75
+ ) {
76
+ publish(null, token);
77
+ throw new Error(
78
+ 'Crumb screen names must be static labels of at most 128 UTF-8 bytes, with one to eight route names and no URL, query or fragment.'
79
+ );
80
+ }
81
+ publish({ name, route: [...route], source: 'manual' }, token);
82
+ }
83
+
84
+ function record(value: unknown): value is Record<string, unknown> {
85
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
86
+ }
87
+
88
+ /** Register once at the container; handles initial ready, nested state changes and cleanup. */
89
+ export function trackReactNavigation(ref: CrumbNavigationRef): () => void {
90
+ const token = {};
91
+ let active = true;
92
+ const update = () => {
93
+ if (!active) return;
94
+ try {
95
+ if (!ref.isReady()) {
96
+ publish(null, token);
97
+ return;
98
+ }
99
+ let state: unknown = ref.getRootState();
100
+ const route: string[] = [];
101
+ while (record(state) && Array.isArray(state.routes)) {
102
+ if (route.length === 8 || !Number.isInteger(state.index)) {
103
+ publish(null, token);
104
+ return;
105
+ }
106
+ const focused: unknown = state.routes[Number(state.index)];
107
+ if (!record(focused) || !validLabel(focused.name)) {
108
+ publish(null, token);
109
+ return;
110
+ }
111
+ route.push(focused.name);
112
+ state = focused.state;
113
+ }
114
+ const name = route[route.length - 1];
115
+ publish(name ? { name, route, source: 'react_navigation' } : null, token);
116
+ } catch {
117
+ publish(null, token);
118
+ }
119
+ };
120
+ const ready = ref.addListener('ready', update);
121
+ const state = ref.addListener('state', update);
122
+ update();
123
+ return () => {
124
+ active = false;
125
+ ready();
126
+ state();
127
+ release(token);
128
+ };
129
+ }
130
+
131
+ /** Pass Expo Router useSegments(), never usePathname() or search parameters. */
132
+ export function useExpoRouterScreen(segments: readonly string[]): void {
133
+ const key = JSON.stringify(segments);
134
+ useEffect(() => {
135
+ const token = {};
136
+ // Reconstruct only validated strings; dynamic segments remain templates such as [id].
137
+ const value: unknown = JSON.parse(key);
138
+ const route = Array.isArray(value) && value.length === 0 ? ['/'] : value;
139
+ const name = Array.isArray(route)
140
+ ? '/' + route.filter((part) => part !== '/').join('/')
141
+ : '';
142
+ if (
143
+ Array.isArray(route) &&
144
+ route.length <= 8 &&
145
+ route.every(validLabel) &&
146
+ validLabel(name)
147
+ ) {
148
+ publish({ name, route, source: 'expo_router' }, token);
149
+ } else {
150
+ publish(null, token);
151
+ }
152
+ return () => release(token);
153
+ }, [key]);
154
+ }
package/src/types.ts CHANGED
@@ -1,5 +1,18 @@
1
1
  export type CrumbInvocation = 'shake' | 'programmatic';
2
2
 
3
+ export type CrumbTheme = 'system' | 'light' | 'dark';
4
+
5
+ export type CrumbReporterField = 'category' | 'description';
6
+
7
+ export type CrumbEvidenceCategory =
8
+ | 'screenshot'
9
+ | 'performance'
10
+ | 'network'
11
+ | 'logs'
12
+ | 'thread_stacks'
13
+ | 'health_check'
14
+ | 'custom_context';
15
+
3
16
  export type CrumbLogLevel =
4
17
  | 'debug'
5
18
  | 'info'
@@ -32,10 +45,22 @@ export interface CrumbLogOptions {
32
45
  captureConsole?: boolean;
33
46
  }
34
47
 
48
+ export interface CrumbJavaScriptCrashCaptureOptions {
49
+ /** Captures fatal JavaScript exceptions and unhandled promise rejections. */
50
+ enabled?: boolean;
51
+ /** Maximum number of recent Crumb breadcrumbs attached to a crash. */
52
+ maximumBreadcrumbs?: number;
53
+ /** Maximum UTF-8 bytes used by the attached breadcrumbs. */
54
+ maximumBreadcrumbBytes?: number;
55
+ }
56
+
35
57
  export interface CrumbDiagnosticsOptions {
36
58
  healthCheckUrl?: string;
37
59
  timeoutMs?: number;
38
60
  logs?: CrumbLogOptions;
61
+ javascriptCrashCapture?: CrumbJavaScriptCrashCaptureOptions;
62
+ /** Opt-in rolling five-second rendering statistics; no screen content is recorded. */
63
+ renderingEnabled?: boolean;
39
64
  }
40
65
 
41
66
  export interface CrumbPrivacyOptions {
@@ -43,6 +68,29 @@ export interface CrumbPrivacyOptions {
43
68
  maskScreenshotsBeforeUpload?: boolean;
44
69
  }
45
70
 
71
+ export interface CrumbReporterOptions {
72
+ /** Controls only the built-in reporter appearance. */
73
+ theme?: CrumbTheme;
74
+ /** The description field is always required by the report contract. */
75
+ visibleFields?: readonly CrumbReporterField[];
76
+ }
77
+
78
+ export interface CrumbApplicationMetadata {
79
+ name?: string;
80
+ }
81
+
82
+ export interface CrumbCustomContextOptions {
83
+ /** String-only context values; only explicitly allowed keys are persisted. */
84
+ values?: Readonly<Record<string, string>>;
85
+ allowedKeys?: readonly string[];
86
+ }
87
+
88
+ export interface CrumbWorkspacePolicyOptions {
89
+ /** Public policy endpoint. Omit to keep configuration local-only. */
90
+ url?: string;
91
+ timeoutMs?: number;
92
+ }
93
+
46
94
  export interface CrumbUploadOptions {
47
95
  /** Base URL of the Crumb ingestion API. Omit to keep reports local-only. */
48
96
  ingestionUrl?: string;
@@ -57,6 +105,11 @@ export interface CrumbConfiguration {
57
105
  diagnostics?: CrumbDiagnosticsOptions;
58
106
  privacy?: CrumbPrivacyOptions;
59
107
  upload?: CrumbUploadOptions;
108
+ reporter?: CrumbReporterOptions;
109
+ evidence?: readonly CrumbEvidenceCategory[];
110
+ application?: CrumbApplicationMetadata;
111
+ customContext?: CrumbCustomContextOptions;
112
+ workspacePolicy?: CrumbWorkspacePolicyOptions;
60
113
  }
61
114
 
62
115
  export type CrumbLogMetadata = Readonly<Record<string, unknown>>;
package/tools/cli.cjs ADDED
@@ -0,0 +1,116 @@
1
+ #!/usr/bin/env node
2
+ const fs = require('node:fs');
3
+ const path = require('node:path');
4
+ const { parseArgs } = require('node:util');
5
+ const { createInterface } = require('node:readline/promises');
6
+ const { setupPlan, applyPlan, doctor } = require('./setup.cjs');
7
+ const { prepareRelease } = require('./release.cjs');
8
+ const { uploadRelease, retryUpload } = require('./upload.cjs');
9
+
10
+ async function main() {
11
+ if (Number(process.versions.node.split('.')[0]) < 22)
12
+ throw new Error('Crumb build tooling requires Node.js 22 or newer.');
13
+ const { positionals, values } = parseArgs({
14
+ allowPositionals: true,
15
+ options: {
16
+ help: { type: 'boolean' },
17
+ apply: { type: 'boolean' },
18
+ 'source-maps': { type: 'boolean' },
19
+ 'upload-url': { type: 'string' },
20
+ root: { type: 'string' },
21
+ directory: { type: 'string' },
22
+ input: { type: 'string' },
23
+ receipt: { type: 'string' },
24
+ output: { type: 'string' },
25
+ targets: { type: 'string' },
26
+ 'dry-run': { type: 'boolean' },
27
+ },
28
+ });
29
+ const root = path.resolve(values.root || process.cwd());
30
+ const [command] = positionals;
31
+ if (values.help || !command) {
32
+ console.log(
33
+ 'crumb setup [--source-maps --upload-url HTTPS_ORIGIN] [--apply]\ncrumb doctor\ncrumb retry --receipt FILE\ncrumb export --output DIRECTORY --targets FILE [--dry-run]\n\nSetup previews changes; --apply accepts them without prompting. Upload credentials belong only in CRUMB_SOURCE_MAP_TOKEN.'
34
+ );
35
+ return;
36
+ }
37
+ if (command === 'setup') {
38
+ let sourceMaps = values['source-maps'];
39
+ let uploadUrl = values['upload-url'];
40
+ const prompt =
41
+ process.stdin.isTTY && !values.apply
42
+ ? createInterface({ input: process.stdin, output: process.stdout })
43
+ : undefined;
44
+ try {
45
+ if (prompt && sourceMaps === undefined)
46
+ sourceMaps = /^y(es)?$/i.test(
47
+ await prompt.question(
48
+ 'Configure source maps for opt-in JavaScript crashes? [y/N] '
49
+ )
50
+ );
51
+ if (prompt && sourceMaps && !uploadUrl)
52
+ uploadUrl = await prompt.question(
53
+ 'Upload origin from your Crumb integration page: '
54
+ );
55
+ const plan = setupPlan(root, { sourceMaps, uploadUrl });
56
+ console.log(`Crumb setup: ${plan.framework}`);
57
+ for (const change of plan.changes)
58
+ console.log(
59
+ `- ${change.before === undefined ? 'Create' : 'Update'} ${change.name}`
60
+ );
61
+ console.log(
62
+ 'Setup adds Crumb configuration, preserves existing settings, and wraps supported build hooks. Review the resulting diff before committing.'
63
+ );
64
+ if (
65
+ values.apply ||
66
+ (prompt &&
67
+ /^y(es)?$/i.test(
68
+ await prompt.question(
69
+ `Apply ${plan.changes.length} reviewed file changes? [y/N] `
70
+ )
71
+ ))
72
+ ) {
73
+ applyPlan(plan);
74
+ console.log('Setup changes applied.');
75
+ } else
76
+ console.log(
77
+ 'Preview only. Run again with --apply to apply these changes.'
78
+ );
79
+ for (const instruction of plan.instructions)
80
+ console.log(`- ${instruction}`);
81
+ } finally {
82
+ prompt?.close();
83
+ }
84
+ } else if (command === 'doctor') {
85
+ const result = doctor(root);
86
+ console.log(JSON.stringify(result, null, 2));
87
+ if (result.checks.some((check) => check.status === 'missing'))
88
+ process.exitCode = 1;
89
+ } else if (command === 'prepare' && values.directory) {
90
+ prepareRelease(path.resolve(values.directory));
91
+ } else if (command === 'upload-build' && values.input) {
92
+ uploadRelease(JSON.parse(fs.readFileSync(values.input, 'utf8')), {
93
+ dryRun: values['dry-run'],
94
+ });
95
+ } else if (command === 'export' && values.output && values.targets) {
96
+ require('./expo-export.cjs').exportRelease(
97
+ root,
98
+ values.output,
99
+ values.targets,
100
+ { dryRun: values['dry-run'] }
101
+ );
102
+ } else if (command === 'retry' && values.receipt) {
103
+ retryUpload(values.receipt);
104
+ } else
105
+ throw new Error('Unknown or incomplete Crumb command. Run crumb --help.');
106
+ }
107
+
108
+ main().catch((error) => {
109
+ const message =
110
+ error instanceof SyntaxError ||
111
+ String(error.code).startsWith('ERR_PARSE_ARGS')
112
+ ? 'Invalid command or JSON input. Run crumb --help; keep credentials only in the build environment.'
113
+ : error.message;
114
+ console.error(`Crumb: ${message}`);
115
+ process.exitCode = 1;
116
+ });
@@ -0,0 +1,72 @@
1
+ const fs = require('node:fs');
2
+ const path = require('node:path');
3
+
4
+ function readConfig(root) {
5
+ const file = path.join(root, 'crumb.config.json');
6
+ if (!fs.existsSync(file))
7
+ return { version: 1, sourceMaps: { enabled: false } };
8
+ let config;
9
+ try {
10
+ config = JSON.parse(fs.readFileSync(file, 'utf8'));
11
+ } catch {
12
+ throw new Error(
13
+ 'Could not read crumb.config.json. Check that it contains valid JSON without credentials.'
14
+ );
15
+ }
16
+ if (
17
+ !config ||
18
+ typeof config !== 'object' ||
19
+ Array.isArray(config) ||
20
+ config.version !== 1 ||
21
+ !config.sourceMaps ||
22
+ typeof config.sourceMaps !== 'object' ||
23
+ Array.isArray(config.sourceMaps) ||
24
+ Object.keys(config).some(
25
+ (key) => !['version', 'sourceMaps'].includes(key)
26
+ ) ||
27
+ Object.keys(config.sourceMaps).some(
28
+ (key) => !['enabled', 'uploadUrl', 'strict'].includes(key)
29
+ ) ||
30
+ typeof config.sourceMaps.enabled !== 'boolean' ||
31
+ (config.sourceMaps.strict !== undefined &&
32
+ typeof config.sourceMaps.strict !== 'boolean')
33
+ ) {
34
+ throw new Error(
35
+ 'Invalid crumb.config.json. Use crumb setup; keep credentials only in the build environment.'
36
+ );
37
+ }
38
+ if (config.sourceMaps.enabled) validateOrigin(config.sourceMaps.uploadUrl);
39
+ return config;
40
+ }
41
+
42
+ function validateOrigin(value) {
43
+ let url;
44
+ try {
45
+ url = new URL(value);
46
+ } catch {
47
+ throw new Error(
48
+ 'Supply the HTTPS upload origin shown in your Crumb integration instructions.'
49
+ );
50
+ }
51
+ if (
52
+ url.protocol !== 'https:' ||
53
+ url.username ||
54
+ url.password ||
55
+ url.search ||
56
+ url.hash ||
57
+ url.pathname !== '/'
58
+ ) {
59
+ throw new Error(
60
+ 'The upload origin must use HTTPS without a path, credentials, query, or fragment.'
61
+ );
62
+ }
63
+ return url.origin;
64
+ }
65
+
66
+ function isStrict(config, env = process.env) {
67
+ return (
68
+ env.CRUMB_SOURCE_MAP_STRICT === '1' || config.sourceMaps.strict === true
69
+ );
70
+ }
71
+
72
+ module.exports = { readConfig, validateOrigin, isStrict };
@@ -0,0 +1,63 @@
1
+ // Apply in the application module after the React Native plugin.
2
+ import groovy.json.JsonOutput
3
+
4
+ def crumbPackage = new File(["node", "--print", "require.resolve('@crumbsdk/react-native/package.json')"].execute(null, rootDir).text.trim()).parentFile
5
+ def crumbTool = new File(crumbPackage, 'tools/cli.cjs')
6
+ def crumbNodeWrapper = new File(crumbPackage, 'tools/node.cjs')
7
+ def runCrumb = { args, directory ->
8
+ def execution = providers.exec {
9
+ workingDir directory
10
+ commandLine args
11
+ ignoreExitValue = true
12
+ }
13
+ def stdout = execution.standardOutput.asText.get()
14
+ def stderr = execution.standardError.asText.get()
15
+ if (stdout.trim()) logger.lifecycle(stdout.trim())
16
+ if (stderr.trim()) logger.warn(stderr.trim())
17
+ execution.result.get().assertNormalExitValue()
18
+ }
19
+
20
+ plugins.withId('com.facebook.react') {
21
+ androidComponents.onVariants(androidComponents.selector().all()) { variant ->
22
+ def suffix = variant.name.capitalize()
23
+ def bundleName = "createBundle${suffix}JsAndAssets"
24
+ def releaseDir = layout.buildDirectory.dir("crumb/${variant.name}")
25
+ def manifest = releaseDir.map { new File(it.asFile, 'release.json') }
26
+ def uploadTask = tasks.register("uploadCrumb${suffix}SourceMaps") {
27
+ group = 'react'
28
+ description = 'Upload exact Crumb release artifacts after JavaScript bundling.'
29
+ onlyIf {
30
+ def bundleTask = tasks.findByName(bundleName)
31
+ bundleTask != null && bundleTask.state.executed && bundleTask.state.failure == null && manifest.get().exists()
32
+ }
33
+ doLast {
34
+ def bundleTask = tasks.getByName(bundleName)
35
+ def originalNode = bundleTask.ext.crumbOriginalNode
36
+ def outputs = variant.outputs.collect { output ->
37
+ [appVersion: output.versionName.get(), nativeBuild: output.versionCode.get().toString()]
38
+ }.unique()
39
+ outputs.each { target ->
40
+ def bundle = new File(bundleTask.jsBundleDir.get().asFile, bundleTask.bundleAssetName.get())
41
+ def sourceMap = new File(bundleTask.jsSourceMapsDir.get().asFile, bundleTask.bundleAssetName.get() + '.map')
42
+ def input = new File(releaseDir.get().asFile, "input-${target.nativeBuild}.json")
43
+ input.text = JsonOutput.toJson(target + [root: bundleTask.root.get().asFile.absolutePath,
44
+ manifest: manifest.get().absolutePath, platform: 'android',
45
+ bundle: bundle.absolutePath, sourceMap: sourceMap.absolutePath])
46
+ runCrumb(originalNode + [crumbTool.absolutePath, 'upload-build', '--input', input.absolutePath], bundleTask.root.get().asFile)
47
+ }
48
+ }
49
+ }
50
+ tasks.matching { it.name == bundleName }.configureEach { bundleTask ->
51
+ def originalNode = new ArrayList(bundleTask.nodeExecutableAndArgs.get())
52
+ bundleTask.nodeExecutableAndArgs.set(originalNode + [crumbNodeWrapper.absolutePath, manifest.get().absolutePath])
53
+ bundleTask.outputs.file(manifest)
54
+ bundleTask.outputs.file(releaseDir.map { new File(it.asFile, 'crumb-release.js') })
55
+ bundleTask.inputs.file(new File(bundleTask.root.get().asFile, 'crumb.config.json')).optional()
56
+ bundleTask.doFirst {
57
+ runCrumb(originalNode + [crumbTool.absolutePath, 'prepare', '--directory', releaseDir.get().asFile.absolutePath], bundleTask.root.get().asFile)
58
+ }
59
+ bundleTask.ext.crumbOriginalNode = originalNode
60
+ bundleTask.finalizedBy(uploadTask)
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,122 @@
1
+ const fs = require('node:fs');
2
+ const path = require('node:path');
3
+ const { spawnSync } = require('node:child_process');
4
+ const { randomUUID } = require('node:crypto');
5
+ const {
6
+ prepareRelease,
7
+ readRelease,
8
+ verifyMapIdentity,
9
+ } = require('./release.cjs');
10
+ const { uploadRelease } = require('./upload.cjs');
11
+ const { readConfig } = require('./config.cjs');
12
+
13
+ function validateTargets(value) {
14
+ if (!Array.isArray(value) || value.length === 0 || value.length > 100)
15
+ throw new Error(
16
+ 'Supply between 1 and 100 explicit native release targets.'
17
+ );
18
+ const seen = new Set();
19
+ for (const target of value) {
20
+ if (
21
+ !target ||
22
+ !['ios', 'android'].includes(target.platform) ||
23
+ Object.keys(target).some(
24
+ (key) => !['platform', 'appVersion', 'nativeBuild'].includes(key)
25
+ ) ||
26
+ ![target.appVersion, target.nativeBuild].every(
27
+ (item) =>
28
+ typeof item === 'string' &&
29
+ /^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$/.test(item)
30
+ )
31
+ ) {
32
+ throw new Error(
33
+ 'Each target must contain platform (ios/android), appVersion and nativeBuild from an eligible built binary.'
34
+ );
35
+ }
36
+ const key = JSON.stringify([
37
+ target.platform,
38
+ target.appVersion,
39
+ target.nativeBuild,
40
+ ]);
41
+ if (seen.has(key)) throw new Error('Duplicate native release target.');
42
+ seen.add(key);
43
+ }
44
+ return value;
45
+ }
46
+
47
+ function exportArtifacts(directory, targets) {
48
+ const metadata = JSON.parse(
49
+ fs.readFileSync(path.join(directory, 'metadata.json'), 'utf8')
50
+ );
51
+ if (
52
+ metadata.version !== 0 ||
53
+ metadata.bundler !== 'metro' ||
54
+ !metadata.fileMetadata
55
+ )
56
+ throw new Error(
57
+ 'Unsupported Expo export metadata. Use the advanced uploader for this export format.'
58
+ );
59
+ return targets.map((target) => {
60
+ const name = metadata.fileMetadata[target.platform]?.bundle;
61
+ if (typeof name !== 'string' || path.isAbsolute(name))
62
+ throw new Error('The export is missing a native platform bundle.');
63
+ const bundle = path.resolve(directory, name);
64
+ if (!bundle.startsWith(path.resolve(directory) + path.sep))
65
+ throw new Error('The export bundle must be inside the export directory.');
66
+ const sourceMap = bundle + '.map';
67
+ for (const file of [bundle, sourceMap]) {
68
+ if (
69
+ !fs.statSync(file).isFile() ||
70
+ !fs.realpathSync(file).startsWith(fs.realpathSync(directory) + path.sep)
71
+ )
72
+ throw new Error(
73
+ 'Export artifacts must be regular files inside the export directory.'
74
+ );
75
+ }
76
+ return { ...target, bundle, sourceMap };
77
+ });
78
+ }
79
+
80
+ function exportRelease(root, output, targetsFile, options = {}) {
81
+ if (!readConfig(root).sourceMaps.enabled)
82
+ throw new Error(
83
+ 'Enable source maps with crumb setup before preparing an export.'
84
+ );
85
+ const targets = validateTargets(
86
+ JSON.parse(fs.readFileSync(targetsFile, 'utf8'))
87
+ );
88
+ const directory = path.resolve(root, output);
89
+ if (fs.existsSync(directory))
90
+ throw new Error(
91
+ 'Choose a new export directory. Crumb does not overwrite an existing export.'
92
+ );
93
+ const manifest = prepareRelease(
94
+ path.join(root, '.crumb', 'exports', randomUUID())
95
+ );
96
+ const expo = require.resolve('expo/bin/cli', { paths: [root] });
97
+ const args = [expo, 'export', '--source-maps', '--output-dir', directory];
98
+ for (const platform of new Set(targets.map((target) => target.platform)))
99
+ args.push('--platform', platform);
100
+ const result = spawnSync(process.execPath, args, {
101
+ cwd: root,
102
+ stdio: 'inherit',
103
+ env: { ...process.env, CRUMB_RELEASE_MANIFEST: manifest },
104
+ });
105
+ if (result.error || result.status !== 0)
106
+ throw new Error(
107
+ 'Expo export failed. Fix the build error before uploading or publishing an update.'
108
+ );
109
+ const artifacts = exportArtifacts(directory, targets);
110
+ for (const artifact of artifacts)
111
+ verifyMapIdentity(artifact.sourceMap, readRelease(manifest).bundleVersion);
112
+ for (const artifact of artifacts)
113
+ uploadRelease(
114
+ { root, manifest, ...artifact },
115
+ { dryRun: options.dryRun, strict: true }
116
+ );
117
+ console.log(
118
+ 'Crumb: export retained. Publish this exact directory with EAS --input-dir and --skip-bundler; do not rebuild it.'
119
+ );
120
+ }
121
+
122
+ module.exports = { validateTargets, exportArtifacts, exportRelease };